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.
Függvény létrehozásakor a program nyelvspecifikus triggerkódot ad hozzá a projekthez egy triggersablonokbó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ésekkel kapcsolatos további információkért tekintse meg az Azure Functions eseményindítóinak és kötéseinek alapelveit.
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. Az 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:
Az alábbi példa a függvénydefiníciót mutatja be, miután hozzáadott egy Queue Storage kimeneti kötést egy HTTP-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 static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
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; }
}
A példának a saját projektre való alkalmazásakor előfordulhat, hogy módosítania kell a HttpRequest értékét HttpRequestData-re és a IActionResult értékét HttpResponseData-ra, attól függően, hogy használja-e az ASP.NET Core integrációt vagy sem.
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 projektnek 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 |
Eseményindító Bemenet Kimenet |
Láncszem |
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
Láncszem |
| Azure Data Explorer |
Bemenet Kimenet |
Láncszem |
| Azure SQL |
Eseményindító Bemenet Kimenet |
Láncszem |
| Event Grid |
Eseményindító Kimenet |
Láncszem |
| Event Hubs |
Eseményindító Kimenet |
|
| IoT Hub |
Eseményindító Kimenet |
|
| HTTP | Eseményindító | Láncszem |
| Queue Storage |
Eseményindító Kimenet |
Láncszem |
| RabbitMQ |
Eseményindító Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Eseményindító Kimenet |
Láncszem |
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | Láncszem |
| Twilio | Kimenet | Láncszem |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Eseményindító Bemenet Kimenet |
Láncszem |
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
Láncszem |
| Azure Data Explorer |
Bemenet Kimenet |
Láncszem |
| Azure SQL |
Eseményindító Bemenet Kimenet |
|
| Event Grid |
Eseményindító Kimenet |
Láncszem |
| Event Hubs |
Eseményindító Kimenet |
|
| IoT Hub |
Eseményindító Kimenet |
|
| HTTP | Eseményindító | Láncszem |
| Queue Storage |
Eseményindító Kimenet |
Láncszem |
| RabbitMQ |
Eseményindító Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Eseményindító Kimenet |
Láncszem |
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | Láncszem |
| Twilio | Kimenet |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Eseményindító Bemenet Kimenet |
Láncszem |
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
Láncszem |
| Azure Data Explorer |
Bemenet Kimenet |
|
| Azure SQL |
Eseményindító Bemenet Kimenet |
Láncszem |
| Event Grid |
Eseményindító Kimenet |
|
| Event Hubs |
Eseményindító Kimenet |
|
| IoT Hub |
Eseményindító Kimenet |
|
| HTTP | Eseményindító | Láncszem |
| Queue Storage |
Eseményindító Kimenet |
Láncszem |
| RabbitMQ |
Eseményindító Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Eseményindító Kimenet |
Láncszem |
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | |
| Twilio | Kimenet |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Eseményindító Bemenet Kimenet |
|
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
|
| Azure SQL |
Eseményindító Bemenet Kimenet |
|
| Event Grid |
Eseményindító Kimenet |
|
| Event Hubs |
Eseményindító Kimenet |
|
| IoT Hub |
Eseményindító Kimenet |
|
| HTTP | Eseményindító | Láncszem |
| Queue Storage |
Eseményindító Kimenet |
|
| RabbitMQ |
Eseményindító Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Eseményindító Kimenet |
|
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | |
| Twilio | Kimenet |
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 |
Eseményindító Bemenet Kimenet |
Láncszem |
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
Láncszem |
| Azure Data Explorer |
Bemenet Kimenet |
|
| Azure SQL |
Eseményindító Bemenet Kimenet |
Láncszem |
| Event Grid |
Eseményindító Kimenet |
|
| Event Hubs |
Eseményindító Kimenet |
|
| IoT Hub |
Eseményindító Kimenet |
|
| HTTP | Eseményindító | Láncszem |
| Queue Storage |
Eseményindító Kimenet |
|
| RabbitMQ |
Eseményindító Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Eseményindító Kimenet |
Láncszem |
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | |
| Twilio | Kimenet |
Visual Studio Code
Ha a Visual Studio Code-ot használja a függvény fejlesztésére, és a függvény egy function.json fájlt használ, az 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 az Azure Portalon fejleszti a függvényeket, bemeneti és kimeneti kötéseket ad hozzá egy adott függvény Integrálása lapján. 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: