Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du skapar en funktion läggs språkspecifik utlösarkod till i din project 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:
I Go konfigurerar du utlösare som stöds med hjälp av API:et för flytande registrering i din main() funktion. Varje utlösartyp har en dedikerad registreringsmetod med funktionsalternativ för konfiguration. Ingen separat bindningskonfigurationsfil behövs.
I följande exempel visas en HTTP-utlöst funktion. Om du behöver skriva till Queue Storage från en Go-funktion använder du Azure SDKs för Go direkt eftersom Queue Storage-utdatabindningar för närvarande inte stöds av Go-arbetaren:
package main
import (
"encoding/json"
"fmt"
"net/http"
"github.com/azure/azure-functions-golang-worker/sdk"
"github.com/azure/azure-functions-golang-worker/worker"
)
func main() {
app := sdk.FunctionApp()
app.HTTP("HttpExample", httpHandler,
sdk.WithMethods("GET", "POST"),
sdk.WithAuth("anonymous"),
)
worker.Start(app)
}
func httpHandler(w http.ResponseWriter, r *http.Request) {
name := r.URL.Query().Get("name")
if name == "" {
var body struct{ Name string }
json.NewDecoder(r.Body).Decode(&body)
name = body.Name
}
if name == "" {
w.WriteHeader(http.StatusBadRequest)
fmt.Fprint(w, "Please pass a name on the query string or in the request body.")
return
}
// Queue output bindings are not yet supported in the Go worker.
// Use the Azure SDK for Go to write to Queue Storage directly.
fmt.Fprintf(w, "Hello, %s!", name)
}
Note
Go-arbetaren har för närvarande endast stöd för utlösare. Indata- och utdatabindningar, till exempel queue storage-utdatabindningar, är ännu inte tillgängliga. Använd Azure SDKs för Go för att interagera med andra Azure tjänster direkt från funktionskoden.
Go-arbetaren stöder för närvarande följande utlösartyper:
| Utlösartyp | Registreringsmetod | Exempel |
|---|---|---|
| HTTP | app.HTTP() |
HTTP-exempel |
| Timer | app.Timer() |
Timerexempel |
| Azure Cosmos DB | app.CosmosDB() |
Cosmos DB-exempel |
| Azure Service Bus (kö) | app.ServiceBusQueue() |
Exempel för Service Bus-köer |
| Azure Service Bus (Topic) | app.ServiceBusTopic() |
Exempel på Service Bus-ämnen |
| Event Hubs | app.EventHub() |
Event Hubs-exempel |
| Evenemangsrutt | app.EventGrid() |
Event Grid-exempel |
| Blob Storage | app.Blob() |
Blobexempel |
Mer information finns i go developer-referensen.
I följande exempel visas funktionsdefinitionen när du har lagt till en Queue Storage utdatabindning 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 MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
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; }
}
I det här exemplet används ASP.NET Core integration. Om du inte använder ASP.NET Core integrering måste du ändra HttpRequest till HttpRequestData och IActionResult till HttpResponseData.
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 din project.
Bindningskoden för C# beror på den specifika processmodellen.
| Tjänster | Exempel | Exempel |
|---|---|---|
| Blob Storage |
Trigger Input Output |
Link |
| Azure Cosmos DB |
Trigger Input Output |
Link |
| Azure Data Explorer |
Input Output |
Link |
| Azure SQL |
Trigger Input Output |
Link |
| Event Grid (händelsenätverk) |
Trigger Output |
Link |
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Kölager |
Trigger Output |
Link |
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
Link |
| Azure SignalR Service |
Trigger Input Output |
|
| Tabellagring |
Input Output |
|
| Tidtagare | Trigger | Link |
| Twilio | Output | Link |
| Tjänster | Exempel | Exempel |
|---|---|---|
| Blob Storage |
Trigger Input Output |
Link |
| Azure Cosmos DB |
Trigger Input Output |
Link |
| Azure Data Explorer |
Input Output |
Link |
| Azure SQL |
Trigger Input Output |
|
| Event Grid (händelsenätverk) |
Trigger Output |
Link |
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Kölager |
Trigger Output |
Link |
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
Link |
| Azure SignalR Service |
Trigger Input Output |
|
| Tabellagring |
Input Output |
|
| Tidtagare | Trigger | Link |
| Twilio | Output |
| Tjänster | Exempel | Exempel |
|---|---|---|
| Blob Storage |
Trigger Input Output |
Link |
| Azure Cosmos DB |
Trigger Input Output |
Link |
| Azure Data Explorer |
Input Output |
|
| Azure SQL |
Trigger Input Output |
Link |
| Event Grid (händelsenätverk) |
Trigger Output |
|
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Kölager |
Trigger Output |
Link |
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
Link |
| Azure SignalR Service |
Trigger Input Output |
|
| Tabellagring |
Input Output |
|
| Tidtagare | Trigger | |
| Twilio | Output |
| Tjänster | Exempel | Exempel |
|---|---|---|
| Blob Storage |
Trigger Input Output |
|
| Azure Cosmos DB |
Trigger Input Output |
|
| Azure SQL |
Trigger Input Output |
|
| Event Grid (händelsenätverk) |
Trigger Output |
|
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Kölager |
Trigger Output |
|
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
|
| Azure SignalR Service |
Trigger Input Output |
|
| Tabellagring |
Input Output |
|
| Tidtagare | Trigger | |
| Twilio | Output |
Bindningskoden för Python beror på Python-modellversionen.
| Tjänster | Exempel | Exempel |
|---|---|---|
| Blob Storage |
Trigger Input Output |
Link |
| Azure Cosmos DB |
Trigger Input Output |
Link |
| Azure Data Explorer |
Input Output |
|
| Azure SQL |
Trigger Input Output |
Link |
| Event Grid (händelsenätverk) |
Trigger Output |
|
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Kölager |
Trigger Output |
|
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
Link |
| Azure SignalR Service |
Trigger Input Output |
|
| Tabellagring |
Input Output |
|
| Tidtagare | Trigger | |
| Twilio | Output |
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 i en befintlig function.json fil. Mer information finns i Lägga till indata- och utdatabindningar.
Azure portal
När du utvecklar dina funktioner i Azure portal lägger du till indata- och utdatabindningar i fliken Integrate 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: