Я использую API-интерфейсы управления API Azure для автоматической регистрации пользователей для ключа API. После выполнения подписки PUT возвращаются первичный и вторичный ключи API. Если я возьму первичный ключ API и попытаюсь выполнить первоначальный вызов сразу для одного из наших API-интерфейсов продукта, произойдет сбой с 401 «Доступ запрещен из-за неверного ключа подписки. Убедитесь, что вы предоставили действительный ключ для активной подписки». Но если я подожду несколько секунд и повторно отправлю один и тот же запрос во второй раз, это сработает и после этого сработает для всех вызовов. Как будто ключ не готов к немедленному использованию, как только я получу ответ от подписки PUT. Требуется ли определенное количество времени для распространения подписки в Azure API Management, прежде чем она будет готова к использованию? Мы работаем только в одном регионе, в центральной части США.
var assignSubscription = new
{
UserId = $"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{ServiceName}/users/{userId}",
ProductId = $"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{ServiceName}/products/{ProductId}",
DisplayName = ProductDisplayName,
State = "active"
};
var requestUrl = $"{ManagementApiUrl}/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{ServiceName}/subscriptions/{userId}?api-version={ApiVersion}¬ify=true";
var response = ProcessHttpRequest(token, HttpMethod.Put, requestUrl, assignSubscription).Result;
Предполагается, что код состояния «Успешно»:
var subResponse = JsonConvert.DeserializeObject<AzurePutSubscriptionResponse>(assignResult.Content.ReadAsStringAsync().Result);
response.ApiKey = subResponse.Properties.PrimaryKey;