Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Python-Tools erweitern Ihren Azure SRE-Agent über integrierte Azure-Funktionen hinaus. Erstellen Sie benutzerdefinierte Tools, die eine Verbindung mit internen APIs, lokalen Datenbanken, Multicloudplattformen und proprietären Systemen mithilfe von Python-Code herstellen. Beschreiben Sie, was Sie in einfachem Englisch benötigen, vorhandene Skripts einfügen oder HTTP-Endpunkte umschließen und dann testen und bereitstellen, ohne einen Neustart auszuführen.
Tipp
- Erweitern Sie Ihren Agent, um Systeme zu erreichen, für die er keine integrierte Unterstützung bietet.
- Stellen Sie eine Verbindung mit internen APIs, lokalen Datenbanken und Multicloudplattformen her.
- Codieren sie benutzerdefinierte Geschäftslogik (SLA-Berechnungen, Kostenmodelle, Complianceregeln).
Das Problem
Ihr Agent verfügt über leistungsstarke integrierte Tools für Azure, einschließlich Kusto-Abfragen, Azure Monitor- und ARM-Vorgängen. Ihre Organisation lebt jedoch nicht vollständig in Azure:
- Interne Systeme: CMDB-Datenbanken, benutzerdefinierte Ticketingsysteme und interne APIs, die nur in Ihrer Organisation verwendet werden.
- Multicloud: Datadog-Dashboards, Splunk-Protokolle und AWS CloudWatch-Metriken zusammen mit Azure.
- Legacy-Infrastruktur: Lokale Datenbanken, proprietäre Protokolle und Systeme ohne moderne APIs.
- Benutzerdefinierte Geschäftslogik: SLA-Berechnungen, die für Ihre Verträge, Kostenzuordnungsformeln und Kapazitätsplanungsmodelle spezifisch sind.
Der Agent kann Azure-Probleme diagnostizieren, kann aber nicht zu Ihren internen Systemen gelangen oder die eindeutige Logik Ihrer Organisation anwenden, es sei denn, Sie erweitern sie.
Funktionsweise von Python-Tools
Mit Python-Tools können Sie Ihren Agent über neue Funktionen unterrichten. Beschreiben Sie, was Sie benötigen, generieren Sie den Code, testen Sie ihn und stellen Sie es bereit. Ihr Agent kann dann Systeme erreichen und Logik anwenden, die noch nicht möglich war.
Der generierte Code folgt einem konsistenten Muster:
- Eine
main()Funktion, die eingegebene Parameter akzeptiert. - JSON-serialisierbare Rückgabewerte.
- Beschreibende Docstrings, die die Logik erläutern.
Bevor Sie das Tool erstellen, testen Sie es mit echten Eingaben im Playground. Geben Sie Parameterwerte ein, wählen Sie "Testen" aus, und sehen Sie tatsächliche Ergebnisse, nicht nur die Syntaxüberprüfung.
Nachdem Sie das Tool getestet haben, wählen Sie " Tool erstellen" aus. Ihr Agent kann ihn sofort ohne Neustart und ohne Bereitstellungspipeline verwenden.
Python-Tools im Vergleich zu MCP-Connectors
Für Drittanbieterplattformen gibt es zwei Optionen.
| Vorgehensweise | Am besten geeignet für: | Beispiele |
|---|---|---|
| MCP-Steckverbinder | Beliebte Plattformen mit Standard-APIs | Datadog, Splunk, ServiceNow, GitHub |
| Python-Tools | Interne Systeme, benutzerdefinierte Logik, Plattformen ohne MCP | Ihre CMDB, proprietäre APIs, benutzerdefinierte Berechnungen |
Verwenden Sie MCP-Connectors, wenn ein Connector für Ihre Plattform vorhanden ist. MCP bietet strukturierte Schemas, Authentifizierungsverwaltung und konsistentes Verhalten.
Verwenden Sie Python-Tools, wenn Sie interne Systeme erreichen, benutzerdefinierte Geschäftslogik codieren oder ohne MCP-Unterstützung eine Verbindung mit Plattformen herstellen müssen.
Was macht dies anders
In der folgenden Tabelle werden die Agentfunktionen mit und ohne Python-Tools verglichen.
| Ohne Python-Tools | Mit Python-Tools |
|---|---|
| Agent kann nur integrierte Funktionen verwenden | Agent erreicht jedes System, das Python aufrufen kann |
| Interne APIs erfordern separate Workflows | Interne Systeme werden Agent-Tools |
| Benutzerdefinierte Logik befindet sich in externen Skripts | Geschäftsregeln, die in Agentunterhaltungen ausgeführt werden |
| On-Premise-Systeme werden vom Agenten getrennt. | Hybridumgebungen sind voll zugänglich |
Python-Tools verwandeln Ihren Agent von einem azure-nativen Assistenten in eine erweiterbare Plattform, die mit Ihrer gesamten Infrastruktur arbeitet.
Vor und nachher
| Vorher | Nach |
|---|---|
| "Unsere CMDB ist lokal, Agent kann es nicht sehen" | Python-Tool mit Netzwerkzugriff, das interne Systeme abfragt |
| "Wir haben benutzerdefinierte SLA-Formeln, die niemand automatisiert hat" | Codieren Sie Ihre Formeln als Tool; der Agent wendet sie automatisch an. |
| "Complianceberichte benötigen eine spezifische PDF-Formatierung" | Generieren von Berichten mit ReportLab, die über den Agent bereitgestellt werden |
Voraussetzungen
- Ersteller-Zugriff auf einen Azure SRE-Agent.
- Für HTTP-Endpunkte: URL und Authentifizierungsdaten für Ihre Zielsysteme.
Erstellen eines Python-Tools
Sie können Python-Tools mithilfe von drei Ansätzen erstellen.
| Vorgehensweise | Sie stellen folgendes bereit: | Der Agent führt aus | Am besten geeignet für: |
|---|---|---|---|
| Beschreiben in einfachem Englisch | "SLA aus Betriebszeit und Ausfallzeit berechnen" | Generiert vollständigen Python-Code | Schnelle benutzerdefinierte Logik, keine Codierung erforderlich |
| Vorhandenen Code einfügen | Ihre Python-Funktion | Verpackt es als Werkzeug | Migrieren vorhandener Skripts, komplexer Logik |
| Aufrufen von HTTP-Endpunkten | Endpunkt-URL und Authentifizierung | Ruft Ihre API über HTTP auf | Azure-Funktionen, Lambda, interne APIs, Webhooks |
Option 1: Der KI erlauben, den Code zu schreiben
Beschreiben Sie, was Sie im Dialogfeld benötigen, und wählen Sie "Generieren" aus. KI erstellt eine funktionierende Python-Funktion mit typierten Parametern, Fehlerbehandlung und Docstrings.
Sie beschreiben Folgendes: "Berechnung der Einhaltung der SLA aus Betriebszeit- und Ausfallzeitsminuten und gibt an, ob der Schwellenwert von 99,9 % erreicht wird"
Agent generiert: Eine vollständige main() Funktion, die zum Testen und Bereitstellen bereit ist.
Option 2: Eigenen Code mitbringen
Fügen Sie vorhandene Python in die Registerkarte "Code " ein. Die Funktion muss diesem Muster folgen:
def main(param1: str, param2: int) -> dict:
# Your logic here
return {"result": "value"}
Option 3: Aufrufen von HTTP-Endpunkten
Umschließen Sie einen beliebigen HTTP-Endpunkt (Azure Functions, AWS Lambda, interne APIs oder Webhooks) als Python-Tool:
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()
Hinweis
Python-Tools haben ausgehenden Netzwerkzugriff. Sie können jeden beliebigen HTTP-Endpunkt aufrufen, den Ihr Netzwerk zulässt. Fügen Sie für authentifizierte Endpunkte API-Schlüssel oder Token in Headern oder Abfrageparametern ein.
Beispielszenarien
Die folgenden Beispiele veranschaulichen allgemeine Anwendungsfälle für Python-Tools.
Interne CMDB-Abfrage:
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()
Benutzerdefinierte SLA-Berechnung:
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}
Erstellung von Complianceberichten:
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"}
Überprüfen, ob Ihr Tool funktioniert
Nachdem Sie das Tool erstellt haben, testen Sie es in einem neuen Chat:
Calculate SLA for 43185 minutes uptime and 15 minutes downtime
Ihr Agent sollte erkennen, dass die Aufgabe Ihrem Tool entspricht und sie automatisch aufruft.
Ausführungsumgebung
In der folgenden Tabelle wird die Ausführungsumgebung für Python-Tools beschrieben.
| Eigentum | Wert |
|---|---|
| Timeout | 5 bis 900 Sekunden (Standard: 120) |
| Isolation | Neuer Container pro Ausführung |
| File-System |
/mnt/data für temporäre Dateien |
| Network | Ausgehende Konnektivität aktiviert |
| Pakete | 700+ vorinstalliert (Pandas, Anforderungen, Azure-Identität, Reportlab und mehr) |
| State | Keine Persistenz zwischen Aufrufen |
Authentifizierung für Azure-Ressourcen
Python-Tools können sich bei Azure-Ressourcen authentifizieren, indem verwaltete Identitäten mit voreingestellten Bereichen verwendet werden.
| Geltungsbereich | Access |
|---|---|
| ARM | Azure Resource Manager (management.azure.com) |
| Key Vault | Geheime Schlüssel, Zertifikate (vault.azure.net) |
| Lagerung | Blob, Warteschlange, Tabellenspeicher (storage.azure.com) |
Aktivieren Sie die Authentifizierung auf der Registerkarte " Identität " beim Erstellen eines Tools.
Einschränkungen
- Kein beständiger Zustand: Jede Ausführung beginnt neu. Speichern Sie die Ergebnisse bei Bedarf extern.
- Maximaler Timeout: 900 Sekunden (15 Minuten) für lang andauernde Vorgänge.
- Keine GPU: Cpu-only-Ausführungsumgebung.
- JSON-Ausgabe erforderlich: Rückgabewerte müssen JSON-serialisierbar sein.