Associazioni del bus di servizio di Azure per Funzioni di AzureAzure Service Bus bindings for Azure Functions

Questo articolo descrive come usare le associazioni del bus di servizio in Funzioni di Azure.This article explains how to work with Azure Service Bus bindings in Azure Functions. Funzioni di Azure supporta il trigger e le associazioni di output per le code e gli argomenti del bus di servizio.Azure Functions supports trigger and output bindings for Service Bus queues and topics.

Informazioni di riferimento per gli sviluppatori delle Funzioni di Azure.This is reference information for Azure Functions developers. Se non si ha familiarità con le Funzioni di Azure, iniziare con le seguenti risorse:If you're new to Azure Functions, start with the following resources:

PacchettiPackages

Le associazioni del bus di servizio sono incluse nel pacchetto NuGet Microsoft.Azure.WebJobs.ServiceBus.The Service Bus bindings are provided in the Microsoft.Azure.WebJobs.ServiceBus NuGet package. Il codice sorgente del pacchetto si trova nel repository GitHub azure-webjobs-sdk.Source code for the package is in the azure-webjobs-sdk GitHub repository.

Per lo sviluppo locale in Funzioni di Azure versione 2.x, il pacchetto viene usato per registrare l'estensione dell'associazione.For local development in Azure Functions version2.x, the package is used to register the binding extension. Per lo sviluppo di librerie di classi C# in Funzioni 1.x e 2.x, il supporto per l'associazione viene aggiunto installando il pacchetto.For C# class library development in Functions 1.x and 2.x, support for the binding is added by installing the package.

Si noti che il codice sorgente segue la numerazione delle versioni di WebJobs SDK: WebJobs SDK versione 2.x equivale a Funzioni di Azure 1.x, pertanto il codice di Funzioni 1.x è incluso nel ramo v2.x nel repository.Note that source code follows WebJobs SDK version numbering: WebJobs SDK version 2.x is equivalent to Azure Functions 1.x, so Functions 1.x code is in the v2.x branch in the repository. I rami master e dev contengono il codice per Web Jobs 3.x, che corrisponde a Funzioni 2.x.Master and dev branches contain code for Web Jobs 3.x, which is the same as Functions 2.x.

TriggerTrigger

Usare il trigger di bus di servizio per rispondere a messaggi da una coda o da un argomento del bus di servizio.Use the Service Bus trigger to respond to messages from a Service Bus queue or topic.

Trigger - esempioTrigger - example

Vedere l'esempio specifico per ciascun linguaggio:See the language-specific example:

Trigger - esempio in C#Trigger - C# example

L'esempio seguente mostra una funzione C# che registra un messaggio della coda del bus di servizio.The following example shows a C# function that logs a Service Bus queue message.

[FunctionName("ServiceBusQueueTriggerCSharp")]                    
public static void Run(
    [ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBusConnection")] 
    string myQueueItem, 
    TraceWriter log)
{
    log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}

Questo esempio si riferisce a Funzioni di Azure versione 1.x. Per la versione 2.x omettere il parametro relativo ai diritti di accesso.This example is for Azure Functions version 1.x; for 2.x, omit the access rights parameter.

Trigger - esempio di script C#Trigger - C# script example

L'esempio seguente mostra un'associazione di trigger del bus di servizio in un file function.json e una funzione script C# che usa l'associazione.The following example shows a Service Bus trigger binding in a function.json file and a C# script function that uses the binding. La funzione registra un messaggio della coda del bus di servizio.The function logs a Service Bus queue message.

Ecco i dati di associazione nel file function.json:Here's the binding data in the function.json file:

{
"bindings": [
    {
    "queueName": "testqueue",
    "connection": "MyServiceBusConnection",
    "name": "myQueueItem",
    "type": "serviceBusTrigger",
    "direction": "in"
    }
],
"disabled": false
}

Ecco il codice script C#:Here's the C# script code:

public static void Run(string myQueueItem, TraceWriter log)
{
    log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}

Trigger - Esempio in F#Trigger - F# example

L'esempio seguente mostra un'associazione di trigger del bus di servizio in un file function.json e una funzione F# che usa l'associazione.The following example shows a Service Bus trigger binding in a function.json file and an F# function that uses the binding. La funzione registra un messaggio della coda del bus di servizio.The function logs a Service Bus queue message.

Ecco i dati di associazione nel file function.json:Here's the binding data in the function.json file:

{
"bindings": [
    {
    "queueName": "testqueue",
    "connection": "MyServiceBusConnection",
    "name": "myQueueItem",
    "type": "serviceBusTrigger",
    "direction": "in"
    }
],
"disabled": false
}

Ecco il codice script F#:Here's the F# script code:

let Run(myQueueItem: string, log: TraceWriter) =
    log.Info(sprintf "F# ServiceBus queue trigger function processed message: %s" myQueueItem)

Trigger - esempio JavaScriptTrigger - JavaScript example

L'esempio seguente mostra un'associazione di trigger del bus di servizio in un file function.json e una funzione JavaScript che usa l'associazione.The following example shows a Service Bus trigger binding in a function.json file and a JavaScript function that uses the binding. La funzione registra un messaggio della coda del bus di servizio.The function logs a Service Bus queue message.

Ecco i dati di associazione nel file function.json:Here's the binding data in the function.json file:

{
"bindings": [
    {
    "queueName": "testqueue",
    "connection": "MyServiceBusConnection",
    "name": "myQueueItem",
    "type": "serviceBusTrigger",
    "direction": "in"
    }
],
"disabled": false
}

Ecco il codice script JavaScript:Here's the JavaScript script code:

module.exports = function(context, myQueueItem) {
    context.log('Node.js ServiceBus queue trigger function processed message', myQueueItem);
    context.done();
};

Trigger - attributiTrigger - attributes

Nelle librerie di classi C# usare gli attributi seguenti per configurare un trigger del bus di servizio:In C# class libraries, use the following attributes to configure a Service Bus trigger:

  • ServiceBusTriggerAttributeServiceBusTriggerAttribute

    Il costruttore dell'attributo accetta il nome della coda o l'argomento e la sottoscrizione.The attribute's constructor takes the name of the queue or the topic and subscription. In Funzioni di Azure versione 1.x è anche possibile specificare i diritti di accesso della connessione.In Azure Functions version 1.x, you can also specify the connection's access rights. Se i diritti di accesso non vengono specificati, l'impostazione predefinita è Manage.If you don't specify access rights, the default is Manage. Per altre informazioni, vedere la sezione Trigger - configurazione.For more information, see the Trigger - configuration section.

    Ecco un esempio che mostra l'attributo usato con un parametro di stringa:Here's an example that shows the attribute used with a string parameter:

    [FunctionName("ServiceBusQueueTriggerCSharp")]                    
    public static void Run(
        [ServiceBusTrigger("myqueue")] string myQueueItem, TraceWriter log)
    {
        ...
    }
    

    È possibile impostare la proprietà Connection per specificare l'account per il bus di servizio da usare, come mostrato nell'esempio seguente:You can set the Connection property to specify the Service Bus account to use, as shown in the following example:

    [FunctionName("ServiceBusQueueTriggerCSharp")]                    
    public static void Run(
        [ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] 
        string myQueueItem, TraceWriter log)
    {
        ...
    }
    

    Per un esempio completo, vedere Trigger - esempio in C#.For a complete example, see Trigger - C# example.

  • ServiceBusAccountAttributeServiceBusAccountAttribute

    Offre un altro modo per specificare l'account per il bus di servizio da usare.Provides another way to specify the Service Bus account to use. Il costruttore accetta il nome di un'impostazione dell'app che contiene una stringa di connessione del bus di servizio.The constructor takes the name of an app setting that contains a Service Bus connection string. L'attributo può essere applicato a livello di parametro, metodo o classe.The attribute can be applied at the parameter, method, or class level. L'esempio seguente illustra il livello classe e il livello metodo:The following example shows class level and method level:

    [ServiceBusAccount("ClassLevelServiceBusAppSetting")]
    public static class AzureFunctions
    {
        [ServiceBusAccount("MethodLevelServiceBusAppSetting")]
        [FunctionName("ServiceBusQueueTriggerCSharp")]
        public static void Run(
            [ServiceBusTrigger("myqueue", AccessRights.Manage)] 
            string myQueueItem, TraceWriter log)
    {
        ...
    }
    

L'account per il bus di servizio da usare è determinato nell'ordine seguente:The Service Bus account to use is determined in the following order:

  • La proprietà Connection dell'attributo ServiceBusTrigger.The ServiceBusTrigger attribute's Connection property.
  • L'attributo ServiceBusAccount applicato allo stesso parametro dell'attributo ServiceBusTrigger.The ServiceBusAccount attribute applied to the same parameter as the ServiceBusTrigger attribute.
  • L'attributo ServiceBusAccount applicato alla funzione.The ServiceBusAccount attribute applied to the function.
  • L'attributo ServiceBusAccount applicato alla classe.The ServiceBusAccount attribute applied to the class.
  • L'impostazione dell'app "AzureWebJobsServiceBus".The "AzureWebJobsServiceBus" app setting.

Trigger - configurazioneTrigger - configuration

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo ServiceBusTrigger.The following table explains the binding configuration properties that you set in the function.json file and the ServiceBusTrigger attribute.

Proprietà di function.jsonfunction.json property Proprietà dell'attributoAttribute property DESCRIZIONEDescription
typetype n/dn/a Il valore deve essere impostato su "serviceBusTrigger".Must be set to "serviceBusTrigger". Questa proprietà viene impostata automaticamente quando si crea il trigger nel portale di Azure.This property is set automatically when you create the trigger in the Azure portal.
directiondirection n/dn/a Il valore deve essere impostato su "in".Must be set to "in". Questa proprietà viene impostata automaticamente quando si crea il trigger nel portale di Azure.This property is set automatically when you create the trigger in the Azure portal.
nomename n/dn/a Nome della variabile che rappresenta il messaggio della coda o dell'argomento nel codice della funzione.The name of the variable that represents the queue or topic message in function code. Impostare su "$return" per fare riferimento al valore restituito della funzione.Set to "$return" to reference the function return value.
queueNamequeueName QueueNameQueueName Nome della coda da monitorare.Name of the queue to monitor. Impostare questa proprietà solo quando si monitora una coda, non un argomento.Set only if monitoring a queue, not for a topic.
topicNametopicName topicNameTopicName Nome dell'argomento da monitorare.Name of the topic to monitor. Impostare questa proprietà solo quando si monitora un argomento, non una coda.Set only if monitoring a topic, not for a queue.
subscriptionNamesubscriptionName SubscriptionNameSubscriptionName Nome della sottoscrizione da monitorare.Name of the subscription to monitor. Impostare questa proprietà solo quando si monitora un argomento, non una coda.Set only if monitoring a topic, not for a queue.
connessioneconnection ConnectionConnection Nome di un'impostazione dell'app che contiene la stringa di connessione del bus di servizio da usare per questa associazione.The name of an app setting that contains the Service Bus connection string to use for this binding. Se il nome dell'impostazione dell'app inizia con "AzureWebJobs", è possibile specificare solo la parte restante del nome.If the app setting name begins with "AzureWebJobs", you can specify only the remainder of the name. Ad esempio, se si imposta connection su "MyServiceBus", il runtime di Funzioni di Azure cerca un'impostazione dell'app denominata "AzureWebJobsMyServiceBus".For example, if you set connection to "MyServiceBus", the Functions runtime looks for an app setting that is named "AzureWebJobsMyServiceBus." Se si lascia vuoto connection, il runtime di Funzioni di Azure usa la stringa di connessione del bus di servizio predefinita nell'impostazione dell'app denominata "AzureWebJobsServiceBus".If you leave connection empty, the Functions runtime uses the default Service Bus connection string in the app setting that is named "AzureWebJobsServiceBus".

Per ottenere una stringa di connessione, seguire i passaggi indicati in Ottenere le credenziali di gestione.To obtain a connection string, follow the steps shown at Obtain the management credentials. La stringa di connessione deve essere relativa a uno spazio dei nomi del bus di servizio e non limitata a una coda o un argomento specifico.The connection string must be for a Service Bus namespace, not limited to a specific queue or topic.
accessRightsaccessRights AccedereAccess Diritti di accesso per la stringa di connessione.Access rights for the connection string. I valori disponibili sono manage e listen.Available values are manage and listen. Il valore predefinito è manage, che indica che connection dispone dell'autorizzazione Gestisci.The default is manage, which indicates that the connection has the Manage permission. Se si usa una stringa di connessione priva dell'autorizzazione Gestisci, impostare accessRights su "listen".If you use a connection string that does not have the Manage permission, set accessRights to "listen". In caso contrario, il runtime di Funzioni potrebbe non riuscire a eseguire operazioni che richiedono diritti di gestione.Otherwise, the Functions runtime might fail trying to do operations that require manage rights. In Funzioni di Azure versione 2.x questa proprietà non è disponibile perché la versione più recente di Storage SDK non supporta le operazioni di gestione.In Azure Functions version 2.x, this property is not available because the latest version of the Storage SDK doesn't support manage operations.

Quando si sviluppa in locale, le impostazioni dell'app vengono inserite nel file local.settings.json.

Trigger - usoTrigger - usage

In C# e nello script C# è possibile usare i tipi di parametro seguenti per il messaggio della coda o dell'argomento:In C# and C# script, you can use the following parameter types for the queue or topic message:

  • string: se il messaggio è costituito da testo.string - If the message is text.
  • byte[]: utile per i dati binari.byte[] - Useful for binary data.
  • Un tipo personalizzato: se il messaggio contiene JSON, Funzioni di Azure tenta di deserializzare i dati JSON.A custom type - If the message contains JSON, Azure Functions tries to deserialize the JSON data.
  • BrokeredMessage: visualizza il messaggio deserializzato con il metodo BrokeredMessage.GetBody().BrokeredMessage - Gives you the deserialized message with the BrokeredMessage.GetBody() method.

Questi parametri sono per le versioni di Funzioni di Azure 1.x. Per le versioni 2.x, usare Message invece di BrokeredMessage.These parameters are for Azure Functions version 1.x; for 2.x, use Message instead of BrokeredMessage.

In JavaScript accedere al messaggio della coda o dell'argomento usando context.bindings.<name from function.json>.In JavaScript, access the queue or topic message by using context.bindings.<name from function.json>. Il messaggio del bus di servizio viene passato alla funzione come stringa o oggetto JSON.The Service Bus message is passed into the function as either a string or JSON object.

Trigger - messaggi non elaborabiliTrigger - poison messages

La gestione dei messaggi non elaborabili non può essere controllata o configurata in Funzioni di Azure.Poison message handling can't be controlled or configured in Azure Functions. I messaggi non elaborabili vengono gestiti dal bus di servizio stesso.Service Bus handles poison messages itself.

Trigger - Comportamento di PeekLockTrigger - PeekLock behavior

Il runtime di Funzioni di Azure riceve un messaggio in modalità PeekLock.The Functions runtime receives a message in PeekLock mode. Chiama quindi Complete nel messaggio se la funzione viene completata correttamente oppure chiama Abandon se la funzione non riesce.It calls Complete on the message if the function finishes successfully, or calls Abandon if the function fails. Se il tempo di esecuzione della funzione supera il timeout di PeekLock , il blocco viene rinnovato automaticamente.If the function runs longer than the PeekLock timeout, the lock is automatically renewed.

Trigger - proprietà di host.jsonTrigger - host.json properties

Il file host.json contiene le impostazioni che controllano il comportamento del trigger del bus di servizio.The host.json file contains settings that control Service Bus trigger behavior.

{
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00"
    }
}
ProprietàProperty PredefinitoDefault DESCRIZIONEDescription
maxConcurrentCallsmaxConcurrentCalls 1616 Il numero massimo di chiamate simultanee al callback che il message pump deve avviare.The maximum number of concurrent calls to the callback that the message pump should initiate. Per impostazione predefinita, il runtime di Funzioni elabora più messaggi contemporaneamente.By default, the Functions runtime processes multiple messages concurrently. Per fare in modo che il runtime elabori un solo messaggio della coda o dell'argomento alla volta, impostare maxConcurrentCalls su 1.To direct the runtime to process only a single queue or topic message at a time, set maxConcurrentCalls to 1.
prefetchCountprefetchCount n/dn/a Il valore predefinito di PrefetchCount che verrà utilizzato per il MessageReceiver sottostante.The default PrefetchCount that will be used by the underlying MessageReceiver.
autoRenewTimeoutautoRenewTimeout 00:05:0000:05:00 La durata massima entro il quale il blocco del messaggio verrà rinnovato automaticamente.The maximum duration within which the message lock will be renewed automatically.

OutputOutput

Usare l'associazione di output del bus di servizio di Azure per inviare messaggi della coda o dell'argomento.Use Azure Service Bus output binding to send queue or topic messages.

Output - esempioOutput - example

Vedere l'esempio specifico per ciascun linguaggio:See the language-specific example:

Output - esempio in C#Output - C# example

L'esempio seguente mostra una funzione C# che invia un messaggio della coda del bus di servizio:The following example shows a C# function that sends a Service Bus queue message:

[FunctionName("ServiceBusOutput")]
[return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
public static string ServiceBusOutput([HttpTrigger] dynamic input, TraceWriter log)
{
    log.Info($"C# function processed: {input.Text}");
    return input.Text;
}

Output - esempio di script C#Output - C# script example

L'esempio seguente mostra un'associazione di output del bus di servizio in un file function.json e una funzione script C# che usa l'associazione.The following example shows a Service Bus output binding in a function.json file and a C# script function that uses the binding. La funzione usa un trigger timer per inviare un messaggio della coda ogni 15 secondi.The function uses a timer trigger to send a queue message every 15 seconds.

Ecco i dati di associazione nel file function.json:Here's the binding data in the function.json file:

{
    "bindings": [
        {
            "schedule": "0/15 * * * * *",
            "name": "myTimer",
            "runsOnStartup": true,
            "type": "timerTrigger",
            "direction": "in"
        },
        {
            "name": "outputSbQueue",
            "type": "serviceBus",
            "queueName": "testqueue",
            "connection": "MyServiceBusConnection",
            "direction": "out"
        }
    ],
    "disabled": false
}

Ecco il codice script C# che crea un singolo messaggio:Here's C# script code that creates a single message:

public static void Run(TimerInfo myTimer, TraceWriter log, out string outputSbQueue)
{
    string message = $"Service Bus queue message created at: {DateTime.Now}";
    log.Info(message); 
    outputSbQueue = message;
}

Ecco il codice script C# che crea più messaggi:Here's C# script code that creates multiple messages:

public static void Run(TimerInfo myTimer, TraceWriter log, ICollector<string> outputSbQueue)
{
    string message = $"Service Bus queue messages created at: {DateTime.Now}";
    log.Info(message); 
    outputSbQueue.Add("1 " + message);
    outputSbQueue.Add("2 " + message);
}

Output - esempio in F#Output - F# example

L'esempio seguente mostra un'associazione di output del bus di servizio in un file function.json e una funzione script F# che usa l'associazione.The following example shows a Service Bus output binding in a function.json file and an F# script function that uses the binding. La funzione usa un trigger timer per inviare un messaggio della coda ogni 15 secondi.The function uses a timer trigger to send a queue message every 15 seconds.

Ecco i dati di associazione nel file function.json:Here's the binding data in the function.json file:

{
    "bindings": [
        {
            "schedule": "0/15 * * * * *",
            "name": "myTimer",
            "runsOnStartup": true,
            "type": "timerTrigger",
            "direction": "in"
        },
        {
            "name": "outputSbQueue",
            "type": "serviceBus",
            "queueName": "testqueue",
            "connection": "MyServiceBusConnection",
            "direction": "out"
        }
    ],
    "disabled": false
}

Ecco il codice script F# che crea un singolo messaggio:Here's F# script code that creates a single message:

let Run(myTimer: TimerInfo, log: TraceWriter, outputSbQueue: byref<string>) =
    let message = sprintf "Service Bus queue message created at: %s" (DateTime.Now.ToString())
    log.Info(message)
    outputSbQueue = message

Output - esempio JavaScriptOutput - JavaScript example

L'esempio seguente mostra un'associazione di output del bus di servizio in un file function.json e una funzione JavaScript che usa l'associazione.The following example shows a Service Bus output binding in a function.json file and a JavaScript function that uses the binding. La funzione usa un trigger timer per inviare un messaggio della coda ogni 15 secondi.The function uses a timer trigger to send a queue message every 15 seconds.

Ecco i dati di associazione nel file function.json:Here's the binding data in the function.json file:

{
    "bindings": [
        {
            "schedule": "0/15 * * * * *",
            "name": "myTimer",
            "runsOnStartup": true,
            "type": "timerTrigger",
            "direction": "in"
        },
        {
            "name": "outputSbQueue",
            "type": "serviceBus",
            "queueName": "testqueue",
            "connection": "MyServiceBusConnection",
            "direction": "out"
        }
    ],
    "disabled": false
}

Ecco il codice script JavaScript che crea un singolo messaggio:Here's JavaScript script code that creates a single message:

module.exports = function (context, myTimer) {
    var message = 'Service Bus queue message created at ' + timeStamp;
    context.log(message);   
    context.bindings.outputSbQueueMsg = message;
    context.done();
};

Ecco il codice script JavaScript che crea più messaggi:Here's JavaScript script code that creates multiple messages:

module.exports = function (context, myTimer) {
    var message = 'Service Bus queue message created at ' + timeStamp;
    context.log(message);   
    context.bindings.outputSbQueueMsg = [];
    context.bindings.outputSbQueueMsg.push("1 " + message);
    context.bindings.outputSbQueueMsg.push("2 " + message);
    context.done();
};

Output - attributiOutput - attributes

Nelle librerie di classi C# usare ServiceBusAttribute.In C# class libraries, use the ServiceBusAttribute.

Il costruttore dell'attributo accetta il nome della coda o l'argomento e la sottoscrizione.The attribute's constructor takes the name of the queue or the topic and subscription. È anche possibile specificare i diritti di accesso della connessione.You can also specify the connection's access rights. Nella sezione Output - Configurazione viene spiegato come scegliere l'impostazione dei diritti di accesso.How to choose the access rights setting is explained in the Output - configuration section. Ecco un esempio che mostra l'attributo applicato al valore restituito della funzione:Here's an example that shows the attribute applied to the return value of the function:

[FunctionName("ServiceBusOutput")]
[return: ServiceBus("myqueue")]
public static string Run([HttpTrigger] dynamic input, TraceWriter log)
{
    ...
}

È possibile impostare la proprietà Connection per specificare l'account per il bus di servizio da usare, come mostrato nell'esempio seguente:You can set the Connection property to specify the Service Bus account to use, as shown in the following example:

[FunctionName("ServiceBusOutput")]
[return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
public static string Run([HttpTrigger] dynamic input, TraceWriter log)
{
    ...
}

Per un esempio completo, vedere Output - esempio in C#.For a complete example, see Output - C# example.

È possibile usare l'attributo ServiceBusAccount per specificare l'account per il bus di servizio da usare a livello di classe, metodo o parametro.You can use the ServiceBusAccount attribute to specify the Service Bus account to use at class, method, or parameter level. Per altre informazioni, vedere Trigger - attributi.For more information, see Trigger - attributes.

Output - configurazioneOutput - configuration

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo ServiceBus.The following table explains the binding configuration properties that you set in the function.json file and the ServiceBus attribute.

Proprietà di function.jsonfunction.json property Proprietà dell'attributoAttribute property DESCRIZIONEDescription
typetype n/dn/a Il valore deve essere impostato su "serviceBus".Must be set to "serviceBus". Questa proprietà viene impostata automaticamente quando si crea il trigger nel portale di Azure.This property is set automatically when you create the trigger in the Azure portal.
directiondirection n/dn/a Deve essere impostato su "out".Must be set to "out". Questa proprietà viene impostata automaticamente quando si crea il trigger nel portale di Azure.This property is set automatically when you create the trigger in the Azure portal.
nomename n/dn/a Nome della variabile che rappresenta la coda o l'argomento nel codice della funzione.The name of the variable that represents the queue or topic in function code. Impostare su "$return" per fare riferimento al valore restituito della funzione.Set to "$return" to reference the function return value.
queueNamequeueName QueueNameQueueName Nome della coda.Name of the queue. Impostare questa proprietà solo se si inviano messaggi della coda, non dell'argomento.Set only if sending queue messages, not for a topic.
topicNametopicName topicNameTopicName Nome dell'argomento da monitorare.Name of the topic to monitor. Impostare questa proprietà solo se si inviano messaggi dell'argomento, non della coda.Set only if sending topic messages, not for a queue.
connessioneconnection ConnectionConnection Nome di un'impostazione dell'app che contiene la stringa di connessione del bus di servizio da usare per questa associazione.The name of an app setting that contains the Service Bus connection string to use for this binding. Se il nome dell'impostazione dell'app inizia con "AzureWebJobs", è possibile specificare solo la parte restante del nome.If the app setting name begins with "AzureWebJobs", you can specify only the remainder of the name. Ad esempio, se si imposta connection su "MyServiceBus", il runtime di Funzioni di Azure cerca un'impostazione dell'app denominata "AzureWebJobsMyServiceBus".For example, if you set connection to "MyServiceBus", the Functions runtime looks for an app setting that is named "AzureWebJobsMyServiceBus." Se si lascia vuoto connection, il runtime di Funzioni di Azure usa la stringa di connessione del bus di servizio predefinita nell'impostazione dell'app denominata "AzureWebJobsServiceBus".If you leave connection empty, the Functions runtime uses the default Service Bus connection string in the app setting that is named "AzureWebJobsServiceBus".

Per ottenere una stringa di connessione, seguire i passaggi indicati in Ottenere le credenziali di gestione.To obtain a connection string, follow the steps shown at Obtain the management credentials. La stringa di connessione deve essere relativa a uno spazio dei nomi del bus di servizio e non limitata a una coda o un argomento specifico.The connection string must be for a Service Bus namespace, not limited to a specific queue or topic.
accessRightsaccessRights AccedereAccess Diritti di accesso per la stringa di connessione.Access rights for the connection string. I valori disponibili sono manage e listen.Available values are manage and listen. Il valore predefinito è manage, che indica che connection dispone dell'autorizzazione Gestisci.The default is manage, which indicates that the connection has the Manage permission. Se si usa una stringa di connessione priva dell'autorizzazione Gestisci, impostare accessRights su "listen".If you use a connection string that does not have the Manage permission, set accessRights to "listen". In caso contrario, il runtime di Funzioni potrebbe non riuscire a eseguire operazioni che richiedono diritti di gestione.Otherwise, the Functions runtime might fail trying to do operations that require manage rights. In Funzioni di Azure versione 2.x questa proprietà non è disponibile perché la versione più recente di Storage SDK non supporta le operazioni di gestione.In Azure Functions version 2.x, this property is not available because the latest version of the Storage SDK doesn't support manage operations.

Quando si sviluppa in locale, le impostazioni dell'app vengono inserite nel file local.settings.json.

Output - usoOutput - usage

In Funzioni di Azure 1.x il runtime crea la coda se inesistente e se il parametro accessRights è stato impostato su manage.In Azure Functions 1.x, the runtime creates the queue if it doesn't exist and you have set accessRights to manage. In Funzioni versione 2.x la coda o l'argomento deve esistere già. Se si specifica una coda o un argomento inesistente, la funzione non viene eseguita.In Functions version 2.x, the queue or topic must already exist; if you specify a queue or topic that doesn't exist, the function will fail.

In C# e nello script C# è possibile usare i tipi di parametro seguenti per l'associazione di output:In C# and C# script, you can use the following parameter types for the output binding:

  • out T paramName - T può essere qualsiasi tipo serializzabile con JSON.out T paramName - T can be any JSON-serializable type. Se il valore del parametro è null quando la funzione termina, Funzioni di Azure crea il messaggio con un oggetto null.If the parameter value is null when the function exits, Functions creates the message with a null object.
  • out string: se il valore del parametro è null quando la funzione termina, Funzioni di Azure non crea un messaggio.out string - If the parameter value is null when the function exits, Functions does not create a message.
  • out byte[]: se il valore del parametro è null quando la funzione termina, Funzioni di Azure non crea un messaggio.out byte[] - If the parameter value is null when the function exits, Functions does not create a message.
  • out BrokeredMessage: se il valore del parametro è null quando la funzione termina, Funzioni di Azure non crea un messaggio.out BrokeredMessage - If the parameter value is null when the function exits, Functions does not create a message.
  • ICollector<T> o IAsyncCollector<T>: per la creazione di più messaggi.ICollector<T> or IAsyncCollector<T> - For creating multiple messages. Quando si chiama il metodo Add viene creato un messaggio.A message is created when you call the Add method.

Nelle funzioni asincrone usare il valore restituito o IAsyncCollector anziché un parametro out.In async functions, use the return value or IAsyncCollector instead of an out parameter.

Questi parametri sono per le versioni di Funzioni di Azure 1.x. Per le versioni 2.x, usare Message invece di BrokeredMessage.These parameters are for Azure Functions version 1.x; for 2.x, use Message instead of BrokeredMessage.

In JavaScript accedere alla coda o all'argomento usando context.bindings.<name from function.json>.In JavaScript, access the queue or topic by using context.bindings.<name from function.json>. È possibile assegnare una stringa, una matrice di byte o un oggetto Javascript (deserializzato in JSON) a context.binding.<name>.You can assign a string, a byte array, or a Javascript object (deserialized into JSON) to context.binding.<name>.

Eccezioni e codici restituitiExceptions and return codes

AssociazioneBinding RiferimentiReference
Bus di servizioService Bus Codici di errore del bus di servizioService Bus Error Codes
Bus di servizioService Bus Limiti del bus di servizioService Bus Limits

Passaggi successiviNext steps