Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie eine Funktion erstellen, wird sprachspezifischer Triggercode in Ihrem Projekt aus einer Reihe von Triggervorlagen hinzugefügt. Wenn Sie Ihre Funktion mithilfe von Eingabe- oder Ausgabebindungen mit anderen Diensten verbinden möchten, müssen Sie 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.jsonverwenden, stellt Visual Studio Code Tools zum Hinzufügen von Bindungen zu einer Funktion bereit.
Manuelles Hinzufügen von Bindungen basierend auf 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 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.
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' };
}
},
});
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.
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,
});
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.
Verwenden Sie die folgende Tabelle, um Beispiele für bestimmte Bindungstypen zu finden, die Sie beim Aktualisieren einer vorhandenen Funktion unterstützen 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.
Dienstleistung | Beispiele | Beispiele |
---|---|---|
Blob Storage |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure Cosmos DB (ein Microsoft-Datenbankdienst) |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure-Daten-Explorer |
Eingabe Ausgabe |
Verbinden |
Azure SQL |
Auslösen Eingabe Ausgabe |
Verbinden |
Ereignisraster |
Auslösen Ausgabe |
Verbinden |
Ereignis-Hubs |
Auslösen Ausgabe |
|
IoT Hub |
Auslösen Ausgabe |
|
HTTP | Auslösen | Verbinden |
Queue Storage |
Auslösen Ausgabe |
Verbinden |
RabbitMQ |
Auslösen Ausgabe |
|
SendGrid | Ausgabe | |
Dienstbus |
Auslösen Ausgabe |
Verbinden |
SignalR |
Auslösen Eingabe Ausgabe |
|
Table Storage |
Eingabe Ausgabe |
|
Zeitschaltuhr | Auslösen | Verbinden |
Twilio | Ausgabe | Verbinden |
Dienstleistung | Beispiele | Beispiele |
---|---|---|
Blob Storage |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure Cosmos DB (ein Microsoft-Datenbankdienst) |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure-Daten-Explorer |
Eingabe Ausgabe |
Verbinden |
Azure SQL |
Auslösen Eingabe Ausgabe |
|
Ereignisraster |
Auslösen Ausgabe |
Verbinden |
Ereignis-Hubs |
Auslösen Ausgabe |
|
IoT Hub |
Auslösen Ausgabe |
|
HTTP | Auslösen | Verbinden |
Queue Storage |
Auslösen Ausgabe |
Verbinden |
RabbitMQ |
Auslösen Ausgabe |
|
SendGrid | Ausgabe | |
Dienstbus |
Auslösen Ausgabe |
Verbinden |
SignalR |
Auslösen Eingabe Ausgabe |
|
Table Storage |
Eingabe Ausgabe |
|
Zeitschaltuhr | Auslösen | Verbinden |
Twilio | Ausgabe | Verbinden |
Dienstleistung | Beispiele | Beispiele |
---|---|---|
Blob Storage |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure Cosmos DB (ein Microsoft-Datenbankdienst) |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure-Daten-Explorer |
Eingabe Ausgabe |
|
Azure SQL |
Auslösen Eingabe Ausgabe |
Verbinden |
Ereignisraster |
Auslösen Ausgabe |
Verbinden |
Ereignis-Hubs |
Auslösen Ausgabe |
|
IoT Hub |
Auslösen Ausgabe |
|
HTTP | Auslösen | Verbinden |
Queue Storage |
Auslösen Ausgabe |
Verbinden |
RabbitMQ |
Auslösen Ausgabe |
|
SendGrid | Ausgabe | |
Dienstbus |
Auslösen Ausgabe |
Verbinden |
SignalR |
Auslösen Eingabe Ausgabe |
|
Table Storage |
Eingabe Ausgabe |
|
Zeitschaltuhr | Auslösen | Verbinden |
Twilio | Ausgabe | Verbinden |
Dienstleistung | Beispiele | Beispiele |
---|---|---|
Blob Storage |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure Cosmos DB (ein Microsoft-Datenbankdienst) |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure SQL |
Auslösen Eingabe Ausgabe |
|
Ereignisraster |
Auslösen Ausgabe |
Verbinden |
Ereignis-Hubs |
Auslösen Ausgabe |
|
IoT Hub |
Auslösen Ausgabe |
|
HTTP | Auslösen | Verbinden |
Queue Storage |
Auslösen Ausgabe |
Verbinden |
RabbitMQ |
Auslösen Ausgabe |
|
SendGrid | Ausgabe | |
Dienstbus |
Auslösen Ausgabe |
Verbinden |
SignalR |
Auslösen Eingabe Ausgabe |
|
Table Storage |
Eingabe Ausgabe |
|
Zeitschaltuhr | Auslösen | Verbinden |
Twilio | Ausgabe | Verbinden |
Die Bindung von Code für Python hängt von der Python-Modellversion ab.
Dienstleistung | Beispiele | Beispiele |
---|---|---|
Blob Storage |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure Cosmos DB (ein Microsoft-Datenbankdienst) |
Auslösen Eingabe Ausgabe |
Verbinden |
Azure-Daten-Explorer |
Eingabe Ausgabe |
|
Azure SQL |
Auslösen Eingabe Ausgabe |
Verbinden |
Ereignisraster |
Auslösen Ausgabe |
Verbinden |
Ereignis-Hubs |
Auslösen Ausgabe |
|
IoT Hub |
Auslösen Ausgabe |
|
HTTP | Auslösen | Verbinden |
Queue Storage |
Auslösen Ausgabe |
Verbinden |
RabbitMQ |
Auslösen Ausgabe |
|
SendGrid | Ausgabe | |
Dienstbus |
Auslösen Ausgabe |
Verbinden |
SignalR |
Auslösen Eingabe Ausgabe |
|
Table Storage |
Eingabe Ausgabe |
|
Zeitschaltuhr | Auslösen | Verbinden |
Twilio | Ausgabe | Verbinden |
Visual Studio Code
Wenn Sie Visual Studio Code verwenden, um Ihre Funktion zu entwickeln und Ihre 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 Eingabe- und Ausgabebindungen.
Azure-Portal
Wenn Sie Ihre Funktionen im Azure-Portal entwickeln, fügen Sie auf der Registerkarte " Integrieren " für eine bestimmte Funktion Eingabe- und Ausgabebindungen hinzu. Je nach Sprache werden die neuen Bindungen entweder der function.json-Datei oder den Methodenattributen hinzugefügt. Die folgenden Artikel zeigen Beispiele zum Hinzufügen von Bindungen zu einer vorhandenen Funktion im Portal: