Självstudie: Skapa en HTTP-utlösare i Azure SRE Agent

I den här självstudien skapar du en HTTP-utlösare som kör en efterlevnadskontroll i en containerapp. Du testar den från portalen och kommandoraden och integrerar den sedan i en CI/CD-pipeline (kontinuerlig integrering och kontinuerlig leverans).

Uppskattad tid: 10 minuter

I den här handledningen kommer du att:

  • Skapa en HTTP-utlösare med en uppmaning om efterlevnadskontroll.
  • Testa utlösaren från portalen med kör nu.
  • Anropa utlösaren från kommandoraden med en JSON-nyttolast.
  • Integrera utlösaren i en CI/CD-pipeline.

Förutsättningar

  • Azure SRE-agent i tillståndet Körning med minst en konfigurerad Azure-prenumeration.
  • Azure CLI installerat (az kommando) för att testa webhook-anropet.

Scenario

Ditt team distribuerar containerappsrevisioner flera gånger om dagen. Varje distribution bör uppfylla efterlevnadsstandarder, med rätt resursgränser, konfigurerade hälsoavsökningar och ingressregler. I stället för att manuellt kontrollera efter varje distribution skapar du en HTTP-utlösare som CI/CD-pipelinen anropar efter varje distribution. Agenten kör efterlevnadskontrollen automatiskt.

Öppna HTTP-utlösare

Öppna HTTP-utlösare genom att gå till Builder>HTTP-utlösare på tjänstmenyn.

Checkpoint: Sidan läses in med sammanfattningskort (Aktiva utlösare: 0, Totalt antal utlösare: 0, Totalt antal körningar: 0) och en tom utlösarlista.

Steg 1: Skapa utlösaren

  1. Välj Skapa utlösare i verktygsfältet. Dialogrutan Skapa HTTP-utlösare öppnas.

  2. Fyll i följande fält i formuläret.

    Fält Värde
    Utlösarnamn Efterlevnadskontroll för containerapplikation.
    Information om utlösare En ny version av containerappen har distribuerats. Kör en efterlevnadskontroll i appen. Kontrollera att resursbegränsningar (CPU/minne), hälsoavsökningar, ingresskonfiguration och skalningsregler har konfigurerats korrekt. Rapportera eventuella problem som hittats. Appinformation: {payload.app_name} i resursgruppen {payload.resource_group}. Revision: {payload.revision_name}.
    Agentens autonominivå Autonom (standardinställning).
    Meddelandegruppering för uppdateringar Ny chatttråd för varje körning.
  3. Lämna svarsunderagenten som standard om du inte vill att en specifik underagent ska hantera kontrollen.

  4. Välj Skapa utlösare.

Checkpoint: Utlösaren visas i listan med statusen På (grönt märke). Sammanfattningskorten uppdateras för att visa en aktiv utlösare.

Steg 2: Kopiera utlösar-URL:en

  1. Välj utlösarnamnet Container App Compliance Check för att öppna detaljvyn.

  2. Du ser följande fält:

    • Utlösar-URL: Webhook-slutpunkt med knappen Kopiera
    • Status: På
    • Anropas senast: Aldrig
    • Meddelandegruppering: Ny tråd för varje körning
  3. Välj knappen Kopiera bredvid utlösar-URL:en. Spara URL:en eftersom du använder den i steg 4.

Checkpoint: Du har kopierat utlösar-URL:en. Det ser ut som https://<your-agent>.sre.azure.com/api/v1/httptriggers/trigger/<trigger-id>.

Steg 3: Testa med Kör nu

  1. Välj Kör utlösare nu i verktygsfältet. Den här åtgärden kör utlösaren omedelbart utan ett externt anrop.

  2. Vänta några sekunder och välj sedan Uppdatera lista för att uppdatera körningshistoriken.

Checkpoint: Körningshistoriken visar en ny rad med en tidsstämpel, en länkad tråd och en lyckad status. Välj trådlänken för att se agentens svar.

Agenten skapar en tråd med namnet HTTP Trigger: Efterlevnadskontroll för containerapplikation. Inuti ser du exekveringskortet med efterlevnadskontrollplanen, följt av agentens fullständiga undersökning och en resultattabell med efterlevnadsresultat.

Steg 4: Anropa utlösaren från kommandoraden

Testa det nu på det sätt som din CI/CD-pipeline skulle göra med en riktig nyttolast. Öppna en terminal och kör:

# Get an ARM token (use the SRE Agent app ID as the resource)
TOKEN=$(az account get-access-token --resource 59f0a04a-b322-4310-adc9-39ac41e9631e --query accessToken -o tsv)

# Call the trigger with container app deployment details
curl -X POST \
  "<YOUR_TRIGGER_URL>" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "app_name": "checkout-api",
    "resource_group": "rg-production",
    "revision_name": "checkout-api--v3",
    "deployed_by": "github-actions",
    "image": "myregistry.azurecr.io/checkout-api:v3.2.1"
  }'

Ersätt <YOUR_TRIGGER_URL> med den URL som du kopierade i steg 2.

Vad händer: Agenten tar emot din fråga med {payload.app_name}, {payload.resource_group}och {payload.revision_name} ersätts med de faktiska värdena. Fält som inte matchar en platshållare (som deployed_by och image) läggs till som rå JSON-kontext.

Svaret returneras omedelbart med HTTP 202:

{
  "message": "HTTP trigger execution initiated",
  "executionTime": "2026-03-13T10:30:00Z",
  "threadId": "thread-abc123",
  "success": true
}

Checkpoint: Gå tillbaka till portalen och välj Uppdatera lista i detaljvyn. Du bör se en andra körning i historiken. Den här är från det externa anropet. Välj trådlänken för att se agentens efterlevnadskontroll med den verkliga appinformationen ifylld.

Steg 5: Integrera med din pipeline

Lägg till utlösaranropet i CI/CD-pipelinens steg efter distributionen. Här är ett exempel på GitHub Actions:

- name: Trigger SRE Agent compliance check
  if: success()
  run: |
    TOKEN=$(az account get-access-token --resource 59f0a04a-b322-4310-adc9-39ac41e9631e --query accessToken -o tsv)
    curl -s -X POST "${{ secrets.SRE_TRIGGER_URL }}" \
      -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "app_name": "${{ env.APP_NAME }}",
        "resource_group": "${{ env.RESOURCE_GROUP }}",
        "revision_name": "${{ env.REVISION_NAME }}",
        "deployed_by": "${{ github.actor }}",
        "commit": "${{ github.sha }}"
      }'

Lagra din utlösar-URL som en GitHub-hemlighet (SRE_TRIGGER_URL). Hårdkoda den aldrig i arbetsflödesfilen.

Steg 6: Rensa resurser

Om du inte längre behöver utlösaren tar du bort den:

  1. Gå till Builder>HTTP-utlösare.
  2. Markera kryssrutan för utlösare.
  3. Välj Ta bort.