Dela via


Python-verktyg i Azure SRE Agent

Python-verktyg utökar din Azure SRE-agent utöver inbyggda Azure-funktioner. Skapa anpassade verktyg som ansluter till interna API:er, lokala databaser, plattformar för flera moln och egna system med hjälp av Python-kod. Beskriv vad du behöver på vanlig engelska, klistra in befintliga skript eller omsluta HTTP-slutpunkter och testa och distribuera utan omstart.

Tips/Råd

  • Utöka din agent för att nå system som den inte har inbyggt stöd för.
  • Anslut till interna API:er, lokala databaser och plattformar för flera moln.
  • Koda anpassad affärslogik (SLA-beräkningar, kostnadsmodeller, efterlevnadsregler).

Problemet

Din agent har kraftfulla inbyggda verktyg för Azure, inklusive Kusto-frågor, Azure Monitor och ARM-åtgärder. Men din organisation bor inte helt i Azure:

  • Interna system: CMDB-databaser, anpassade biljettsystem och interna API:er som endast din organisation använder.
  • Multicloud: Datadog-instrumentpaneler, Splunk-loggar och mätvärden från AWS CloudWatch tillsammans med Azure.
  • Äldre infrastruktur: Lokala databaser, patentskyddade protokoll och system utan moderna API:er.
  • Anpassad affärslogik: SLA-beräkningar som är specifika för dina kontrakt, kostnadsallokeringsformler och kapacitetsplaneringsmodeller.

Agenten kan diagnostisera Azure-problem, men den kan inte nå dina interna system eller tillämpa organisationens unika logik om du inte utökar den.

Så här fungerar Python-verktyg

Med Python-verktyg kan du lära din agent nya funktioner. Beskriv vad du behöver, generera koden, testa den och distribuera. Din agent kan sedan nå system och tillämpa logik som inte var möjlig tidigare.

Skärmbild av python-verktygsdialogrutan.

Den genererade koden följer ett konsekvent mönster:

  • En main() funktion som accepterar inskrivna parametrar.
  • JSON-serialiserbara returvärden.
  • Beskrivande dokumentsträngar som förklarar logiken.

Innan du skapar verktyget bör du testa det med riktiga indata på lekplatsen. Ange parametervärden, välj Test och se faktiska resultat, inte bara syntaxverifiering.

Skärmbild av testmiljön som visar lyckad körning med resultatet av SLA-beräkning.

När du har testat verktyget väljer du Skapa verktyg. Agenten kan omedelbart använda den utan omstart och ingen distributionspipeline.

Python-verktyg jämfört med MCP-anslutningsappar

För plattformar från tredje part har du två alternativ.

Tillvägagångssätt Bäst för Exempel
MCP-kontakter Populära plattformar med standard-API:er Datadog, Splunk, ServiceNow, GitHub
Python-verktyg Interna system, anpassad logik, plattformar utan MCP Din CMDB, egna API:er, anpassade beräkningar

Använd MCP-kontakter när det finns en kontakt för din plattform. MCP tillhandahåller strukturerade scheman, autentiseringshantering och konsekvent beteende.

Använd Python-verktyg när du behöver nå interna system, koda anpassad affärslogik eller ansluta till plattformar utan MCP-stöd.

Vad gör detta annorlunda

I följande tabell jämförs agentfunktioner med och utan Python-verktyg.

Utan Python-verktyg Med Python-verktyg
Agenten kan bara använda inbyggda funktioner Agenten når alla system som Python kan anropa
Interna API:er kräver separata arbetsflöden Interna system blir agentverktyg
Anpassad logik finns i externa skript Affärsregler körs i agentkonversationer
Lokala system är frånkopplade från agenten Hybridmiljöer är fullt tillgängliga

Python-verktyg förvandlar din agent från en Azure-intern assistent till en utökningsbar plattform som fungerar med hela infrastrukturen.

Före och efter

före Efter
Vår CMDB är lokalt installerad, agenten kan inte se den. Python-verktyg med interna system för nätverksåtkomstfrågor
"Vi har anpassade SLA-formler som ingen har automatiserat" Koda dina formler som ett verktyg; agenten tillämpar dem automatiskt
"Efterlevnadsrapporter behöver specifik PDF-formatering" Generera rapporter med ReportLab, som hanteras via agenten

Förutsättningar

  • Builder-åtkomst till en Azure SRE-agent.
  • För HTTP-slutpunkter: URL och autentiseringsuppgifter för dina målsystem.

Skapa ett Python-verktyg

Du kan skapa Python-verktyg med hjälp av tre metoder.

Tillvägagångssätt Du anger Agenten gör det Bäst för
Beskriv på vanlig engelska "Beräkna serviceavtal från drifttid och stilleståndstid" Genererar fullständig Python-kod Snabb anpassad logik, ingen kodning behövs
Klistra in befintlig kod Din Python-funktion Förpackar den som ett verktyg Migrera befintliga skript, komplex logik
Anropa HTTP-slutpunkter Slutpunkts-URL och autentisering Anropar ditt API via HTTP Azure Functions, Lambda, interna API:er, webhooks

Alternativ 1: Låt AI skriva koden

Beskriv vad du behöver i dialogrutan och välj Generera. AI skapar en fungerande Python-funktion med inskrivna parametrar, felhantering och dokumentsträngar.

Du beskriver: "Beräkna SLA-efterlevnad från drifttid och stilleståndstid minuter, returnera om den uppfyller 99,9% tröskelvärdet"

Agenten genererar: En komplett main() funktion som är redo att testa och distribuera.

Alternativ 2: Ta med din egen kod

Klistra in befintlig Python på fliken Kod . Funktionen måste följa det här mönstret:

def main(param1: str, param2: int) -> dict:
    # Your logic here
    return {"result": "value"}

Alternativ 3: Anropa HTTP-slutpunkter

Omslut alla HTTP-slutpunkter (Azure Functions, AWS Lambda, interna API:er eller webhooks) som ett Python-verktyg:

def main(input_data: str) -> dict:
    import requests

    # Azure Function with function key
    response = requests.post(
        "https://<FUNCTION_APP_NAME>.azurewebsites.net/api/<ENDPOINT>?code=<FUNCTION_KEY>",
        json={"data": input_data}
    )

    # Or internal API with bearer token
    # response = requests.get(
    #     "https://internal-api.corp/resource",
    #     headers={"Authorization": "Bearer <API_TOKEN>"}
    # )

    return response.json()

Anmärkning

Python-verktyg har utgående nätverksåtkomst. Du kan anropa valfri HTTP-slutpunkt som nätverket tillåter. För autentiserade slutpunkter inkluderar du API-nycklar eller token i rubriker eller frågeparametrar.

Exempelscenarier

Följande exempel visar vanliga användningsfall för Python-verktyg.

Intern CMDB-förfrågan:

def main(server_name: str) -> dict:
    """Query internal CMDB for server configuration."""
    import requests
    response = requests.get(f"https://cmdb.internal.corp/api/servers/{server_name}")
    return response.json()

Anpassad SLA-beräkning:

def main(uptime_minutes: int, downtime_minutes: int) -> dict:
    """Calculate SLA using your organization's formula."""
    total = uptime_minutes + downtime_minutes
    sla = (uptime_minutes / total) * 100 if total > 0 else 100.0
    return {"sla_percent": round(sla, 4), "meets_target": sla >= 99.9}

Generering av efterlevnadsrapport:

def main(incidents: list, month: str) -> dict:
    """Generate PDF compliance report."""
    from reportlab.platypus import SimpleDocTemplate
    doc = SimpleDocTemplate(f"/mnt/data/compliance-{month}.pdf")
    # Build report...
    return {"report_path": f"/api/files/compliance-{month}.pdf"}

Kontrollera att verktyget fungerar

När du har skapat verktyget testar du det i en ny chatt:

Calculate SLA for 43185 minutes uptime and 15 minutes downtime

Agenten bör känna igen att uppgiften matchar ditt verktyg och anropa den automatiskt.

Körningsmiljö

I följande tabell beskrivs körningsmiljön för Python-verktyg.

Fastighet Värde
Tidsgräns 5 till 900 sekunder (standard: 120)
Isolering Färsk container per körning
Filsystem /mnt/data för temporära filer
Nätverk Utgående anslutning aktiverad
Paket 700+ förinstallerat (Pandas, begäranden, azure-identitet, reportlab med mera)
Tillstånd Ingen beständighet mellan anrop

Autentisering för Azure-resurser

Python-verktyg kan autentisera till Azure-resurser med hjälp av hanterad identitet med förinställda omfång.

Scope Åtkomst
ARM Azure Resource Manager (management.azure.com)
密钥保管�� Hemligheter, nycklar, certifikat (vault.azure.net)
Förvaring Blob, kö, tabelllagring (storage.azure.com)

Aktivera autentisering på fliken Identitet när du skapar ett verktyg.

Begränsningar

  • Inget beständigt tillstånd: Varje körning startar på nytt. Lagra resultat externt om det behövs.
  • Maximal tidsgräns: 900 sekunder (15 minuter) för långvariga åtgärder.
  • Ingen GPU: Körningsmiljö endast för processor.
  • JSON-utdata krävs: Returvärdena måste vara JSON-serialiserbara.

Nästa steg