Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Osservabilità dell'applicazione per l' AWS azione
L'Application Observability for AWS GitHub Action fornisce un flusso di lavoro di indagine sull'osservabilità delle end-to-end applicazioni che collega il codice sorgente e i dati di telemetria di produzione in tempo reale all'agente AI. Sfrutta CloudWatch MCPs e genera prompt personalizzati per fornire il contesto necessario agli agenti di intelligenza artificiale per la risoluzione dei problemi e l'applicazione di correzioni al codice.
L'azione imposta e configura CloudWatch Application Signals MCP Server e CloudWatch MCP Server
Per iniziare, indica tra i tuoi GitHub problemi l'attivazione dell'agente AI. @awsapm L'agente risolverà i problemi di produzione, implementerà le correzioni e migliorerà la copertura dell'osservabilità sulla base dei dati delle applicazioni in tempo reale.
Questa azione di per sé non comporta costi diretti. Tuttavia, l'utilizzo di questa azione può comportare addebiti per AWS i servizi e l'utilizzo del modello di intelligenza artificiale. Per informazioni dettagliate sui costi potenziali, consulta la documentazione relativa alle considerazioni
Nozioni di base
Questa azione configura gli agenti AI all'interno del GitHub flusso di lavoro generando configurazioni MCP AWS specifiche e prompt di osservabilità personalizzati. Devi solo fornire il ruolo IAM da assumere e un Bedrock Model ID che desideri utilizzare o un token API dal tuo abbonamento LLM esistente. L'esempio seguente illustra un modello di flusso di lavoro che integra questa azione con quella di Anthropic
Prerequisiti
Prima di iniziare, assicurati di disporre di quanto segue:
-
GitHub Autorizzazioni al repository: accesso in scrittura o superiore al repository (necessario per attivare l'azione)
-
AWS Ruolo IAM: un ruolo IAM configurato con OpenID Connect (OIDC) for GitHub Actions con autorizzazioni per:
-
CloudWatch Segnali applicativi e accesso CloudWatch
-
Accesso al modello Amazon Bedrock (se si utilizzano modelli Bedrock)
-
-
GitHub Token: il flusso di lavoro utilizza automaticamente GITHUB_TOKEN con le autorizzazioni richieste
Fasi di configurazione
Fase 1: Configurazione AWS delle credenziali
Questa azione si basa sull'azione aws-actions/
-
Crea un IAM Identity Provider
Innanzitutto, crea un IAM Identity Provider che affidi l'endpoint OIDC GitHub dell'utente nella console di gestione: AWS
-
Apri la console IAM
-
Fai clic su Provider di identità in Gestione degli accessi
-
Fai clic sul pulsante Aggiungi provider per aggiungere un provider di GitHub identità se non è ancora stato creato
-
Seleziona il tipo di provider di identità OpenID Connect
-
Inserisci
https://token.actions.githubusercontent.comla casella di immissione dell'URL del provider -
Inserisci
sts.amazonaws.com.rproxy.govskope.cala casella di input Audience -
Fai clic sul pulsante Aggiungi fornitore
-
-
Crea una politica IAM
Crea una policy IAM con le autorizzazioni necessarie per questa azione. Consulta la Autorizzazioni richieste sezione seguente per i dettagli.
-
Crea un ruolo IAM
Crea un ruolo IAM (ad esempio,
AWS_IAM_ROLE_ARN) nella console di AWS gestione con il seguente modello di policy di fiducia. Ciò consente ai GitHub repository autorizzati di assumere il ruolo:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::<AWS_ACCOUNT_ID>:oidc-provider/token.actions.githubusercontent.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com" }, "StringLike": { "token.actions.githubusercontent.com:sub": "repo:<GITHUB_ORG>/<GITHUB_REPOSITORY>:ref:refs/heads/<GITHUB_BRANCH>" } } } ] }Sostituisci i seguenti segnaposto nel modello:
-
<AWS_ACCOUNT_ID>- L'ID del tuo account AWS -
<GITHUB_ORG>- Il nome GitHub della tua organizzazione -
<GITHUB_REPOSITORY>- Il nome del tuo repository -
<GITHUB_BRANCH>- Il nome della filiale (ad esempio, principale)
-
-
Allega la politica IAM
Nella scheda Autorizzazioni del ruolo, allega la policy IAM che hai creato nel passaggio 2.
Per ulteriori informazioni sulla configurazione di OIDC con AWS, consulta la Guida rapida di avvio di configure-aws-credentials OIDC
Fase 2: Configurazione dei segreti e aggiunta del flusso di lavoro
-
Configura i segreti del repository
Vai al tuo repository → Impostazioni → Segreti e variabili → Azioni.
-
Crea un nuovo repository secret denominato
AWS_IAM_ROLE_ARNe imposta il suo valore sull'ARN del ruolo IAM che hai creato nella fase 1. -
(Facoltativo) Crea una variabile di repository denominata
AWS_REGIONper specificare la tua AWS regione (il valore predefinito è se non è impostata)us-east-1
-
-
Aggiungi il file del flusso di lavoro
Di seguito è riportato un esempio di flusso di lavoro che dimostra l'utilizzo di questa azione con i modelli Amazon Bedrock. Crea il flusso di lavoro Application Observability Investigation da questo modello nella tua GitHub directory Repository.
.github/workflowsname: Application observability for AWS on: issue_comment: types: [created, edited] issues: types: [opened, assigned, edited] jobs: awsapm-investigation: if: | (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@awsapm')) || (github.event_name == 'issues' && (contains(github.event.issue.body, '@awsapm') || contains(github.event.issue.title, '@awsapm'))) runs-on: ubuntu-latest permissions: contents: write # To create branches for PRs pull-requests: write # To post comments on PRs issues: write # To post comments on issues id-token: write # Required for AWS OIDC authentication steps: - name: Checkout repository uses: actions/checkout@v4 - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.AWS_IAM_ROLE_ARN }} aws-region: ${{ vars.AWS_REGION || 'us-east-1' }} # Step 1: Prepare AWS MCP configuration and investigation prompt - name: Prepare Investigation Context id: prepare uses: aws-actions/application-observability-for-aws@v1 with: bot_name: "@awsapm" cli_tool: "claude_code" # Step 2: Execute investigation with Claude Code - name: Run Claude Investigation id: claude uses: anthropics/claude-code-base-action@beta with: use_bedrock: "true" # Set to any Bedrock Model ID model: "us.anthropic.claude-sonnet-4-5-20250929-v1:0" prompt_file: ${{ steps.prepare.outputs.prompt_file }} mcp_config: ${{ steps.prepare.outputs.mcp_config_file }} allowed_tools: ${{ steps.prepare.outputs.allowed_tools }} # Step 3: Post results back to GitHub issue/PR (reuse the same action) - name: Post Investigation Results if: always() uses: aws-actions/application-observability-for-aws@v1 with: cli_tool: "claude_code" comment_id: ${{ steps.prepare.outputs.awsapm_comment_id }} output_file: ${{ steps.claude.outputs.execution_file }} output_status: ${{ steps.claude.outputs.conclusion }}Nota di configurazione:
-
Questo flusso di lavoro si attiva automaticamente quando
@awsapmviene menzionato in un problema o in un commento -
Il flusso di lavoro utilizza il
AWS_IAM_ROLE_ARNsegreto configurato nel passaggio precedente -
Aggiorna il parametro del modello nel passaggio 2 per specificare l'ID del modello Amazon Bedrock preferito
-
Puoi personalizzare il nome del bot (ad esempio
@awsapm-prod,@awsapm-staging) nel parametro bot_name per supportare ambienti diversi
-
Passaggio 3: Inizia a utilizzare l'azione
Una volta configurato il flusso di lavoro, @awsapm segnalalo qualsiasi GitHub problema per avviare un'indagine basata sull'intelligenza artificiale. L'azione analizzerà la tua richiesta, accederà ai dati di telemetria in tempo reale e fornirà consigli o implementerà automaticamente le correzioni.
Casi d'uso di esempio:
-
Analizza i problemi di prestazioni e pubblica e correggi:
@awsapm, can you help me investigate availability issues in my appointment service?
@awsapm, can you post a fix?
-
Abilita la strumentazione:
@awsapm, please enable Application Signals for lambda-audit-service and create a PR with the required changes. -
Interroga i dati di telemetria:
@awsapm, how many GenAI tokens have been consumed by my services in the past 24 hours?
Cosa succede dopo:
-
Il flusso di lavoro rileva la
@awsapmmenzione e avvia l'indagine -
L'agente AI accede ai dati di AWS telemetria in tempo reale tramite i server MCP configurati
-
L'agente analizza il problema e può:
-
Pubblica risultati e consigli direttamente nel numero
-
Crea una pull request con modifiche al codice (per strumentazione o correzioni)
-
-
Puoi rivedere i risultati e continuare la conversazione citando nuovamente @awsapm con domande di follow-up
Sicurezza
Questa azione dà priorità alla sicurezza con controlli di accesso rigorosi, AWS autenticazione basata su OIDC e protezioni integrate contro gli attacchi di pronta iniezione. Solo gli utenti con accesso in scrittura o superiore possono attivare l'azione e tutte le operazioni sono limitate al repository specifico.
Per informazioni dettagliate sulla sicurezza, tra cui:
-
Requisiti di autorizzazione e controllo degli accessi
-
AWS Autorizzazioni IAM e configurazione OIDC
-
Rischi e mitigazioni dell'iniezione tempestiva
-
Best practice di sicurezza
Consulta la documentazione sulla sicurezza
Configurazione
Autorizzazioni richieste
Il ruolo IAM assunto da GitHub Actions deve disporre delle seguenti autorizzazioni.
Nota: bedrock:InvokeModel bedrock:InvokeModelWithResponseStream sono obbligatori solo se utilizzi modelli Amazon Bedrock
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-signals:ListServices", "application-signals:GetService", "application-signals:ListServiceOperations", "application-signals:ListServiceLevelObjectives", "application-signals:GetServiceLevelObjective", "application-signals:ListAuditFindings", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:ListMetrics", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "logs:DescribeLogGroups", "logs:DescribeQueryDefinitions", "logs:ListLogAnomalyDetectors", "logs:ListAnomalies", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "logs:FilterLogEvents", "xray:GetTraceSummaries", "xray:GetTraceSegmentDestination", "xray:BatchGetTraces", "xray:ListRetrievedTraces", "xray:StartTraceRetrieval", "servicequotas:GetServiceQuota", "synthetics:GetCanary", "synthetics:GetCanaryRuns", "s3:GetObject", "s3:ListBucket", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:GetPolicy", "iam:GetPolicyVersion", "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": "*" } ] }
Documentazione
Per ulteriori informazioni, consulta:
-
CloudWatch Documentazione Application Signals: scopri le caratteristiche e le funzionalità di CloudWatch Application Signals
-
Osservabilità delle applicazioni per AWS Action Public Documentation
- Guide e tutorial dettagliati