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à delle applicazioni per AWS Azione
Application Observability for AWS GitHub Action fornisce un flusso di lavoro end-to-end per l'analisi dell'osservabilità delle applicazioni che collega il codice sorgente e i dati di telemetria di produzione in tempo reale all'agente AI. Sfrutta gli CloudWatch MCP e genera prompt personalizzati per fornire il contesto di cui gli agenti di intelligenza artificiale hanno bisogno per la risoluzione dei problemi e l'applicazione delle correzioni del codice.
L'azione imposta e configura il server MCP e il server MCP di CloudWatch Application Signals, consentendo loro di accedere ai dati di
Per iniziare, indica @awsapm nei tuoi GitHub problemi per attivare l'agente AI. L'agente risolverà i problemi di produzione, implementerà le correzioni e migliorerà la copertura dell'osservabilità in base ai dati delle tue applicazioni in tempo reale.
Questa azione di per sé non comporta alcun costo diretto. Tuttavia, l'utilizzo di questa azione può comportare costi per AWS i servizi e l'utilizzo del modello di intelligenza artificiale. Per informazioni dettagliate sui costi potenziali, consulta la documentazione
Nozioni di base
Questa azione configura gli agenti di intelligenza artificiale 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 mostra un modello di flusso di lavoro che integra questa azione con claude-code-base-action di
Prerequisiti
Prima di iniziare, assicurati di disporre di:
-
GitHub Autorizzazioni del repository: accesso in scrittura o superiore al repository (necessario per attivare l'azione)
-
AWS Ruolo IAM: un ruolo IAM configurato con OpenID Connect (OIDC) per azioni con autorizzazioni per: GitHub
-
CloudWatch Segnali e accesso alle applicazioni CloudWatch
-
Accesso ai modelli 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 Credenziali
Questa azione si basa sull'azione aws- actions/configure -aws-credentials per configurare l' AWS autenticazione nel tuo ambiente di
-
Crea un IAM Identity Provider
Innanzitutto, crea un IAM Identity Provider che si GitHub fidi dell'endpoint OIDC nella console di gestione: AWS
-
Apertura della 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 policy IAM
Crea una policy IAM con le autorizzazioni necessarie per questa azione. Per i dettagli, consulta la Autorizzazioni richieste sezione seguente.
-
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 tua filiale (ad esempio, principale)
-
-
Allega la politica IAM
Nella scheda Autorizzazioni del ruolo, allega la policy IAM creata nel passaggio 2.
Per ulteriori informazioni sulla configurazione di OIDC con AWS, consulta la Guida rapida all'OIDC configure-aws-credentials.
Fase 2: Configurazione di Secrets e Add Workflow
-
Configurare i segreti del repository
Vai al tuo repository → Impostazioni → Segreti e variabili → Azioni.
-
Crea un nuovo segreto del repository denominato
AWS_IAM_ROLE_ARNe imposta il suo valore sull'ARN del ruolo IAM che hai creato nel passaggio 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 di 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 un flusso di lavoro di 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 sulla 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: iniziare a utilizzare l'azione
Dopo aver configurato il flusso di lavoro, @awsapm menziona qualsiasi GitHub problema per avviare un' AI-powered indagine. L'azione analizzerà la tua richiesta, accederà ai dati di telemetria in tempo reale e fornirà consigli o implementerà automaticamente le correzioni.
Esempi di casi d'uso:
-
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:
-
Pubblica risultati e raccomandazioni direttamente nel problema
-
Crea una pull request con modifiche al codice (per strumentazione o correzioni)
-
-
Puoi rivedere i risultati e continuare la conversazione menzionando nuovamente @awsapm con domande di follow-up
Sicurezza
Questa azione dà priorità alla sicurezza con rigorosi controlli di accesso, OIDC-based AWS autenticazione e protezioni integrate contro gli attacchi di prompt injection. 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:
-
Controllo degli accessi e requisiti di autorizzazione
-
AWS Autorizzazioni IAM e configurazione OIDC
-
Rischi e mitigazioni dell'iniezione tempestiva
-
Best practice di sicurezza
Consulta la documentazione https://github.com/aws-actions/application-observability-for-aws/blob/main/docs/security.md
Configurazione
Autorizzazioni richieste
Il ruolo IAM assunto da GitHub Actions deve avere le seguenti autorizzazioni.
Nota: bedrock:InvokeModel e 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 di Application Signals: scopri le caratteristiche e le funzionalità di CloudWatch Application Signals
-
Osservabilità delle applicazioni per AWS Action Public Documentation
- Guide e tutorial dettagliati