Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Amikor függvényt hozol létre, a rendszer nyelvfüggő triggerkódot ad hozzá a projektbe egy triggersablon-készletből. Ha a függvényt bemeneti vagy kimeneti kötések használatával szeretné más szolgáltatásokhoz csatlakoztatni, adott kötésdefiníciókat kell hozzáadnia a függvényhez. A kötésekről további információért olvassa el az Azure Functions triggerek és kötések fogalmait.
Helyi fejlesztés
A függvények helyi fejlesztésekor frissítenie kell a függvénykódot kötések hozzáadásához. A function.jsonhasználó nyelvek esetében a Visual Studio Code eszközkészletet biztosít a függvények kötéseinek hozzáadásához.
Kötések manuális hozzáadása példák alapján
Ha kötést ad hozzá egy meglévő függvényhez, kötésspecifikus attribútumokat kell hozzáadnia a függvénydefinícióhoz a kódban.
Ha kötést ad hozzá egy meglévő függvényhez, kötésspecifikus széljegyzeteket kell hozzáadnia a függvénydefinícióhoz a kódban.
Ha kötést ad hozzá egy meglévő függvényhez, frissítenie kell a függvénykódot, és hozzá kell adnia egy definíciót a function.json konfigurációs fájlhoz.
Ha kötést ad hozzá egy meglévő függvényhez, a modelltől függően frissítenie kell a függvénydefiníciót:
A Go-ban main() a függvény folyékony regisztrációs API-jának használatával konfigurálhatja a támogatott eseményindítókat. Minden eseményindító-típushoz tartozik egy dedikált regisztrációs módszer, amely funkcionális beállításokat kínál a konfigurációhoz. Nincs szükség külön kötéskonfigurációs fájlra.
Az alábbi példa egy HTTP által aktivált függvényt mutat be. Ha Go-függvényből kell írnia a Queue Storage-ba, használja közvetlenül az Azure SDK for Go-t, mert a Queue Storage kimeneti kötéseket a Go worker jelenleg nem támogatja:
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)
}
Megjegyzés:
A Go-feldolgozó jelenleg csak az eseményindítókat támogatja. A bemeneti és kimeneti kötések, például a Queue Storage kimeneti kötései még nem érhetők el. A Azure SDK for Go használatával közvetlenül a függvény kódjából léphet kapcsolatba más Azure-szolgáltatásokkal.
A Go-feldolgozó jelenleg a következő triggertípusokat támogatja:
| Trigger típusa | Regisztrációs módszer | Példák |
|---|---|---|
| HTTP | app.HTTP() |
HTTP-minták |
| időzítő | app.Timer() |
Timer-minták |
| Azure Cosmos DB | app.CosmosDB() |
Cosmos DB minták |
| Azure Service Bus (üzenetsor) | app.ServiceBusQueue() |
Service Bus üzenetsorminták |
| Azure Service Bus (téma) | app.ServiceBusTopic() |
Service Bus témakörminták |
| Eseményközpontok | app.EventHub() |
Event Hubs-minták |
| Event Grid | app.EventGrid() |
Minták az Event Gridhez |
| Blob Storage | app.Blob() |
Blob-minták |
További információkért tekintse meg a Go fejlesztői referenciát.
Az alábbi példa bemutatja a függvénydefiníciót, miután hozzáadtunk egy sorozat-tároló kimeneti kötést egy HTTP által aktivált függvényhez.
Mivel a HTTP által aktivált függvény HTTP-választ is ad vissza, a függvény egy MultiResponse objektumot ad vissza, amely a HTTP és az üzenetsor kimenetét egyaránt jelöli.
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
Ez a példa a kimeneti kötést MultiResponse tartalmazó objektum definíciója:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Ez a példa ASP.NET Core integrációt használ. Ha nem ASP.NET Core integrációt használ, HttpRequestHttpRequestData és IActionResultHttpResponseData-ra kell módosítania.
A függvény befejeződésekor a rendszer üzeneteket küld az üzenetsorba. A kimeneti kötés definiálásának módja a folyamatmodelltől függ. További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
@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) {
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
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' };
}
},
});
A kimeneti kötés definiálásának módja a Node.js modell verziójától függ. További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
@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.')
A kimeneti kötés definiálásának módja a Python-modell verziójától függ. További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
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,
});
A kimeneti kötés definiálásának módja a Node.js modell verziójától függ. További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
Az alábbi táblázat segítségével példákat talál a meglévő függvények frissítéséhez használható konkrét kötéstípusokra. Először válassza ki a project megfelelő nyelvi lapot.
A C# kötéskódja az adott folyamatmodelltől függ.
| Szolgáltatás | Példák | Minták |
|---|---|---|
| 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 |
Trigger Output |
Link |
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Output |
Link |
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
Link |
| Azure SignalR Service |
Trigger Input Output |
|
| Table Storage |
Input Output |
|
| Időzítő | Trigger | Link |
| Twilio | Output | Link |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| 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 |
Trigger Output |
Link |
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Output |
Link |
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
Link |
| Azure SignalR Service |
Trigger Input Output |
|
| Table Storage |
Input Output |
|
| Időzítő | Trigger | Link |
| Twilio | Output |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| 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 |
Trigger Output |
|
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Output |
Link |
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
Link |
| Azure SignalR Service |
Trigger Input Output |
|
| Table Storage |
Input Output |
|
| Időzítő | Trigger | |
| Twilio | Output |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Trigger Input Output |
|
| Azure Cosmos DB |
Trigger Input Output |
|
| Azure SQL |
Trigger Input Output |
|
| Event Grid |
Trigger Output |
|
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Output |
|
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
|
| Azure SignalR Service |
Trigger Input Output |
|
| Table Storage |
Input Output |
|
| Időzítő | Trigger | |
| Twilio | Output |
A Python kötéskódja a Python-modell verziójától függ.
| Szolgáltatás | Példák | Minták |
|---|---|---|
| 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 |
Trigger Output |
|
| Event Hubs |
Trigger Output |
|
| IoT Hub |
Trigger Output |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Output |
|
| RabbitMQ |
Trigger Output |
|
| SendGrid | Output | |
| Service Bus |
Trigger Output |
Link |
| Azure SignalR Service |
Trigger Input Output |
|
| Table Storage |
Input Output |
|
| Időzítő | Trigger | |
| Twilio | Output |
Visual Studio Code
Ha Visual Studio Code-ot használ a függvény fejlesztéséhez, és a függvény egy function.json fájlt használ, a Azure Functions bővítmény automatikusan hozzáadhat kötést egy meglévő function.json fájlhoz. További információ: Bemeneti és kimeneti kötések hozzáadása.
Azure Portal
Amikor a függvényeket a Azure portal fájlban fejleszti, bemeneti és kimeneti kötéseket ad hozzá a Integrate lapon egy adott függvényhez. Az új kötések a nyelvtől függően hozzáadódnak a function.json fájlhoz vagy a metódusattribútumokhoz. Az alábbi cikkek példákat mutatnak be arra, hogyan adhat kötéseket egy meglévő függvényhez a portálon: