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.
Gli strumenti Python estendono l'agente SRE di Azure oltre alle funzionalità predefinite di Azure. Creare strumenti personalizzati che si connettono alle API interne, ai database locali, alle piattaforme multicloud e ai sistemi proprietari usando il codice Python. Descrivere gli elementi necessari in inglese normale, incollare gli script esistenti o eseguire il wrapping degli endpoint HTTP, quindi testare e distribuire senza riavviare.
Suggerimento
- Estendi il tuo agente per raggiungere sistemi che non sono supportati nativamente.
- Connettersi alle API interne, ai database locali e alle piattaforme multicloud.
- Codificare la logica di business personalizzata (calcoli del contratto di servizio, modelli di costo, regole di conformità).
Problema
L'agente dispone di potenti strumenti predefiniti per Azure, tra cui query Kusto, Azure Monitor e operazioni ARM. Ma l'organizzazione non vive interamente in Azure:
- Sistemi interni: database CMDB, sistemi di creazione di ticket personalizzati e API interne usate solo dall'organizzazione.
- Multicloud: dashboard di Datadog, log di Splunk, metriche di AWS CloudWatch, insieme a quelle di Azure.
- Infrastruttura legacy: database locali, protocolli proprietari e sistemi senza API moderne.
- Logica di business personalizzata: calcoli del livello di servizio specifici per i contratti, formule di allocazione dei costi e modelli di pianificazione della capacità.
L'agente può diagnosticare i problemi di Azure, ma non può raggiungere i sistemi interni o applicare la logica univoca dell'organizzazione a meno che non venga estesa.
Funzionamento degli strumenti Python
Gli strumenti Python consentono di insegnare alle nuove funzionalità dell'agente. Descrivere gli elementi necessari, generare il codice, testarlo e distribuirlo. L'agente può quindi raggiungere i sistemi e applicare la logica che non era possibile prima.
Il codice generato segue un modello coerente:
- Funzione
main()che accetta parametri tipizzato. - Valori di ritorno JSON-serializzabili.
- Docstring descrittivi che spiegano la logica.
Prima di creare lo strumento, testarlo con input reali nel playground. Immettere i valori dei parametri, selezionare Test e visualizzare i risultati effettivi, non solo la convalida della sintassi.
Dopo aver testato lo strumento, selezionare Crea strumento. L'agente può usarlo immediatamente senza riavviare e senza pipeline di distribuzione.
Strumenti Python e connettori MCP
Per le piattaforme di terze parti, sono disponibili due opzioni.
| Avvicinarsi | Ideale per | Examples |
|---|---|---|
| Connettori MCP | Piattaforme comuni con API standard | Datadog, Splunk, ServiceNow, GitHub |
| Strumenti Python | Sistemi interni, logica personalizzata, piattaforme senza MCP | Il tuo CMDB, API proprietarie, calcoli personalizzati |
Usare i connettori MCP quando esiste un connettore per la piattaforma. MCP offre schemi strutturati, gestione dell'autenticazione e comportamento coerente.
Usare gli strumenti Python quando è necessario raggiungere i sistemi interni, codificare la logica di business personalizzata o connettersi alle piattaforme senza supporto MCP.
Cosa rende questo diverso
La tabella seguente confronta le funzionalità dell'agente con e senza strumenti Python.
| Senza strumenti Python | Con gli strumenti Python |
|---|---|
| Agent può usare solo funzionalità predefinite | L'agente raggiunge qualsiasi sistema che Python può chiamare |
| Le API interne richiedono flussi di lavoro separati | I sistemi interni diventano strumenti per gli agenti |
| La logica personalizzata si trova in script esterni | Le regole di business sono eseguite nelle conversazioni degli agenti |
| I sistemi locali vengono disconnessi dall'agente | Gli ambienti ibridi sono completamente accessibili |
Gli strumenti Python trasformano l'agente da un assistente nativo di Azure in una piattaforma estendibile che funziona con l'intera infrastruttura.
Prima e dopo
| Prima | Dopo |
|---|---|
| "Il nostro CMDB è locale, l'agente non riesce a vederlo" | Strumento Python con query di accesso alla rete per i sistemi interni |
| "Abbiamo formule personalizzate del contratto di servizio che nessuno ha automatizzato" | Codifica le formule come strumento; l'agente le applica automaticamente |
| "I report di conformità necessitano di una formattazione PDF specifica" | Generare report con ReportLab, forniti tramite l'agente |
Prerequisiti
- Accesso del creatore a un agente SRE di Azure.
- Per gli endpoint HTTP: URL e credenziali di autenticazione per i sistemi di destinazione.
Creare uno strumento Python
È possibile creare strumenti Python usando tre approcci.
| Avvicinarsi | Fornisci | L'agente opera | Ideale per |
|---|---|---|---|
| Descrivere in inglese normale | Calcolare l'Accordo sul Livello di Servizio (SLA) dall'operatività e dall'inattività | Genera codice Python completo | Logica personalizzata rapida, nessuna scrittura di codice necessaria |
| Incollare il codice esistente | La tua funzione Python | Lo avvolge come uno strumento | Migrazione di script esistenti, logica complessa |
| Chiamare endpoint HTTP | URL dell'endpoint e autenticazione | Chiama l'API tramite HTTP | Funzioni di Azure, Lambda, API interne, webhook |
Opzione 1: Consentire all'intelligenza artificiale di scrivere il codice
Descrivere gli elementi necessari nella finestra di dialogo e selezionare Genera. L'intelligenza artificiale crea una funzione Python funzionante con parametri tipizzato, gestione degli errori e docstrings.
Descrivi: "Calcola la conformità SLA basata sui minuti di attività e inattività, indicando se soddisfa la soglia del 99,9%"
Agent genera: Funzione completa main() pronta per testare e distribuire.
Opzione 2: Porta il tuo codice
Incollare Python esistente nella scheda Codice . La funzione deve seguire questo modello:
def main(param1: str, param2: int) -> dict:
# Your logic here
return {"result": "value"}
Opzione 3: Chiamare endpoint HTTP
Avvolgere qualsiasi endpoint HTTP (Azure Functions, AWS Lambda, API interne o webhook) come strumento Python:
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()
Annotazioni
Gli strumenti Python hanno accesso alla rete in uscita. È possibile chiamare qualsiasi endpoint HTTP consentito dalla rete. Per gli endpoint autenticati, includere chiavi API o token nelle intestazioni o parametri di query.
Scenari di esempio
Gli esempi seguenti illustrano i casi d'uso comuni per gli strumenti Python.
Query interna CMDB:
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()
Calcolo del contratto di servizio personalizzato:
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}
Generazione di report di conformità:
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"}
Verificare il funzionamento dello strumento
Dopo aver creato lo strumento, testarlo in una nuova chat:
Calculate SLA for 43185 minutes uptime and 15 minutes downtime
L'agente dovrebbe riconoscere che l'attività corrisponde al tuo strumento e attivarlo automaticamente.
Ambiente di esecuzione
La tabella seguente descrive l'ambiente di esecuzione per gli strumenti Python.
| Proprietà | Valore |
|---|---|
| Timeout | Da 5 a 900 secondi (impostazione predefinita: 120) |
| Isolamento | Nuovo contenitore per l'esecuzione |
| File system |
/mnt/data per i file temporanei |
| Network | Connettività in uscita abilitata |
| Pacchetti | 700+ preinstallati (pandas, requests, azure-identity, reportlab e altro ancora) |
| Stato | Nessuna persistenza tra le chiamate |
Autenticazione per le risorse di Azure
Gli strumenti Python possono eseguire l'autenticazione alle risorse di Azure usando l'identità gestita con ambiti predefiniti.
| Ambito | Access |
|---|---|
| ARM | Azure Resource Manager (management.azure.com) |
| Archivio di chiavi | Segreti, chiavi, certificati (vault.azure.net) |
| Spazio di archiviazione | Blob, coda, archiviazione di tabelle (storage.azure.com) |
Abilitare l'autenticazione nella scheda Identità durante la creazione di uno strumento.
Limitazioni
- Nessun stato persistente: ogni esecuzione viene avviata di nuovo. Archiviare i risultati esternamente, se necessario.
- Timeout massimo: 900 secondi (15 minuti) per le operazioni a esecuzione prolungata.
- Nessuna GPU: ambiente di esecuzione solo CPU.
- Output JSON obbligatorio: i valori restituiti devono essere serializzabili in JSON.