Activación de un enlace de salida
SE APLICA A: Desarrollador | Premium
La directiva invoke-dapr-binding
indica a la puerta de enlace de API Management que desencadene un enlace de salida de Dapr. Para ello, la directiva realiza una solicitud HTTP POST a http://localhost:3500/v1.0/bindings/{{bind-name}},
reemplazando los parámetros de la plantilla y agregando el contenido especificado en la instrucción de directiva.
La directiva presupone que el entorno de ejecución de Dapr se está ejecutando en un contenedor sidecar situado en el mismo pod que la puerta de enlace. El entorno de ejecución de Dapr se encarga de invocar el recurso externo representado por el enlace. Obtenga más información sobre la integración de Dapr con API Management.
Nota:
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<invoke-dapr-binding name="bind-name" operation="op-name" ignore-error="false | true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
<metadata>
<item key="item-name"><!-- item-value --></item>
</metadata>
<data>
<!-- message content -->
</data>
</invoke-dapr-binding>
Atributos
Atributo | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
name | Nombre del enlace de destino. Debe coincidir con el nombre de los enlaces definidos en Dapr. Se permiten expresiones de directiva. | Sí | N/D |
operation | Nombre de la operación de destino (específica del enlace). Se asigna a la propiedad operation de Dapr. No se permiten expresiones de directiva. | No | None |
ignore-error | Si se establece en true , indica a la directiva que no desencadene la sección "on-error" tras recibir un error del entorno de ejecución de Dapr. No se permiten expresiones de directiva. |
No | false |
response-variable-name | Nombre de la entrada de la colección Variables que se va a usar para almacenar la respuesta del entorno de ejecución de Dapr. No se permiten expresiones de directiva. | No | None |
timeout | Tiempo (en segundos) que se debe esperar a que responda el entorno de ejecución de Dapr. Puede oscilar entre 1 y 240 segundos. Se permiten expresiones de directiva. | No | 5 |
template | Motor de creación de plantillas que se usa para transformar el contenido del mensaje. "Liquid" es el único valor admitido. | No | None |
content-type | Tipo de contenido del mensaje. "application/json" es el único valor admitido. | No | None |
Elementos
Elemento | Descripción | Requerido |
---|---|---|
metadata | Metadatos específicos del enlace en forma de pares clave-valor. Se asigna a la propiedad metadata de Dapr. | No |
datos | Contenido del mensaje. Se asigna a la propiedad data de Dapr. Se permiten expresiones de directiva. | No |
Uso
- Secciones de directiva: entrante, saliente, en error
- Ámbitos de la directiva: global, producto, API y operación
- Puertas de enlace: autohospedadas
Notas de uso
La compatibilidad con Dapr debe estar habilitada en la puerta de enlace autohospedada.
Ejemplo
En el ejemplo siguiente, se muestra cómo se desencadena un enlace de salida llamado "external-systems" con el nombre de operación "create", unos metadatos que constan de dos elementos clave-valor llamados "source" y "client-ip", y el cuerpo procedente de la solicitud original. La respuesta que se recibe del entorno de ejecución de Dapr se guarda en la entrada "bind-response" de la colección Variables del objeto context.
Si por algún motivo se produce un error en el entorno de ejecución de Dapr y se responde con un error, se desencadena la sección "on-error" y la respuesta que se recibe del entorno de ejecución de Dapr se devuelve literalmente al autor de la llamada. De lo contrario, se devuelve la respuesta predeterminada: 200 OK
.
La sección "backend" está vacía y la solicitud no se reenvía al back-end.
<policies>
<inbound>
<base />
<invoke-dapr-binding
name="external-system"
operation="create"
response-variable-name="bind-response">
<metadata>
<item key="source">api-management</item>
<item key="client-ip">@(context.Request.IpAddress )</item>
</metadata>
<data>
@(context.Request.Body.As<string>() )
</data>
</invoke-dapr-binding>
</inbound>
<backend>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
<return-response response-variable-name="bind-response" />
</on-error>
</policies>
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Kit de herramientas de directivas de Azure API Management
- Creación de directivas mediante Microsoft Copilot en Azure