Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas tworzenia funkcji kod wyzwalacza specyficzny dla języka jest dodawany w projekcie z zestawu szablonów wyzwalaczy. Jeśli chcesz połączyć funkcję z innymi usługami przy użyciu powiązań wejściowych lub wyjściowych, musisz dodać określone definicje powiązań w funkcji. Aby dowiedzieć się więcej na temat powiązań, zobacz Pojęcia dotyczące wyzwalaczy i powiązań usługi Azure Functions.
Rozwój lokalny
Podczas lokalnego opracowywania funkcji należy zaktualizować kod funkcji, aby dodać powiązania. W przypadku języków korzystających z function.jsonprogram Visual Studio Code udostępnia narzędzia umożliwiające dodawanie powiązań do funkcji.
Ręczne dodawanie powiązań na podstawie przykładów
Podczas dodawania powiązania do istniejącej funkcji należy dodać atrybuty specyficzne dla powiązania do definicji funkcji w kodzie.
Podczas dodawania powiązania do istniejącej funkcji należy dodać adnotacje specyficzne dla powiązania do definicji funkcji w kodzie.
Podczas dodawania powiązania do istniejącej funkcji należy zaktualizować kod funkcji i dodać definicję do pliku konfiguracji function.json.
Podczas dodawania powiązania do istniejącej funkcji należy zaktualizować definicję funkcji w zależności od modelu:
Poniższy przykład przedstawia definicję funkcji po dodaniu powiązania wyjściowego Queue Storage do funkcji wyzwalanej HTTP:
Ponieważ funkcja wyzwalana przez protokół HTTP zwraca również odpowiedź HTTP, funkcja zwraca MultiResponse obiekt, który reprezentuje zarówno dane wyjściowe HTTP, jak i kolejki.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
Ten przykład przedstawia definicję obiektu MultiResponse, który zawiera powiązanie wyjściowe.
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
W przypadku zastosowania tego przykładu do własnego projektu może być konieczne zmianę HttpRequestHttpRequestData na i IActionResult na HttpResponseData, w zależności od tego, czy używasz integracji z platformą ASP.NET Core, czy nie.
Po zakończeniu działania funkcji komunikaty są wysyłane do kolejki. Sposób definiowania powiązania wyjściowego zależy od modelu procesu. Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
@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) {
Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
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' };
}
},
});
Sposób definiowania powiązania wyjściowego zależy od wersji modelu Node.js. Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
@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.')
Sposób definiowania powiązania wyjściowego zależy od wersji modelu języka Python. Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
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,
});
Sposób definiowania powiązania wyjściowego zależy od wersji modelu Node.js. Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Skorzystaj z poniższej tabeli, aby znaleźć przykłady określonych typów powiązań, których można użyć, aby przeprowadzić aktualizowanie istniejącej funkcji. Najpierw wybierz kartę języka odpowiadającą projektowi.
Kod powiązania dla języka C# zależy od określonego modelu procesu.
| Usługa | Przykłady | Przykłady |
|---|---|---|
| Blob Storage |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Azure Cosmos DB |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Azure Data Explorer |
Dane wejściowe Wynik |
Łącze |
| Azure SQL |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Event Grid |
Wyzwalacz Wynik |
Łącze |
| Centra zdarzeń |
Wyzwalacz Wynik |
|
| Centrum IoT |
Wyzwalacz Wynik |
|
| HTTP | Wyzwalacz | Łącze |
| Queue Storage |
Wyzwalacz Wynik |
Łącze |
| RabbitMQ |
Wyzwalacz Wynik |
|
| SendGrid | Wynik | |
| Magistrala usług |
Wyzwalacz Wynik |
Łącze |
| Azure SignalR Service |
Wyzwalacz Dane wejściowe Wynik |
|
| Magazyn tabel |
Dane wejściowe Wynik |
|
| Czasomierz | Wyzwalacz | Łącze |
| Twilio | Wynik | Łącze |
| Usługa | Przykłady | Przykłady |
|---|---|---|
| Blob Storage |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Azure Cosmos DB |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Azure Data Explorer |
Dane wejściowe Wynik |
Łącze |
| Azure SQL |
Wyzwalacz Dane wejściowe Wynik |
|
| Event Grid |
Wyzwalacz Wynik |
Łącze |
| Centra zdarzeń |
Wyzwalacz Wynik |
|
| Centrum IoT |
Wyzwalacz Wynik |
|
| HTTP | Wyzwalacz | Łącze |
| Queue Storage |
Wyzwalacz Wynik |
Łącze |
| RabbitMQ |
Wyzwalacz Wynik |
|
| SendGrid | Wynik | |
| Magistrala usług |
Wyzwalacz Wynik |
Łącze |
| Azure SignalR Service |
Wyzwalacz Dane wejściowe Wynik |
|
| Magazyn tabel |
Dane wejściowe Wynik |
|
| Czasomierz | Wyzwalacz | Łącze |
| Twilio | Wynik |
| Usługa | Przykłady | Przykłady |
|---|---|---|
| Blob Storage |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Azure Cosmos DB |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Azure Data Explorer |
Dane wejściowe Wynik |
|
| Azure SQL |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Event Grid |
Wyzwalacz Wynik |
|
| Centra zdarzeń |
Wyzwalacz Wynik |
|
| Centrum IoT |
Wyzwalacz Wynik |
|
| HTTP | Wyzwalacz | Łącze |
| Queue Storage |
Wyzwalacz Wynik |
Łącze |
| RabbitMQ |
Wyzwalacz Wynik |
|
| SendGrid | Wynik | |
| Magistrala usług |
Wyzwalacz Wynik |
Łącze |
| Azure SignalR Service |
Wyzwalacz Dane wejściowe Wynik |
|
| Magazyn tabel |
Dane wejściowe Wynik |
|
| Czasomierz | Wyzwalacz | |
| Twilio | Wynik |
| Usługa | Przykłady | Przykłady |
|---|---|---|
| Blob Storage |
Wyzwalacz Dane wejściowe Wynik |
|
| Azure Cosmos DB |
Wyzwalacz Dane wejściowe Wynik |
|
| Azure SQL |
Wyzwalacz Dane wejściowe Wynik |
|
| Event Grid |
Wyzwalacz Wynik |
|
| Centra zdarzeń |
Wyzwalacz Wynik |
|
| Centrum IoT |
Wyzwalacz Wynik |
|
| HTTP | Wyzwalacz | Łącze |
| Queue Storage |
Wyzwalacz Wynik |
|
| RabbitMQ |
Wyzwalacz Wynik |
|
| SendGrid | Wynik | |
| Magistrala usług |
Wyzwalacz Wynik |
|
| Azure SignalR Service |
Wyzwalacz Dane wejściowe Wynik |
|
| Magazyn tabel |
Dane wejściowe Wynik |
|
| Czasomierz | Wyzwalacz | |
| Twilio | Wynik |
Kod powiązania dla języka Python zależy od wersji modelu języka Python.
| Usługa | Przykłady | Przykłady |
|---|---|---|
| Blob Storage |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Azure Cosmos DB |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Azure Data Explorer |
Dane wejściowe Wynik |
|
| Azure SQL |
Wyzwalacz Dane wejściowe Wynik |
Łącze |
| Event Grid |
Wyzwalacz Wynik |
|
| Centra zdarzeń |
Wyzwalacz Wynik |
|
| Centrum IoT |
Wyzwalacz Wynik |
|
| HTTP | Wyzwalacz | Łącze |
| Queue Storage |
Wyzwalacz Wynik |
|
| RabbitMQ |
Wyzwalacz Wynik |
|
| SendGrid | Wynik | |
| Magistrala usług |
Wyzwalacz Wynik |
Łącze |
| Azure SignalR Service |
Wyzwalacz Dane wejściowe Wynik |
|
| Magazyn tabel |
Dane wejściowe Wynik |
|
| Czasomierz | Wyzwalacz | |
| Twilio | Wynik |
Visual Studio Code
Gdy używasz programu Visual Studio Code do opracowywania funkcji, a funkcja używa pliku function.json, rozszerzenie usługi Azure Functions może automatycznie dodać powiązanie do istniejącego pliku function.json. Aby dowiedzieć się więcej, zobacz Dodawanie powiązań wejściowych i wyjściowych.
Azure Portal
Podczas opracowywania funkcji w witrynie Azure Portal można dodawać powiązania wejściowe i wyjściowe na karcie Integracja dla danej funkcji. Nowe powiązania są dodawane do pliku function.json lub atrybutów metody w zależności od języka. W poniższych artykułach przedstawiono przykłady dodawania powiązań do istniejącej funkcji w portalu: