Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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 |
|---|---|---|
| Stockage Blob |
Déclencheur Input Sortie |
Lien |
| Base de données Azure Cosmos DB |
Déclencheur Input Sortie |
Lien |
| Explorateur de données Azure |
Input Sortie |
Lien |
| Azure SQL |
Déclencheur Input 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 |
| Azure SignalR Service |
Déclencheur Input Sortie |
|
| Stockage Table |
Input Sortie |
|
| Minuteur | Déclencheur | Lien |
| Twilio | Sortie | Lien |
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Sortie |
Lien |
| Base de données Azure Cosmos DB |
Déclencheur Input Sortie |
Lien |
| Explorateur de données Azure |
Input Sortie |
Lien |
| Azure SQL |
Déclencheur Input 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 |
| Azure SignalR Service |
Déclencheur Input Sortie |
|
| Stockage Table |
Input Sortie |
|
| Minuteur | Déclencheur | Lien |
| Twilio | Sortie |
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Sortie |
Lien |
| Base de données Azure Cosmos DB |
Déclencheur Input Sortie |
Lien |
| Explorateur de données Azure |
Input Sortie |
|
| Azure SQL |
Déclencheur Input Sortie |
Lien |
| Grid d'événements |
Déclencheur Sortie |
|
| 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 |
| Azure SignalR Service |
Déclencheur Input Sortie |
|
| Stockage Table |
Input Sortie |
|
| Minuteur | Déclencheur | |
| Twilio | Sortie |
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Sortie |
|
| Base de données Azure Cosmos DB |
Déclencheur Input Sortie |
|
| Azure SQL |
Déclencheur Input Sortie |
|
| Grid d'événements |
Déclencheur Sortie |
|
| Event Hubs |
Déclencheur Sortie |
|
| IoT Hub |
Déclencheur Sortie |
|
| HTTP | Déclencheur | Lien |
| Stockage de files d'attente |
Déclencheur Sortie |
|
| RabbitMQ |
Déclencheur Sortie |
|
| SendGrid | Sortie | |
| Bus de Service |
Déclencheur Sortie |
|
| Azure SignalR Service |
Déclencheur Input Sortie |
|
| Stockage Table |
Input Sortie |
|
| Minuteur | Déclencheur | |
| Twilio | Sortie |
Le code de liaison pour Python dépend de la version du modèle Python.
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Sortie |
Lien |
| Base de données Azure Cosmos DB |
Déclencheur Input Sortie |
Lien |
| Explorateur de données Azure |
Input Sortie |
|
| Azure SQL |
Déclencheur Input Sortie |
Lien |
| Grid d'événements |
Déclencheur Sortie |
|
| Event Hubs |
Déclencheur Sortie |
|
| IoT Hub |
Déclencheur Sortie |
|
| HTTP | Déclencheur | Lien |
| Stockage de files d'attente |
Déclencheur Sortie |
|
| RabbitMQ |
Déclencheur Sortie |
|
| SendGrid | Sortie | |
| Bus de Service |
Déclencheur Sortie |
Lien |
| Azure SignalR Service |
Déclencheur Input Sortie |
|
| Stockage Table |
Input Sortie |
|
| Minuteur | Déclencheur | |
| Twilio | Sortie |
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 :