Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si crea una funzione, il codice trigger specifico del linguaggio viene aggiunto nel progetto da un set di modelli di trigger. Se si vuole connettere la funzione ad altri servizi usando associazioni di input o output, è necessario aggiungere definizioni di binding specifiche nella funzione. Per altre informazioni sui binding, vedere Concetti su trigger e binding di Funzioni di Azure.
Sviluppo locale
Quando si sviluppano funzioni in locale, è necessario aggiornare il codice della funzione per aggiungere associazioni. Per i linguaggi che usano function.json, Visual Studio Code fornisce strumenti per aggiungere associazioni a una funzione.
Aggiungere manualmente associazioni basate su esempi
Quando si aggiunge un'associazione a una funzione esistente, è necessario aggiungere attributi specifici dell'associazione alla definizione della funzione nel codice.
Quando si aggiunge un'associazione a una funzione esistente, è necessario aggiungere annotazioni specifiche dell'associazione alla definizione della funzione nel codice.
Quando si aggiunge un'associazione a una funzione esistente, è necessario aggiornare il codice della funzione e aggiungere una definizione al file di configurazione function.json.
Quando si aggiunge un'associazione a una funzione esistente, è necessario aggiornare la definizione della funzione, a seconda del modello:
L'esempio seguente illustra la definizione della funzione dopo l'aggiunta di un'associazione di output di archiviazione code a una funzione attivata tramite HTTP:
Poiché una funzione attivata da HTTP restituisce anche una risposta HTTP, la funzione restituisce un oggetto MultiResponse
, che rappresenta sia l'output HTTP che quello della coda.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
Questo esempio è la definizione dell'oggetto MultiResponse
che include l'associazione di output:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Quando si applica tale esempio al proprio progetto, potrebbe essere necessario modificare HttpRequest
in HttpRequestData
e IActionResult
in HttpResponseData
, a seconda che si usi ASP.NET core integration o meno.
I messaggi vengono inviati alla coda al termine della funzione. Il modo in cui si definisce l'associazione di output dipende dal modello di processo. Per altre informazioni, inclusi i collegamenti al codice di associazione di esempio a cui è possibile fare riferimento, vedere Aggiungere associazioni a una funzione.
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@QueueOutput(name = "msg", queueName = "outqueue",
connection = "AzureWebJobsStorage") OutputBinding<String> msg,
final ExecutionContext context) {
Per altre informazioni, inclusi i collegamenti al codice di associazione di esempio a cui è possibile fare riferimento, vedere Aggiungere associazioni a una funzione.
const { app, output } = require('@azure/functions');
const sendToQueue = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [sendToQueue],
handler: async (request, context) => {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
},
});
Il modo in cui si definisce l'associazione di output dipende dalla versione del modello di Node.js. Per altre informazioni, inclusi i collegamenti al codice di associazione di esempio a cui è possibile fare riferimento, vedere Aggiungere associazioni a una funzione.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Per altre informazioni, inclusi i collegamenti al codice di associazione di esempio a cui è possibile fare riferimento, vedere Aggiungere associazioni a una funzione.
@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
Il modo in cui si definisce l'associazione di output dipende dalla versione del modello Python. Per altre informazioni, inclusi i collegamenti al codice di associazione di esempio a cui è possibile fare riferimento, vedere Aggiungere associazioni a una funzione.
import {
app,
output,
HttpRequest,
HttpResponseInit,
InvocationContext,
StorageQueueOutput,
} from '@azure/functions';
const sendToQueue: StorageQueueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
export async function HttpExample(
request: HttpRequest,
context: InvocationContext,
): Promise<HttpResponseInit> {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
});
Il modo in cui si definisce l'associazione di output dipende dalla versione del modello di Node.js. Per altre informazioni, inclusi i collegamenti al codice di associazione di esempio a cui è possibile fare riferimento, vedere Aggiungere associazioni a una funzione.
Usare la tabella seguente per trovare esempi di tipi di associazione specifici che è possibile usare per guidare l'aggiornamento di una funzione esistente. Scegliere prima di tutto la scheda della lingua corrispondente al progetto.
Il codice di associazione per C# dipende dal modello di processo specifico.
Servizio | Esempi | Esempi |
---|---|---|
Archiviazione BLOB nel servizio cloud |
Attivazione Inserimento Risultato |
Collegamento |
Azure Cosmos DB, un servizio di database distribuito globale di Microsoft |
Attivazione Inserimento Risultato |
Collegamento |
Esplora dati di Azure |
Inserimento Risultato |
Collegamento |
Azure SQL |
Attivazione Inserimento Risultato |
Collegamento |
Griglia di eventi |
Attivazione Risultato |
Collegamento |
Hub eventi |
Attivazione Risultato |
|
IoT Hub |
Attivazione Risultato |
|
Protocollo HTTP | Attivazione | Collegamento |
Archiviazione coda |
Attivazione Risultato |
Collegamento |
RabbitMQ |
Attivazione Risultato |
|
SendGrid | Risultato | |
Bus di servizio |
Attivazione Risultato |
Collegamento |
SignalR |
Attivazione Inserimento Risultato |
|
Archiviazione di tabelle |
Inserimento Risultato |
|
Temporizzatore | Attivazione | Collegamento |
Twilio | Risultato | Collegamento |
Servizio | Esempi | Esempi |
---|---|---|
Archiviazione BLOB nel servizio cloud |
Attivazione Inserimento Risultato |
Collegamento |
Azure Cosmos DB, un servizio di database distribuito globale di Microsoft |
Attivazione Inserimento Risultato |
Collegamento |
Esplora dati di Azure |
Inserimento Risultato |
Collegamento |
Azure SQL |
Attivazione Inserimento Risultato |
|
Griglia di eventi |
Attivazione Risultato |
Collegamento |
Hub eventi |
Attivazione Risultato |
|
IoT Hub |
Attivazione Risultato |
|
Protocollo HTTP | Attivazione | Collegamento |
Archiviazione coda |
Attivazione Risultato |
Collegamento |
RabbitMQ |
Attivazione Risultato |
|
SendGrid | Risultato | |
Bus di servizio |
Attivazione Risultato |
Collegamento |
SignalR |
Attivazione Inserimento Risultato |
|
Archiviazione di tabelle |
Inserimento Risultato |
|
Temporizzatore | Attivazione | Collegamento |
Twilio | Risultato | Collegamento |
Servizio | Esempi | Esempi |
---|---|---|
Archiviazione BLOB nel servizio cloud |
Attivazione Inserimento Risultato |
Collegamento |
Azure Cosmos DB, un servizio di database distribuito globale di Microsoft |
Attivazione Inserimento Risultato |
Collegamento |
Esplora dati di Azure |
Inserimento Risultato |
|
Azure SQL |
Attivazione Inserimento Risultato |
Collegamento |
Griglia di eventi |
Attivazione Risultato |
Collegamento |
Hub eventi |
Attivazione Risultato |
|
IoT Hub |
Attivazione Risultato |
|
Protocollo HTTP | Attivazione | Collegamento |
Archiviazione coda |
Attivazione Risultato |
Collegamento |
RabbitMQ |
Attivazione Risultato |
|
SendGrid | Risultato | |
Bus di servizio |
Attivazione Risultato |
Collegamento |
SignalR |
Attivazione Inserimento Risultato |
|
Archiviazione di tabelle |
Inserimento Risultato |
|
Temporizzatore | Attivazione | Collegamento |
Twilio | Risultato | Collegamento |
Servizio | Esempi | Esempi |
---|---|---|
Archiviazione BLOB nel servizio cloud |
Attivazione Inserimento Risultato |
Collegamento |
Azure Cosmos DB, un servizio di database distribuito globale di Microsoft |
Attivazione Inserimento Risultato |
Collegamento |
Azure SQL |
Attivazione Inserimento Risultato |
|
Griglia di eventi |
Attivazione Risultato |
Collegamento |
Hub eventi |
Attivazione Risultato |
|
IoT Hub |
Attivazione Risultato |
|
Protocollo HTTP | Attivazione | Collegamento |
Archiviazione coda |
Attivazione Risultato |
Collegamento |
RabbitMQ |
Attivazione Risultato |
|
SendGrid | Risultato | |
Bus di servizio |
Attivazione Risultato |
Collegamento |
SignalR |
Attivazione Inserimento Risultato |
|
Archiviazione di tabelle |
Inserimento Risultato |
|
Temporizzatore | Attivazione | Collegamento |
Twilio | Risultato | Collegamento |
Il codice di associazione per Python dipende dalla versione del modello Python.
Servizio | Esempi | Esempi |
---|---|---|
Archiviazione BLOB nel servizio cloud |
Attivazione Inserimento Risultato |
Collegamento |
Azure Cosmos DB, un servizio di database distribuito globale di Microsoft |
Attivazione Inserimento Risultato |
Collegamento |
Esplora dati di Azure |
Inserimento Risultato |
|
Azure SQL |
Attivazione Inserimento Risultato |
Collegamento |
Griglia di eventi |
Attivazione Risultato |
Collegamento |
Hub eventi |
Attivazione Risultato |
|
IoT Hub |
Attivazione Risultato |
|
Protocollo HTTP | Attivazione | Collegamento |
Archiviazione coda |
Attivazione Risultato |
Collegamento |
RabbitMQ |
Attivazione Risultato |
|
SendGrid | Risultato | |
Bus di servizio |
Attivazione Risultato |
Collegamento |
SignalR |
Attivazione Inserimento Risultato |
|
Archiviazione di tabelle |
Inserimento Risultato |
|
Temporizzatore | Attivazione | Collegamento |
Twilio | Risultato | Collegamento |
Visual Studio Code
Quando si usa Visual Studio Code per sviluppare la funzione e la funzione usa un file function.json, l'estensione Funzioni di Azure può aggiungere automaticamente un'associazione a un file di function.json esistente. Per altre informazioni, vedere Aggiungere associazioni di input e output.
Portale di Azure
Quando si sviluppano le funzioni nel portale di Azure, si aggiungono associazioni di input e output nella scheda Integrazione per una determinata funzione. Le nuove associazioni vengono aggiunte al file function.json o agli attributi del metodo, a seconda della lingua. Gli articoli seguenti illustrano esempi di come aggiungere associazioni a una funzione esistente nel portale: