Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous créez une fonction, le code de déclencheur spécifique au langage est ajouté dans votre projet à partir d’un ensemble de modèles de déclencheur. Si vous souhaitez connecter votre fonction à d’autres services à l’aide de liaisons d’entrée ou de sortie, vous devez ajouter des définitions de liaison spécifiques dans votre fonction. Pour en savoir plus sur les liaisons, consultez Concepts des déclencheurs et liaisons Azure Functions.
Développement local
Lorsque vous développez des fonctions localement, vous devez mettre à jour le code de fonction pour ajouter des liaisons. Pour les langages qui utilisent function.json, Visual Studio Code fournit des outils permettant d’ajouter des liaisons à une fonction.
Ajouter manuellement des liaisons basées sur des exemples
Lors de l’ajout d’une liaison à une fonction existante, vous devez ajouter des attributs spécifiques à la liaison à la définition de fonction dans le code.
Lors de l’ajout d’une liaison à une fonction existante, vous devez ajouter des annotations spécifiques à la liaison à la définition de fonction dans le code.
Lorsque vous ajoutez une liaison à une fonction existante, vous devez mettre à jour le code de la fonction et ajouter une définition au fichier de configuration function.json.
Lorsque vous ajoutez une liaison à une fonction existante, vous devez mettre à jour la définition de la fonction, en fonction de votre modèle :
L’exemple suivant montre la définition de la fonction après l’ajout d’une liaison de sortie de Stockage File d’attente à une fonction déclenchée par HTTP :
Parce qu’une fonction déclenchée par HTTP renvoie également une réponse HTTP, la fonction renvoie un objet MultiResponse
, qui représente à la fois la sortie HTTP et la sortie de file d’attente.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
Voici un exemple de définition de l’objet MultiResponse
qui comprend la liaison de sortie :
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Lorsque vous appliquez cet exemple à votre propre projet, vous risquez de devoir remplacer HttpRequest
par HttpRequestData
et IActionResult
par HttpResponseData
, selon que vous utilisez l'Intégration ASP.NET Core ou non.
Ces messages sont envoyés à la file d’attente lorsque la fonction se termine. La manière dont vous définissez la liaison de sortie dépend de votre modèle de processus. Pour plus d’informations, notamment concernant des liens vers des exemples de code de liaison auxquels vous pouvez vous référer, consultez Ajouter des liaisons à une fonction.
@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) {
Pour plus d’informations, notamment concernant des liens vers des exemples de code de liaison auxquels vous pouvez vous référer, consultez Ajouter des liaisons à une fonction.
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' };
}
},
});
La manière dont vous définissez la liaison de sortie dépend de la version de votre modèle Node.js. Pour plus d’informations, notamment concernant des liens vers des exemples de code de liaison auxquels vous pouvez vous référer, consultez Ajouter des liaisons à une fonction.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Pour plus d’informations, notamment concernant des liens vers des exemples de code de liaison auxquels vous pouvez vous référer, consultez Ajouter des liaisons à une fonction.
@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.')
La manière dont vous définissez la liaison de sortie dépend de la version de votre modèle Python. Pour plus d’informations, notamment concernant des liens vers des exemples de code de liaison auxquels vous pouvez vous référer, consultez Ajouter des liaisons à une fonction.
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,
});
La manière dont vous définissez la liaison de sortie dépend de la version de votre modèle Node.js. Pour plus d’informations, notamment concernant des liens vers des exemples de code de liaison auxquels vous pouvez vous référer, consultez Ajouter des liaisons à une fonction.
Utilisez le tableau suivant pour trouver des exemples de types de liaison spécifiques que vous pouvez utiliser pour vous guider dans la mise à jour d’une fonction existante. Tout d’abord, choisissez l’onglet du langage qui correspond à votre projet.
Le code de liaison pour C# dépend du modèle de processus spécifique.
Service | Exemples | Échantillons |
---|---|---|
Le stockage Blob |
Déclencheur Entrée Sortie |
Lien |
Base de données Azure Cosmos DB |
Déclencheur Entrée Sortie |
Lien |
Explorateur de données Azure |
Entrée Sortie |
Lien |
Azure SQL |
Déclencheur Entrée Sortie |
Lien |
Grid d'événements |
Déclencheur Sortie |
Lien |
Event Hubs |
Déclencheur Sortie |
|
IoT Hub |
Déclencheur Sortie |
|
HTTP | Déclencheur | Lien |
Stockage de files d'attente |
Déclencheur Sortie |
Lien |
RabbitMQ |
Déclencheur Sortie |
|
SendGrid | Sortie | |
Bus de Service |
Déclencheur Sortie |
Lien |
SignalR |
Déclencheur Entrée Sortie |
|
Stockage de tables |
Entrée Sortie |
|
Minuteur | Déclencheur | Lien |
Twilio | Sortie | Lien |
Service | Exemples | Échantillons |
---|---|---|
Le stockage Blob |
Déclencheur Entrée Sortie |
Lien |
Base de données Azure Cosmos DB |
Déclencheur Entrée Sortie |
Lien |
Explorateur de données Azure |
Entrée Sortie |
Lien |
Azure SQL |
Déclencheur Entrée Sortie |
|
Grid d'événements |
Déclencheur Sortie |
Lien |
Event Hubs |
Déclencheur Sortie |
|
IoT Hub |
Déclencheur Sortie |
|
HTTP | Déclencheur | Lien |
Stockage de files d'attente |
Déclencheur Sortie |
Lien |
RabbitMQ |
Déclencheur Sortie |
|
SendGrid | Sortie | |
Bus de Service |
Déclencheur Sortie |
Lien |
SignalR |
Déclencheur Entrée Sortie |
|
Stockage de tables |
Entrée Sortie |
|
Minuteur | Déclencheur | Lien |
Twilio | Sortie | Lien |
Service | Exemples | Échantillons |
---|---|---|
Le stockage Blob |
Déclencheur Entrée Sortie |
Lien |
Base de données Azure Cosmos DB |
Déclencheur Entrée Sortie |
Lien |
Explorateur de données Azure |
Entrée Sortie |
|
Azure SQL |
Déclencheur Entrée Sortie |
Lien |
Grid d'événements |
Déclencheur Sortie |
Lien |
Event Hubs |
Déclencheur Sortie |
|
IoT Hub |
Déclencheur Sortie |
|
HTTP | Déclencheur | Lien |
Stockage de files d'attente |
Déclencheur Sortie |
Lien |
RabbitMQ |
Déclencheur Sortie |
|
SendGrid | Sortie | |
Bus de Service |
Déclencheur Sortie |
Lien |
SignalR |
Déclencheur Entrée Sortie |
|
Stockage de tables |
Entrée Sortie |
|
Minuteur | Déclencheur | Lien |
Twilio | Sortie | Lien |
Service | Exemples | Échantillons |
---|---|---|
Le stockage Blob |
Déclencheur Entrée Sortie |
Lien |
Base de données Azure Cosmos DB |
Déclencheur Entrée Sortie |
Lien |
Azure SQL |
Déclencheur Entrée Sortie |
|
Grid d'événements |
Déclencheur Sortie |
Lien |
Event Hubs |
Déclencheur Sortie |
|
IoT Hub |
Déclencheur Sortie |
|
HTTP | Déclencheur | Lien |
Stockage de files d'attente |
Déclencheur Sortie |
Lien |
RabbitMQ |
Déclencheur Sortie |
|
SendGrid | Sortie | |
Bus de Service |
Déclencheur Sortie |
Lien |
SignalR |
Déclencheur Entrée Sortie |
|
Stockage de tables |
Entrée Sortie |
|
Minuteur | Déclencheur | Lien |
Twilio | Sortie | Lien |
Le code de liaison pour Python dépend de la version du modèle Python.
Service | Exemples | Échantillons |
---|---|---|
Le stockage Blob |
Déclencheur Entrée Sortie |
Lien |
Base de données Azure Cosmos DB |
Déclencheur Entrée Sortie |
Lien |
Explorateur de données Azure |
Entrée Sortie |
|
Azure SQL |
Déclencheur Entrée Sortie |
Lien |
Grid d'événements |
Déclencheur Sortie |
Lien |
Event Hubs |
Déclencheur Sortie |
|
IoT Hub |
Déclencheur Sortie |
|
HTTP | Déclencheur | Lien |
Stockage de files d'attente |
Déclencheur Sortie |
Lien |
RabbitMQ |
Déclencheur Sortie |
|
SendGrid | Sortie | |
Bus de Service |
Déclencheur Sortie |
Lien |
SignalR |
Déclencheur Entrée Sortie |
|
Stockage de tables |
Entrée Sortie |
|
Minuteur | Déclencheur | Lien |
Twilio | Sortie | Lien |
Visual Studio Code
Lorsque vous utilisez Visual Studio Code pour développer votre fonction et que votre fonction utilise un fichier function.json, l’extension Azure Functions peut ajouter automatiquement une liaison à un fichier de function.json existant. Pour plus d’informations, consultez Ajouter des liaisons d’entrée et de sortie.
Portail Azure
Lorsque vous développez vos fonctions dans le portail Azure, vous ajoutez des liaisons d’entrée et de sortie sous l’onglet Intégrer pour une fonction donnée. Les nouvelles liaisons sont ajoutées au fichier function.json ou aux attributs de méthode, en fonction de votre langue. Les articles suivants montrent des exemples d’ajout de liaisons à une fonction existante dans le portail :