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:

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

Nell'esempio seguente un funzione c# che registra un messaggio nella coda Service Bus.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}");
}

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

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

  • ServiceBusTriggerAttribute, definito nel pacchetto NuGet Microsoft.Azure.WebJobs.ServiceBusServiceBusTriggerAttribute, defined in NuGet package Microsoft.Azure.WebJobs.ServiceBus

    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. Se i diritti di accesso non vengono specificati, l'impostazione predefinita è Manage.If you don't specify access rights, the default is Manage. Nella sezione Trigger - Configurazione viene spiegato come scegliere l'impostazione dei diritti di accesso.How to choose the access rights setting is explained in 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 c#.For a complete example, see Trigger - C# example.

  • ServiceBusAccountAttribute, definito nel pacchetto NuGet Microsoft.Azure.WebJobs.ServiceBusServiceBusAccountAttribute, defined in NuGet package Microsoft.Azure.WebJobs.ServiceBus

    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.

Quando si sviluppa in locale, le impostazioni dell'app vengono inserite nel file local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Trigger - usoTrigger - usage

In C# e negli script C# è possibile accedere al messaggio della coda o dell'argomento usando un parametro del metodo, ad esempio string paramName.In C# and C# script, access the queue or topic message by using a method parameter such as string paramName. Negli script C#, paramName è il valore specificato nella proprietà name di function.json.In C# script, paramName is the value specified in the name property of function.json. È possibile usare uno dei tipi seguenti invece di string:You can use any of the following types instead of string:

  • 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.

In JavaScript accedere al messaggio della coda o dell'argomento usando context.bindings.<name>.In JavaScript, access the queue or topic message by using context.bindings.<name>. <name> è il valore specificato nella proprietà name di function.json.<name> is the value specified in the name property of 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 DefaultDefault 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

Nell'esempio seguente un funzione c# che invia un messaggio nella coda Service Bus: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

In librerie di classi c#, utilizzare il ServiceBusAttribute, che è definito nel pacchetto NuGet Microsoft.Azure.WebJobs.ServiceBus.In C# class libraries, use the ServiceBusAttribute, which is defined in NuGet package Microsoft.Azure.WebJobs.ServiceBus.

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 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.
subscriptionNamesubscriptionName SubscriptionNameSubscriptionName Nome della sottoscrizione da monitorare.Name of the subscription 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 la connessione ha l'autorizzazione Gestisci.The default is "manage", which indicates that the connection has Manage permissions. 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 Manage permissions, 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.

Quando si sviluppa in locale, le impostazioni dell'app vengono inserite nel file local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Output - usoOutput - usage

In C# e negli script C# è possibile accedere alla coda o all'argomento usando un parametro del metodo, ad esempio out string paramName.In C# and C# script, access the queue or topic by using a method parameter such as out string paramName. Negli script C#, paramName è il valore specificato nella proprietà name di function.json.In C# script, paramName is the value specified in the name property of function.json. È possibile usare uno dei tipi di parametro seguenti:You can use any of the following parameter types:

  • 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.

Per la creazione di più messaggi in una funzione C# o script C#, è possibile usare ICollector<T> o IAsyncCollector<T>.For creating multiple messages in a C# or C# script function, you can use ICollector<T> or IAsyncCollector<T>. Quando si chiama il metodo Add viene creato un messaggio.A message is created when you call the Add method.

In JavaScript accedere alla coda o all'argomento usando context.bindings.<name>.In JavaScript, access the queue or topic by using context.bindings.<name>. <name> è il valore specificato nella proprietà name di function.json.<name> is the value specified in the name property of 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>.

Passaggi successiviNext steps