Wait
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
Политика wait
параллельно выполняет свои непосредственные дочерние политики и ожидает выполнения всех или одной из них, прежде чем будет завершена. Политика wait
может иметь в качестве немедленной дочерней политики одну или несколько следующих политик: send-request
, cache-lookup-value
и choose
политики.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.
Правило политики
<wait for="all | any">
<!--Wait policy can contain send-request, cache-lookup-value,
and choose policies as child elements -->
</wait>
Атрибуты
Атрибут | Description | Обязательное поле | По умолчанию. |
---|---|---|---|
для | Определяет, ожидает ли политика wait завершения всех непосредственных дочерних политик или только одной. Допустимые значения:—- all : ожидание завершения всех непосредственных дочерних политик;- any — дождитесь завершения любой немедленной дочерней политики. После завершения первой непосредственной дочерней политики политика wait завершается и прерывает выполнение других непосредственных дочерних политик.Допустимы выражения политики. |
No | all |
Элементы
Может содержать в качестве дочерних элементов только политики send-request
, cache-lookup-value
и choose
.
Использование
- Разделы политики: inbound, outbound, backend.
- Области политики: глобальная, рабочая область, продукт, API, операция
- Шлюзы: классическая, версия 2, потребление, локальное размещение, рабочая область
Пример
В следующем примере две политики choose
являются непосредственными дочерними политиками политики wait
. Каждая из этих политик choose
выполняется в параллельном режиме. Каждая политика choose
пытается извлечь кэшированное значение. В случае промаха кэша для получения значения вызывается внутренняя служба. В этом примере политика wait
не завершается, пока не завершатся все ее непосредственные дочерние политики, так как атрибут for
имеет значение all
. В этом примере переменные контекста (execute-branch-one
, value-one
, execute-branch-two
и value-two
) объявляются вне области этого примера политики.
<wait for="all">
<choose>
<when condition="@((bool)context.Variables["execute-branch-one="])">
<cache-lookup-value key="key-one" variable-name="value-one" />
<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" />
<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>
Связанные политики
Связанный контент
Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.
- Руководство. Преобразование и защита API
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Набор средств политики Управление API Azure
- Создание политик с помощью Microsoft Copilot в Azure