Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
SE APLICA A: todos los niveles de API Management
La directiva wait ejecuta sus directivas secundarias inmediatas en paralelo y espera a que se completen todas o una de ellas para finalizar. La directiva wait puede tener como directivas secundarias inmediatas una o varias de las siguientes: send-request, cache-lookup-value y choose.
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
<wait for="all | any">
<!--Wait policy can contain send-request, cache-lookup-value,
and choose policies as child elements -->
</wait>
Atributos
| Atributo | Descripción | Necesario | Valor predeterminado |
|---|---|---|---|
| para | Determina si la directiva wait espera a que se hayan completado todas las directivas secundarias inmediatas o solo una. Los valores permitidos son:- all: espera a que se hayan completado todas las directivas secundarias inmediatas.- any: espera a que se haya completado cualquier directiva secundaria inmediata. En cuanto se completa la primera, la directiva wait también se completa y finaliza la ejecución de cualquier otra directiva secundaria inmediata.Se permiten expresiones de directiva. |
No | all |
Elementos
Solo puede contener como elementos secundarios a las directivas send-request, cache-lookup-value y choose.
Uso
- Secciones de la directiva: entrante, saliente y back-end
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásica, v2, consumo, autohospedada y área de trabajo
Ejemplo
En el ejemplo siguiente hay dos directivas choose que son directivas secundarias inmediatas de la directiva wait. Cada una de estas directivas choose se ejecuta en paralelo. Cada directiva choose intenta recuperar un valor almacenado en memoria caché. Si se produce un error de memoria caché, se llama a un servicio back-end para que proporcione el valor. En este ejemplo la directiva wait no se completa hasta que lo han hecho todas sus directivas secundarias inmediatas, ya que el atributo for está establecido en all. Las variables de contexto (execute-branch-one, value-one, execute-branch-two y value-two) quedan fuera del ámbito de esta directiva de ejemplo.
Nota:
Añade una política de límite de velocidad (o política de límite por clave ) tras la búsqueda de caché para ayudar a limitar el número de llamadas y evitar sobrecarga en el servicio de backend en caso de que la caché no esté disponible.
<wait for="all">
<choose>
<when condition="@((bool)context.Variables["execute-branch-one="])">
<cache-lookup-value key="key-one" variable-name="value-one" />
<rate-limit calls="10" renewal-period="60" />
<choose>
<when condition="@(!context.Variables.ContainsKey("value-one="))">
<send-request mode="new" response-variable-name="value-one">
<set-url>https://backend-one</set-url>
<set-method>GET</set-method>
</send-request>
</when>
</choose>
</when>
</choose>
<choose>
<when condition="@((bool)context.Variables["execute-branch-two="])">
<cache-lookup-value key="key-two" variable-name="value-two" />
<rate-limit calls="10" renewal-period="60" />
<choose>
<when condition="@(!context.Variables.ContainsKey("value-two="))">
<send-request mode="new" response-variable-name="value-two">
<set-url>https://backend-two</set-url>
<set-method>GET</set-method>
</send-request>
</when>
</choose>
</when>
</choose>
</wait>
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
- Repositorio de área de juegos de directivas
- Kit de herramientas de directivas de Azure API Management
- Obtener ayuda de Copilot para crear, explicar y solucionar problemas de directivas