Remarque
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 project à 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 Azure Functions concepts de déclencheurs et de liaisons.
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 :
Dans Go, vous configurez les déclencheurs pris en charge à l’aide de l’API d’inscription Fluent dans votre main() fonction. Chaque type de déclencheur a une méthode d’inscription dédiée avec des options fonctionnelles pour la configuration. Aucun fichier de configuration de liaison distinct n’est nécessaire.
L’exemple suivant montre une fonction déclenchée par HTTP. Si vous devez écrire dans Stockage File d’attente à partir d’une fonction Go, utilisez directement Kit de développement logiciel (SDK) Azure pour Go, car les liaisons de sortie Stockage File d’attente ne sont actuellement pas prises en charge par le worker Go :
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)
}
Note
Le Worker Go prend actuellement en charge uniquement les déclencheurs. Les liaisons d’entrée et de sortie, telles que les liaisons de sortie Stockage File d’attente, ne sont pas encore disponibles. Utilisez le Kit de développement logiciel (SDK) Azure pour Go pour interagir avec d’autres services Azure directement à partir de votre code de fonction.
Le worker Go prend actuellement en charge les types de déclencheurs suivants :
| Type de déclencheur | Méthode d’inscription | Exemples |
|---|---|---|
| HTTP | app.HTTP() |
Exemples HTTP |
| Minuteur | app.Timer() |
exemples Timer |
| Azure Cosmos DB | app.CosmosDB() |
exemples Cosmos DB |
| Azure Service Bus (File d’attente) | app.ServiceBusQueue() |
exemples de file d’attente Service Bus |
| Azure Service Bus (rubrique) | app.ServiceBusTopic() |
exemples de rubriques Service Bus |
| Hubs d’événements | app.EventHub() |
Exemples de hubs d’événements |
| Grille d’événements | app.EventGrid() |
exemples Event Grid |
| Stockage Blob | app.Blob() |
exemples Blob |
Pour plus d’informations, consultez la référence du développeur Go.
L’exemple suivant montre la définition de fonction après l’ajout d’une liaison de sortie de stockage Queue à 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 MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
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; }
}
Cet exemple utilise ASP.NET Core intégration. Si vous n'utilisez pas l'intégration ASP.NET Core, vous devez remplacer HttpRequest par HttpRequestData et IActionResult par HttpResponseData.
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 de langue correspondant à votre project.
Le code de liaison pour C# dépend du modèle de processus spécifique.
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Output |
Link |
| Azure Cosmos DB |
Déclencheur Input Output |
Link |
| Azure Data Explorer (explorateur de données Azure) |
Input Output |
Link |
| Azure SQL |
Déclencheur Input Output |
Link |
| Grid d'événements |
Déclencheur Output |
Link |
| Event Hubs |
Déclencheur Output |
|
| IoT Hub |
Déclencheur Output |
|
| HTTP | Déclencheur | Link |
| Stockage de files d'attente |
Déclencheur Output |
Link |
| RabbitMQ |
Déclencheur Output |
|
| SendGrid | Output | |
| Service Bus |
Déclencheur Output |
Link |
| Azure SignalR Service |
Déclencheur Input Output |
|
| Stockage Table |
Input Output |
|
| Minuteur | Déclencheur | Link |
| Twilio | Output | Link |
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Output |
Link |
| Azure Cosmos DB |
Déclencheur Input Output |
Link |
| Azure Data Explorer (explorateur de données Azure) |
Input Output |
Link |
| Azure SQL |
Déclencheur Input Output |
|
| Grid d'événements |
Déclencheur Output |
Link |
| Event Hubs |
Déclencheur Output |
|
| IoT Hub |
Déclencheur Output |
|
| HTTP | Déclencheur | Link |
| Stockage de files d'attente |
Déclencheur Output |
Link |
| RabbitMQ |
Déclencheur Output |
|
| SendGrid | Output | |
| Service Bus |
Déclencheur Output |
Link |
| Azure SignalR Service |
Déclencheur Input Output |
|
| Stockage Table |
Input Output |
|
| Minuteur | Déclencheur | Link |
| Twilio | Output |
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Output |
Link |
| Azure Cosmos DB |
Déclencheur Input Output |
Link |
| Azure Data Explorer (explorateur de données Azure) |
Input Output |
|
| Azure SQL |
Déclencheur Input Output |
Link |
| Grid d'événements |
Déclencheur Output |
|
| Event Hubs |
Déclencheur Output |
|
| IoT Hub |
Déclencheur Output |
|
| HTTP | Déclencheur | Link |
| Stockage de files d'attente |
Déclencheur Output |
Link |
| RabbitMQ |
Déclencheur Output |
|
| SendGrid | Output | |
| Service Bus |
Déclencheur Output |
Link |
| Azure SignalR Service |
Déclencheur Input Output |
|
| Stockage Table |
Input Output |
|
| Minuteur | Déclencheur | |
| Twilio | Output |
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Output |
|
| Azure Cosmos DB |
Déclencheur Input Output |
|
| Azure SQL |
Déclencheur Input Output |
|
| Grid d'événements |
Déclencheur Output |
|
| Event Hubs |
Déclencheur Output |
|
| IoT Hub |
Déclencheur Output |
|
| HTTP | Déclencheur | Link |
| Stockage de files d'attente |
Déclencheur Output |
|
| RabbitMQ |
Déclencheur Output |
|
| SendGrid | Output | |
| Service Bus |
Déclencheur Output |
|
| Azure SignalR Service |
Déclencheur Input Output |
|
| Stockage Table |
Input Output |
|
| Minuteur | Déclencheur | |
| Twilio | Output |
Le code de liaison pour Python dépend de la version du modèle Python.
| Service | Exemples | Échantillons |
|---|---|---|
| Stockage Blob |
Déclencheur Input Output |
Link |
| Azure Cosmos DB |
Déclencheur Input Output |
Link |
| Azure Data Explorer (explorateur de données Azure) |
Input Output |
|
| Azure SQL |
Déclencheur Input Output |
Link |
| Grid d'événements |
Déclencheur Output |
|
| Event Hubs |
Déclencheur Output |
|
| IoT Hub |
Déclencheur Output |
|
| HTTP | Déclencheur | Link |
| Stockage de files d'attente |
Déclencheur Output |
|
| RabbitMQ |
Déclencheur Output |
|
| SendGrid | Output | |
| Service Bus |
Déclencheur Output |
Link |
| Azure SignalR Service |
Déclencheur Input Output |
|
| Stockage Table |
Input Output |
|
| Minuteur | Déclencheur | |
| Twilio | Output |
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.
Azure portal
Lorsque vous développez vos fonctions dans le Azure portal, vous ajoutez des liaisons d’entrée et de sortie dans l’onglet Integrate 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 :