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:

Deberá agregar anotaciones específicas del enlace a la definición de la función en el código.

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.

Enlace de ejemplo para el modelo v4 de Node.js aún no disponible.

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.

Enlace de ejemplo para el modelo v4 de Node.js aún no disponible.

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

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:

Pasos siguientes