Conexión de funciones a servicios de Azure mediante enlaces
Al crear una función, se agrega código del desencadenador específico del idioma en el proyecto desde un conjunto de plantillas de desencadenador. Si desea conectar la función a otros servicios mediante enlaces de entrada o salida, debe agregar definiciones de enlace específicas en la función. Para más información acerca de los enlaces, consulte Conceptos básicos sobre los enlaces y desencadenadores de Azure Functions.
Desarrollo local
Al desarrollar funciones localmente, es necesario que actualice el código de función para agregar enlaces. Para los lenguajes que usen function.json, Visual Studio Code proporciona herramientas para agregar enlaces a una función.
Incorporación manual de enlaces basados en ejemplos
Al agregar un enlace a una función existente, deberá agregar atributos específicos del enlace a la definición de la función en el código.
Al agregar un enlace a una función existente, deberá agregar anotaciones específicas del enlace a la definición de la función en el código.
Al agregar un enlace a una función existente, deberá actualizar el código de la función y agregar una definición al archivo de configuración function.json.
Al agregar un enlace a una función existente, necesitará actualizar la definición de la función. Según el modelo:
En el ejemplo siguiente se muestra la definición de función después de agregar un Enlace de salida de Queue Storage a una función desencadenada por HTTP:
Dado que una función de desencadenador por HTTP también devuelve una respuesta HTTP, la función devolverá un objeto MultiResponse
, que representa la salida de la cola y HTTP.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
Este ejemplo muestra la definición del objeto MultiResponse
, que incluye el enlace de salida:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Al aplicar ese ejemplo a su propio proyecto, es posible que tenga que cambiar HttpRequest
por HttpRequestData
y IActionResult
por HttpResponseData
, dependiendo de si usa integración ASP.NET Core o no.
Los mensajes se envían a la cola cuando se completa la función. La forma de definir el enlace de salida depende de su modelo de proceso. Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
@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) {
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
La forma de definir el enlace de salida depende de la versión del modelo de Node.js. Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
@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 forma de definir el enlace de salida depende de la versión del modelo de Python. Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
La forma de definir el enlace de salida depende de la versión del modelo de Node.js. Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
Use la tabla siguiente para buscar ejemplos de tipos de enlace específicos que puede usar para que le guíen al actualizar una función existente. En primer lugar, elija la pestaña de lenguaje que corresponde al proyecto.
El código de enlace para C# depende del modelo de proceso específico.
Servicio | Ejemplos | Ejemplos |
---|---|---|
Blob Storage | Desencadenador Entrada Salida |
Vínculo |
Azure Cosmos DB | Desencadenador Entrada Salida |
Vínculo |
Explorador de datos de Azure | Entrada Salida |
Vínculo |
Azure SQL | Desencadenador Entrada Salida |
Vínculo |
Event Grid | Desencadenador Salida |
Vínculo |
Event Hubs | Desencadenador Salida |
|
IoT Hub | Desencadenador Salida |
|
HTTP | Desencadenador | Vínculo |
Queue Storage | Desencadenador Salida |
Vínculo |
RabbitMQ | Desencadenador Salida |
|
SendGrid | Salida | |
Azure Service Bus | Desencadenador Salida |
Vínculo |
SignalR | Desencadenador Entrada Salida |
|
Almacenamiento de tablas | Entrada Salida |
|
Temporizador | Desencadenador | Vínculo |
Twilio | Salida | Vínculo |
Servicio | Ejemplos | Ejemplos |
---|---|---|
Blob Storage | Desencadenador Entrada Salida |
Vínculo |
Azure Cosmos DB | Desencadenador Entrada Salida |
Vínculo |
Explorador de datos de Azure | Entrada Salida |
Vínculo |
Azure SQL | Desencadenador Entrada Salida |
|
Event Grid | Desencadenador Salida |
Vínculo |
Event Hubs | Desencadenador Salida |
|
IoT Hub | Desencadenador Salida |
|
HTTP | Desencadenador | Vínculo |
Queue Storage | Desencadenador Salida |
Vínculo |
RabbitMQ | Desencadenador Salida |
|
SendGrid | Salida | |
Azure Service Bus | Desencadenador Salida |
Vínculo |
SignalR | Desencadenador Entrada Salida |
|
Almacenamiento de tablas | Entrada Salida |
|
Temporizador | Desencadenador | Vínculo |
Twilio | Salida | Vínculo |
Servicio | Ejemplos | Ejemplos |
---|---|---|
Blob Storage | Desencadenador Entrada Salida |
Vínculo |
Azure Cosmos DB | Desencadenador Entrada Salida |
Vínculo |
Explorador de datos de Azure | Entrada Salida |
|
Azure SQL | Desencadenador Entrada Salida |
Vínculo |
Event Grid | Desencadenador Salida |
Vínculo |
Event Hubs | Desencadenador Salida |
|
IoT Hub | Desencadenador Salida |
|
HTTP | Desencadenador | Vínculo |
Queue Storage | Desencadenador Salida |
Vínculo |
RabbitMQ | Desencadenador Salida |
|
SendGrid | Salida | |
Azure Service Bus | Desencadenador Salida |
Vínculo |
SignalR | Desencadenador Entrada Salida |
|
Almacenamiento de tablas | Entrada Salida |
|
Temporizador | Desencadenador | Vínculo |
Twilio | Salida | Vínculo |
Servicio | Ejemplos | Ejemplos |
---|---|---|
Blob Storage | Desencadenador Entrada Salida |
Vínculo |
Azure Cosmos DB | Desencadenador Entrada Salida |
Vínculo |
Azure SQL | Desencadenador Entrada Salida |
|
Event Grid | Desencadenador Salida |
Vínculo |
Event Hubs | Desencadenador Salida |
|
IoT Hub | Desencadenador Salida |
|
HTTP | Desencadenador | Vínculo |
Queue Storage | Desencadenador Salida |
Vínculo |
RabbitMQ | Desencadenador Salida |
|
SendGrid | Salida | |
Azure Service Bus | Desencadenador Salida |
Vínculo |
SignalR | Desencadenador Entrada Salida |
|
Almacenamiento de tablas | Entrada Salida |
|
Temporizador | Desencadenador | Vínculo |
Twilio | Salida | Vínculo |
El código de enlace para Python dependerá de la versión del modelo de Python.
Servicio | Ejemplos | Ejemplos |
---|---|---|
Blob Storage | Desencadenador Entrada Salida |
Vínculo |
Azure Cosmos DB | Desencadenador Entrada Salida |
Vínculo |
Explorador de datos de Azure | Entrada Salida |
|
Azure SQL | Desencadenador Entrada Salida |
Vínculo |
Event Grid | Desencadenador Salida |
Vínculo |
Event Hubs | Desencadenador Salida |
|
IoT Hub | Desencadenador Salida |
|
HTTP | Desencadenador | Vínculo |
Queue Storage | Desencadenador Salida |
Vínculo |
RabbitMQ | Desencadenador Salida |
|
SendGrid | Salida | |
Azure Service Bus | Desencadenador Salida |
Vínculo |
SignalR | Desencadenador Entrada Salida |
|
Almacenamiento de tablas | Entrada Salida |
|
Temporizador | Desencadenador | Vínculo |
Twilio | Salida | Vínculo |
Visual Studio Code
Al usar Visual Studio Code para desarrollar la función y utilizar esta un archivo function.json, la extensión de Azure Functions puede agregar automáticamente un enlace a un archivo function.json existente. Para obtener más información, consulte Incorporación de enlaces de entrada y de salida.
Azure portal
Al desarrollar las funciones en Azure Portal, se agregan enlaces de entrada y salida en la pestaña Integrar para una función determinada. Los nuevos enlaces se agregan al archivo function.json o a los atributos de método, dependiendo del lenguaje. En los siguientes artículos se muestran ejemplos de cómo agregar enlaces a una función existente en el portal: