Verbinden von Funktionen mit Azure-Diensten mithilfe von Bindungen
Wenn Sie eine Funktion erstellen, wird der sprachspezifische Triggercode aus Triggervorlagen in Ihrem Projekt hinzugefügt. Wenn Sie Ihre Funktion mithilfe von Ein- oder Ausgabebindungen mit anderen Diensten verknüpfen möchten, müssen Sie in Ihrer Funktion bestimmte Bindungsdefinitionen hinzufügen. Weitere Informationen zu Bindungen finden Sie unter Azure Functions-Trigger und Bindungskonzepte.
Lokale Entwicklung
Wenn Sie Funktionen lokal entwickeln, müssen Sie den Funktionscode aktualisieren, um Bindungen hinzuzufügen. Für Sprachen, die function.json verwenden, stellt Visual Studio Code Tools zum Hinzufügen von Bindungen zu einer Funktion bereit.
Manuelles Hinzufügen von Bindungen anhand von Beispielen
Wenn Sie einer vorhandenen Funktion eine Bindung hinzufügen, müssen Sie der Funktionsdefinition im Code bindungsspezifische Attribute hinzufügen.
Wenn Sie einer vorhandenen Funktion eine Bindung hinzufügen, müssen Sie der Funktionsdefinition im Code bindungsspezifische Anmerkungen hinzufügen.
Wenn Sie einer vorhandenen Funktion eine Bindung hinzufügen, müssen Sie den Funktionscode aktualisieren und der Konfigurationsdatei function.json eine Definition hinzufügen.
Wenn Sie einer vorhandenen Funktion eine Bindung hinzufügen, müssen Sie die Funktionsdefinition je nach verwendetem Modell aktualisieren:
Das folgende Beispiel zeigt die Funktionsdefinition nach dem Hinzufügen einer Queue Storage-Ausgabebindung zu einer von HTTP ausgelösten Funktion:
Da eine per HTTP ausgelöste Funktion auch eine HTTP-Antwort zurückgibt, gibt die Funktion ein MultiResponse
-Objekt zurück, das sowohl die HTTP- als auch die Warteschlangenausgabe darstellt.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
Das folgende Beispiel ist die Definition des MultiResponse
-Objekts, das die Ausgabebindung enthält:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Wenn Sie dieses Beispiel auf Ihr eigenes Projekt anwenden, müssen Sie möglicherweise HttpRequest
zu HttpRequestData
und IActionResult
zu HttpResponseData
ändern, je nachdem, ob Sie die ASP.NET Core-Integration verwenden oder nicht.
Meldungen werden an die Warteschlange gesendet, wenn die Funktion abgeschlossen ist. Die Art und Weise, wie Sie die Ausgabebindung definieren, hängt von Ihrem Prozessmodell ab. Weitere Informationen, einschließlich Links zu Beispielbindungscode, auf den Sie verweisen können, finden Sie unter Hinzufügen von Bindungen zu einer 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) {
Weitere Informationen, einschließlich Links zu Beispielbindungscode, auf den Sie verweisen können, finden Sie unter Hinzufügen von Bindungen zu einer Funktion.
Die Art und Weise, wie Sie die Ausgabebindung definieren, hängt von der Version Ihres Node.js-Modells ab. Weitere Informationen, einschließlich Links zu Beispielbindungscode, auf den Sie verweisen können, finden Sie unter Hinzufügen von Bindungen zu einer Funktion.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Weitere Informationen, einschließlich Links zu Beispielbindungscode, auf den Sie verweisen können, finden Sie unter Hinzufügen von Bindungen zu einer 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.')
Die Art und Weise, wie Sie die Ausgabebindung definieren, hängt von der Version Ihres Python-Modells ab. Weitere Informationen, einschließlich Links zu Beispielbindungscode, auf den Sie verweisen können, finden Sie unter Hinzufügen von Bindungen zu einer Funktion.
Die Art und Weise, wie Sie die Ausgabebindung definieren, hängt von der Version Ihres Node.js-Modells ab. Weitere Informationen, einschließlich Links zu Beispielbindungscode, auf den Sie verweisen können, finden Sie unter Hinzufügen von Bindungen zu einer Funktion.
In der folgenden Tabelle finden Sie Beispiele für bestimmte Bindungstypen, mithilfe derer Sie vorhandene Funktionen aktualisieren können. Wählen Sie zunächst die Registerkarte „Sprache“ aus, die Ihrem Projekt entspricht.
Der Bindungscode für C# hängt vom jeweiligen Prozessmodell ab.
Power BI-Dienst | Beispiele | Beispiele |
---|---|---|
Blob Storage | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure-Daten-Explorer | Input (Eingabe) Ausgabe |
Link |
Azure SQL | Trigger Input (Eingabe) Ausgabe |
Link |
Event Grid | Trigger Ausgabe |
Link |
Event Hubs | Trigger Ausgabe |
|
IoT Hub | Trigger Ausgabe |
|
HTTP | Trigger | Link |
Queue Storage | Trigger Ausgabe |
Link |
RabbitMQ | Trigger Ausgabe |
|
SendGrid | Ausgabe | |
Service Bus | Trigger Ausgabe |
Link |
SignalR | Trigger Input (Eingabe) Ausgabe |
|
Table Storage | Input (Eingabe) Ausgabe |
|
Timer | Trigger | Link |
Twilio | Ausgabe | Link |
Dienst | Beispiele | Beispiele |
---|---|---|
Blob Storage | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure-Daten-Explorer | Input (Eingabe) Ausgabe |
Link |
Azure SQL | Trigger Input (Eingabe) Ausgabe |
|
Event Grid | Trigger Ausgabe |
Link |
Event Hubs | Trigger Ausgabe |
|
IoT Hub | Trigger Ausgabe |
|
HTTP | Trigger | Link |
Queue Storage | Trigger Ausgabe |
Link |
RabbitMQ | Trigger Ausgabe |
|
SendGrid | Ausgabe | |
Service Bus | Trigger Ausgabe |
Link |
SignalR | Trigger Input (Eingabe) Ausgabe |
|
Table Storage | Input (Eingabe) Ausgabe |
|
Timer | Trigger | Link |
Twilio | Ausgabe | Link |
Dienst | Beispiele | Beispiele |
---|---|---|
Blob Storage | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure-Daten-Explorer | Input (Eingabe) Ausgabe |
|
Azure SQL | Trigger Input (Eingabe) Ausgabe |
Link |
Event Grid | Trigger Ausgabe |
Link |
Event Hubs | Trigger Ausgabe |
|
IoT Hub | Trigger Ausgabe |
|
HTTP | Trigger | Link |
Queue Storage | Trigger Ausgabe |
Link |
RabbitMQ | Trigger Ausgabe |
|
SendGrid | Ausgabe | |
Service Bus | Trigger Ausgabe |
Link |
SignalR | Trigger Input (Eingabe) Ausgabe |
|
Table Storage | Input (Eingabe) Ausgabe |
|
Timer | Trigger | Link |
Twilio | Ausgabe | Link |
Dienst | Beispiele | Beispiele |
---|---|---|
Blob Storage | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure SQL | Trigger Input (Eingabe) Ausgabe |
|
Event Grid | Trigger Ausgabe |
Link |
Event Hubs | Trigger Ausgabe |
|
IoT Hub | Trigger Ausgabe |
|
HTTP | Trigger | Link |
Queue Storage | Trigger Ausgabe |
Link |
RabbitMQ | Trigger Ausgabe |
|
SendGrid | Ausgabe | |
Service Bus | Trigger Ausgabe |
Link |
SignalR | Trigger Input (Eingabe) Ausgabe |
|
Table Storage | Input (Eingabe) Ausgabe |
|
Timer | Trigger | Link |
Twilio | Ausgabe | Link |
Die Bindung von Code für Python hängt von der Python-Modellversion ab.
Power BI-Dienst | Beispiele | Beispiele |
---|---|---|
Blob Storage | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure-Daten-Explorer | Input (Eingabe) Ausgabe |
|
Azure SQL | Trigger Input (Eingabe) Ausgabe |
Link |
Event Grid | Trigger Ausgabe |
Link |
Event Hubs | Trigger Ausgabe |
|
IoT Hub | Trigger Ausgabe |
|
HTTP | Trigger | Link |
Queue Storage | Trigger Ausgabe |
Link |
RabbitMQ | Trigger Ausgabe |
|
SendGrid | Ausgabe | |
Service Bus | Trigger Ausgabe |
Link |
SignalR | Trigger Input (Eingabe) Ausgabe |
|
Table Storage | Input (Eingabe) Ausgabe |
|
Timer | Trigger | Link |
Twilio | Ausgabe | Link |
Visual Studio Code
Wenn Sie Ihre Funktion mit Visual Studio Code entwickeln und die Funktion eine function.json-Datei verwendet, kann die Azure Functions-Erweiterung automatisch eine Bindung zu einer vorhandenen function.json-Datei hinzufügen. Weitere Informationen finden Sie unter Hinzufügen von Ein- und Ausgabebindungen.
Azure-Portal
Wenn Sie die Funktionen im Azure-Portal entwickeln, können Sie einer bestimmten Funktion auf der Registerkarte Integration Ein- und Ausgabebindungen hinzufügen. Die neuen Bindungen werden je nach Sprache entweder der Datei „function.json“ oder den Methodenattributen hinzugefügt. Die folgenden Artikel enthalten Beispiele für das Hinzufügen von Bindungen zu einer vorhandenen Funktion im Portal: