Delen via


Zelfstudie: Fouten opsporen in uw API's met behulp van tracering van aanvragen

VAN TOEPASSING OP: Alle API Management-lagen

In deze zelfstudie wordt beschreven hoe u de verwerking van aanvragen (traceren) controleert in Azure API Management. Tracering helpt u bij het opsporen van fouten en het oplossen van problemen met uw API.

In deze zelfstudie leert u het volgende:

  • Een voorbeeldaanroep traceren in de testconsole
  • Aanvraagverwerkingsstappen controleren
  • Tracering inschakelen voor een API

Schermopname van de API-inspector.

Vereisten

Belangrijk

  • API Management ondersteunt geen abonnementen meer voor tracering of de Ocp-Apim-Trace-header .
  • Om de API-beveiliging te verbeteren, kan tracering nu worden ingeschakeld op het niveau van een afzonderlijke API door een tijdsgebonden token te verkrijgen met behulp van de API Management REST API en het token door te geven in een aanvraag aan de gateway. Zie Tracering van een API inschakelen voor meer informatie.
  • Zorg ervoor dat bij het inschakelen van tracering gevoelige informatie wordt weergegeven in de traceringsgegevens. Zorg ervoor dat u over de juiste beveiligingsmaatregelen beschikt om de traceringsgegevens te beveiligen.

Een oproep traceren in de portal

Volg deze stappen om een API-aanvraag te traceren in de testconsole in de portal. In dit voorbeeld wordt ervan uitgegaan dat u in een vorige zelfstudie een voorbeeld-API hebt geïmporteerd . U kunt vergelijkbare stappen volgen met een andere API die u hebt geïmporteerd.

  1. Meld u aan bij Azure Portal en ga naar uw API Management-exemplaar.

  2. API's >selecteren.

  3. Selecteer Petstore-API in uw API-lijst.

  4. Selecteer het tabblad Testen.

  5. Selecteer de bewerking Huisdier zoeken op id .

  6. Voer 1 in de parameter petId-query in.

  7. Controleer eventueel de waarde voor de header Ocp-Apim-Subscription-Key die in de aanvraag wordt gebruikt door het pictogram 'oog' te selecteren.

    Tip

    U kunt de waarde van Ocp-Apim-Subscription-Key overschrijven door een sleutel voor een ander abonnement op te halen in de portal. Selecteer Abonnementen en open het contextmenu (...) voor een ander abonnement. Selecteer Sleutels weergeven/verbergen en een van de sleutels kopiëren. U kunt sleutels indien nodig ook opnieuw genereren. Selecteer vervolgens in de testconsole + Header toevoegen om een Ocp-Apim-Subscription-Key-header toe te voegen met de nieuwe sleutelwaarde.

  8. Selecteer Traceren.

Traceringsgegevens controleren

  1. Nadat de aanroep is voltooid, gaat u naar het tabblad Trace in het HTTP-antwoord.

  2. Selecteer een van de volgende koppelingen om naar gedetailleerde traceringsgegevens te gaan: Binnenkomend, Back-end, Uitgaand, On-fout.

    Antwoordtracering controleren

    • Inkomend: Toont de oorspronkelijke aanvraag die API Management van de aanroepende functie heeft ontvangen en de beleidsregels die op de aanvraag worden toegepast. Als u bijvoorbeeld beleidsregels hebt toegevoegd in de zelfstudie: Uw API transformeren en beveiligen, worden deze hier weergegeven.

    • Back-end: Toont de aanvragen die API Management naar de API-back-end heeft verzonden en het antwoord daarop.

    • Uitgaand: Toont de beleidsregels die op het antwoord worden toegepast voordat het naar de aanroepende functie wordt teruggestuurd.

    • Bij fout : toont de fouten die zijn opgetreden tijdens de verwerking van de aanvraag en het beleid dat op de fouten is toegepast.

    Tip

    Bij elke stap wordt ook de verstreken tijd weergegeven vanaf dat de aanvraag is ontvangen door de API Management.

Tracering inschakelen voor een API

De volgende stappen op hoog niveau zijn vereist om tracering in te schakelen voor een aanvraag naar API Management wanneer u curleen REST-client gebruikt, zoals Visual Studio Code met de REST-clientextensie of een client-app. Deze stappen moeten momenteel worden gevolgd met behulp van de API Management REST API:

  1. Haal een tokenreferentie op voor tracering.
  2. Voeg de tokenwaarde in een Apim-Debug-Authorization aanvraagheader toe aan de API Management-gateway.
  3. Haal een tracerings-id op in de Apim-Trace-Id antwoordheader.
  4. Haal de tracering op die overeenkomt met de tracerings-id.

Gedetailleerde stappen volgen.

Notitie

  • Voor deze stappen is REST API-versie 2023-05-01-preview of hoger van API Management vereist. U moet de rol Inzender of hoger hebben toegewezen aan het API Management-exemplaar om de REST API aan te roepen.
  • Zie azure REST API-naslaginformatie voor meer informatie over verificatie bij de REST API.
  1. Haal een tokenreferentie op: roep de API lijst met foutopsporingsreferenties van de API van de API Management-gateway aan. Voer in de URI 'beheerd' in voor de beheerde gateway van het exemplaar in de cloud of de gateway-id voor een zelf-hostende gateway. Als u bijvoorbeeld traceringsreferenties wilt verkrijgen voor de beheerde gateway van het exemplaar, gebruikt u een aanvraag die vergelijkbaar is met de volgende:

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/managed/listDebugCredentials?api-version=2023-05-01-preview
    

    Geef in de aanvraagbody de volledige resource-id van de API door die u wilt traceren en geef deze op purposes als tracing. Standaard verloopt de tokenreferentie die in het antwoord wordt geretourneerd na 1 uur, maar u kunt een andere waarde opgeven in de nettolading. Voorbeeld:

    {
        "credentialsExpireAfter": PT1H,
        "apiId": ""/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiName}",
        "purposes": ["tracing"]
    }
    

    De tokenreferentie wordt geretourneerd in het antwoord, vergelijkbaar met het volgende:

    {
          "token": "aid=api-name&......."
    }
    
  2. Voeg de tokenwaarde toe in een aanvraagheader : als u tracering voor een aanvraag naar de API Management-gateway wilt inschakelen, verzendt u de tokenwaarde in een Apim-Debug-Authorization header. Als u bijvoorbeeld een aanroep wilt traceren naar de Petstore-API die u in een vorige zelfstudie hebt geïmporteerd, kunt u een aanvraag gebruiken die vergelijkbaar is met de volgende:

    curl -v https://apim-hello-world.azure-api.net/pet/1 HTTP/1.1 -H "Ocp-Apim-Subscription-Key: <subscription-key>" -H "Apim-Debug-Authorization: aid=api-name&......."
    
  3. Afhankelijk van het token bevat het antwoord een van de volgende headers:

    • Als het token geldig is, bevat het antwoord een Apim-Trace-Id header waarvan de waarde de tracerings-id is, vergelijkbaar met de volgende:

      Apim-Trace-Id: 0123456789abcdef....
      
    • Als het token is verlopen, bevat het antwoord een Apim-Debug-Authorization-Expired header met informatie over de vervaldatum.

    • Als het token is verkregen voor een andere API, bevat het antwoord een Apim-Debug-Authorization-WrongAPI header met een foutbericht.

  4. Haal de tracering op: geef de tracerings-id die u in de vorige stap hebt verkregen door aan de api voor lijsttracering van de gateway. Als u bijvoorbeeld de tracering voor de beheerde gateway wilt ophalen, gebruikt u een aanvraag die vergelijkbaar is met de volgende:

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/managed/listTrace?api-version=2023-05-01-preview
    

    Geef in de aanvraagbody de tracerings-id door die in de vorige stap is verkregen.

    {
        "traceId": "0123456789abcdef...."
    }
    

    De hoofdtekst van het antwoord bevat de traceringsgegevens voor de vorige API-aanvraag naar de gateway. De tracering is vergelijkbaar met de tracering die u kunt zien door een aanroep te traceren in de testconsole van de portal.

Zie het traceringsbeleid voor informatie over het aanpassen van traceringsinformatie .

Volgende stappen

In deze zelfstudie heeft u het volgende geleerd:

  • Een voorbeeldaanroep in de testconosle traceren
  • Aanvraagverwerkingsstappen controleren
  • Tracering inschakelen voor een API

Ga door naar de volgende zelfstudie: