Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Sommario
Questo articolo illustra come risolvere gli errori HTTP 403 e HTTP 429 causati da Gestione API di Azure criteri di limitazione delle richieste, in modo da identificare i criteri restrittivi e ripristinare il comportamento previsto dell'API.
Questo articolo è il quinto scenario del lab della serie di risoluzione dei problemi Gestione API di Azure. Assicurarsi di seguire le istruzioni di configurazione del lab in base alle istruzioni del lab della serie di risoluzione dei problemi di Gestione API.
Versione originale del prodotto: servizio Gestione API
Numero KB originale: 4464928
Sintomi
L'API Risorse recupera i dettagli personali, i post di social media, i commenti e le foto di un utente e usa la risposta per un progetto di Machine Learning. L'operazione GetPosts inizia a restituire gli errori HTTP 403 - Accesso negato mentre le altre operazioni funzionano come previsto.
L'esempio seguente mostra il messaggio di errore restituito dall'operazione GetPosts :
"statusCode": 403,
"message": "Accesso negato"
È anche possibile riscontrare errori HTTP 429 - Troppe richieste durante l'esecuzione dell'operazione GetComments per ogni seconda richiesta. Il problema viene risolto automaticamente dopo 10 secondi. Tuttavia, si ripete una volta eseguita di nuovo la prima chiamata all'API. Questo comportamento non si verifica per le altre operazioni.
L'esempio seguente mostra il messaggio di errore restituito dall'operazione GetComments :
"statusCode": 429,
"message": "Limite di velocità superato. Riprovare in 5 secondi."
Risoluzione dei problemi
HTTP 403 - Errore non consentito
Questo errore si verifica quando vengono implementati criteri di restrizione dell'accesso. Controlla la traccia dell'Inspector di Gestione API. È consigliabile notare l'esistenza di un ip-filter criterio che filtra (consente o nega) le chiamate da indirizzi IP e intervalli di indirizzi IP specifici, come illustrato nell'esempio seguente:
<inbound>
<base />
<choose>
<when condition="@(context.Operation.Name.Equals("GetPosts"))">
<ip-filter action="forbid">
<address-range from="0.0.0.0" to="255.255.255.255" />
</ip-filter>
</when>
</choose>
</inbound>
Per controllare l'ambito dei ip-filter criteri, selezionare Calcola criteri effettivi. Se non vengono visualizzati criteri di restrizione di accesso implementati in alcun ambito, controllare il livello di prodotto. Passare al prodotto associato e quindi selezionare Criteri.
HTTP 429 - Errore di troppe richieste
Utilizzare la stessa procedura descritta in precedenza, controllando la traccia dell'Inspector di Gestione API per verificare se sono presenti criteri rate-limit o rate-limit-by-key implementati in qualsiasi ambito.
È consigliabile notare un criterio di restrizione di accesso (rate-limit-by-key) implementato nell'ambito globale, ad esempio nell'opzione Inbound processingAll APIs come illustrato nell'esempio seguente:
<inbound>
<choose>
<when condition="@(context.Operation.Name.Equals("GetComments"))">
<rate-limit-by-key calls="1" renewal-period="10" increment-condition="@(context.Response.StatusCode == 200)" counter-key="@(context.Request.IpAddress)" />
</when>
</choose>
</inbound>
Per altre informazioni, vedere Informazioni di riferimento sui criteri di Gestione API.