Dela via


Ansluta funktioner till Azure-tjänster med bindningar

När du skapar en funktion läggs språkspecifik utlösarkod till i projektet från en uppsättning utlösarmallar. Om du vill ansluta funktionen till andra tjänster med hjälp av indata- eller utdatabindningar måste du lägga till specifika bindningsdefinitioner i funktionen. Mer information om bindningar finns i Azure Functions-utlösare och bindningar.

Lokal utveckling

När du utvecklar funktioner lokalt måste du uppdatera funktionskoden för att lägga till bindningar. För språk som använder function.jsontillhandahåller Visual Studio Code verktyg för att lägga till bindningar i en funktion.

Lägga till bindningar manuellt baserat på exempel

När du lägger till en bindning till en befintlig funktion måste du lägga till bindningsspecifika attribut i funktionsdefinitionen i koden.

När du lägger till en bindning till en befintlig funktion måste du lägga till bindningsspecifika anteckningar i funktionsdefinitionen i koden.

När du lägger till en bindning till en befintlig funktion måste du uppdatera funktionskoden och lägga till en definition i function.json-konfigurationsfilen.

När du lägger till en bindning till en befintlig funktion behöver du uppdatera funktionsdefinitionen, beroende på din modell:

Du måste lägga till bindningsspecifika anteckningar i funktionsdefinitionen i koden.

I följande exempel visas funktionsdefinitionen när du har lagt till en utdatabindning för queue storage till en HTTP-utlöst funktion:

Eftersom en HTTP-utlöst funktion också returnerar ett HTTP-svar returnerar funktionen ett MultiResponse objekt som representerar både HTTP- och köutdata.

[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
    FunctionContext executionContext)
{

Det här exemplet är definitionen av objektet MultiResponse som innehåller utdatabindningen:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

När du tillämpar det exemplet på ditt eget projekt kan du behöva ändra HttpRequest till HttpRequestData och IActionResult till HttpResponseData, beroende på om du använder ASP.NET Core-integrering eller inte.

Meddelanden skickas till kön när funktionen är klar. Hur du definierar utdatabindningen beror på din processmodell. Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

@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) {

Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

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' };
    }
  },
});

Hur du definierar utdatabindningen beror på vilken version av din Node.js modell. Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

@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.')

Hur du definierar utdatabindningen beror på vilken version av Python-modellen du har. Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

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,
});

Hur du definierar utdatabindningen beror på vilken version av din Node.js modell. Mer information, inklusive länkar till exempelbindningskod som du kan referera till, finns i Lägga till bindningar i en funktion.

Använd följande tabell för att hitta exempel på specifika bindningstyper som du kan använda för att hjälpa dig att uppdatera en befintlig funktion. Välj först den språkflik som motsvarar projektet.

Bindningskoden för C# beror på den specifika processmodellen.

Tjänster Exempel Exempel
Blob Storage (lagring av blobbar) Utlösare
indata
Resultat
Länk
Azure Cosmos DB Utlösare
indata
Resultat
Länk
Azure-datautforskaren indata
Resultat
Länk
Azure SQL Utlösare
indata
Resultat
Länk
Event Grid (händelsenätverk) Utlösare
Resultat
Länk
Event Hubs Utlösare
Resultat
IoT Hub Utlösare
Resultat
HTTP Utlösare Länk
Kölager Utlösare
Resultat
Länk
RabbitMQ Utlösare
Resultat
SendGrid Resultat
Tjänstebuss Utlösare
Resultat
Länk
Azure SignalR Service Utlösare
indata
Resultat
Tabellagring indata
Resultat
Tidtagare Utlösare Länk
Twilio Resultat Länk
Tjänster Exempel Exempel
Blob Storage (lagring av blobbar) Utlösare
indata
Resultat
Länk
Azure Cosmos DB Utlösare
indata
Resultat
Länk
Azure-datautforskaren indata
Resultat
Länk
Azure SQL Utlösare
indata
Resultat
Event Grid (händelsenätverk) Utlösare
Resultat
Länk
Event Hubs Utlösare
Resultat
IoT Hub Utlösare
Resultat
HTTP Utlösare Länk
Kölager Utlösare
Resultat
Länk
RabbitMQ Utlösare
Resultat
SendGrid Resultat
Tjänstebuss Utlösare
Resultat
Länk
Azure SignalR Service Utlösare
indata
Resultat
Tabellagring indata
Resultat
Tidtagare Utlösare Länk
Twilio Resultat
Tjänster Exempel Exempel
Blob Storage (lagring av blobbar) Utlösare
indata
Resultat
Länk
Azure Cosmos DB Utlösare
indata
Resultat
Länk
Azure-datautforskaren indata
Resultat
Azure SQL Utlösare
indata
Resultat
Länk
Event Grid (händelsenätverk) Utlösare
Resultat
Event Hubs Utlösare
Resultat
IoT Hub Utlösare
Resultat
HTTP Utlösare Länk
Kölager Utlösare
Resultat
Länk
RabbitMQ Utlösare
Resultat
SendGrid Resultat
Tjänstebuss Utlösare
Resultat
Länk
Azure SignalR Service Utlösare
indata
Resultat
Tabellagring indata
Resultat
Tidtagare Utlösare
Twilio Resultat
Tjänster Exempel Exempel
Blob Storage (lagring av blobbar) Utlösare
indata
Resultat
Azure Cosmos DB Utlösare
indata
Resultat
Azure SQL Utlösare
indata
Resultat
Event Grid (händelsenätverk) Utlösare
Resultat
Event Hubs Utlösare
Resultat
IoT Hub Utlösare
Resultat
HTTP Utlösare Länk
Kölager Utlösare
Resultat
RabbitMQ Utlösare
Resultat
SendGrid Resultat
Tjänstebuss Utlösare
Resultat
Azure SignalR Service Utlösare
indata
Resultat
Tabellagring indata
Resultat
Tidtagare Utlösare
Twilio Resultat

Bindningskoden för Python beror på Python-modellversionen.

Tjänster Exempel Exempel
Blob Storage (lagring av blobbar) Utlösare
indata
Resultat
Länk
Azure Cosmos DB Utlösare
indata
Resultat
Länk
Azure-datautforskaren indata
Resultat
Azure SQL Utlösare
indata
Resultat
Länk
Event Grid (händelsenätverk) Utlösare
Resultat
Event Hubs Utlösare
Resultat
IoT Hub Utlösare
Resultat
HTTP Utlösare Länk
Kölager Utlösare
Resultat
RabbitMQ Utlösare
Resultat
SendGrid Resultat
Tjänstebuss Utlösare
Resultat
Länk
Azure SignalR Service Utlösare
indata
Resultat
Tabellagring indata
Resultat
Tidtagare Utlösare
Twilio Resultat

Visual Studio Code

När du använder Visual Studio Code för att utveckla din funktion och funktionen använder en function.json fil kan Azure Functions-tillägget automatiskt lägga till en bindning till en befintlig function.json fil. Mer information finns i Lägga till indata- och utdatabindningar.

Azure-portalen

När du utvecklar dina funktioner i Azure-portalen lägger du till indata- och utdatabindningar på fliken Integrera för en viss funktion. De nya bindningarna läggs till i antingen function.json-filen eller till metodattributen, beroende på ditt språk. Följande artiklar visar exempel på hur du lägger till bindningar till en befintlig funktion i portalen:

Nästa steg