

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
<a name="Service-Application-Observability-for-AWS-GitHub-Action"></a>

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](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server)](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server), consentendo loro di accedere ai dati di telemetria in tempo reale come contesto di risoluzione dei problemi. Puoi utilizzare il tuo modello di intelligenza artificiale preferito, tramite la tua chiave API, un modello di terze parti o Amazon Bedrock, per le indagini sulle prestazioni delle applicazioni.

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](https://github.com/marketplace/actions/application-observability-for-aws#-cost-considerations) sui costi.

## Nozioni di base
<a name="Service-Application-Observability-for-AWS-GitHub-Action-getting-started"></a>

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](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) 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](https://github.com/anthropics/claude-code-base-action) per eseguire indagini automatizzate. claude-code-base-action

### Prerequisiti
<a name="Service-Application-Observability-for-AWS-GitHub-Action-prerequisites"></a>

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\$1TOKEN con le autorizzazioni richieste

### Fasi di configurazione
<a name="Service-Application-Observability-for-AWS-GitHub-Action-setup-steps"></a>

#### Fase 1: Configurazione AWS delle credenziali
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step1"></a>

Questa azione si basa sull'azione [aws-actions/](https://github.com/aws-actions/configure-aws-credentials) per configurare AWS l'autenticazione nel tuo configure-aws-credentials Actions Environment. GitHub Ti consigliamo di utilizzare OpenID Connect (OIDC) per l'autenticazione. AWS OIDC consente ai flussi di lavoro GitHub Actions di accedere alle AWS risorse utilizzando credenziali di breve durata, in modo da non dover archiviare AWS credenziali a lungo termine nel repository.

1. **Crea un IAM Identity Provider**

   Innanzitutto, crea un IAM Identity Provider che affidi l'endpoint OIDC GitHub dell'utente nella console di gestione: AWS 

   1. Apri la console IAM

   1. Fai clic su **Provider di identità** in **Gestione degli accessi**

   1. Fai clic sul pulsante **Aggiungi provider** per aggiungere un provider di GitHub identità se non è ancora stato creato

   1. Seleziona il tipo di provider di **identità OpenID Connect**

   1. Inserisci `https://token.actions.githubusercontent.com` la casella di immissione dell'**URL del provider**

   1. Inserisci `sts.amazonaws.com` la casella di input **Audience**

   1. Fai clic sul pulsante **Aggiungi fornitore**

1. **Crea una politica IAM**

   Crea una policy IAM con le autorizzazioni necessarie per questa azione. Consulta la [Autorizzazioni richieste](#Service-Application-Observability-for-AWS-GitHub-Action-required-permissions) sezione seguente per i dettagli.

1. **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)

1. **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](https://github.com/aws-actions/configure-aws-credentials/tree/main?tab=readme-ov-file#quick-start-oidc-recommended).

#### Fase 2: Configurazione dei segreti e aggiunta del flusso di lavoro
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step2"></a>

1. **Configura i segreti del repository**

   Vai al tuo repository → Impostazioni → Segreti e variabili → Azioni.
   + Crea un nuovo repository secret denominato `AWS_IAM_ROLE_ARN` e imposta il suo valore sull'ARN del ruolo IAM che hai creato nella fase 1.
   + (Facoltativo) Crea una variabile di repository denominata `AWS_REGION` per specificare la tua AWS regione (il valore predefinito è se non è impostata) `us-east-1`

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/workflows`

   ```
   name: 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 `@awsapm` viene menzionato in un problema o in un commento
   + Il flusso di lavoro utilizza il `AWS_IAM_ROLE_ARN` segreto 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\$1name per supportare ambienti diversi

#### Passaggio 3: Inizia a utilizzare l'azione
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step3"></a>

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:**

1. Analizza i problemi di prestazioni e pubblica e correggi:

   `@awsapm, can you help me investigate availability issues in my appointment service?`  
![\[alt text not found\]](http://docs.aws.amazon.com/it_it/AmazonCloudWatch/latest/monitoring/images/github-availability-issue-investigate.png)

   `@awsapm, can you post a fix?`  
![\[alt text not found\]](http://docs.aws.amazon.com/it_it/AmazonCloudWatch/latest/monitoring/images/github-availability-issue-pr-fix.png)

1. Abilita la strumentazione:

   `@awsapm, please enable Application Signals for lambda-audit-service and create a PR with the required changes.`

1. Interroga i dati di telemetria:

   `@awsapm, how many GenAI tokens have been consumed by my services in the past 24 hours?`

**Cosa succede dopo:**

1. Il flusso di lavoro rileva la `@awsapm` menzione e avvia l'indagine

1. L'agente AI accede ai dati di AWS telemetria in tempo reale tramite i server MCP configurati

1. 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)

1. Puoi rivedere i risultati e continuare la conversazione citando nuovamente @awsapm con domande di follow-up

## Sicurezza
<a name="Service-Application-Observability-for-AWS-GitHub-Action-security"></a>

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](https://github.com/aws-actions/application-observability-for-aws/blob/main/docs/security.md).

## Configurazione
<a name="Service-Application-Observability-for-AWS-GitHub-Action-configuration"></a>

### Autorizzazioni richieste
<a name="Service-Application-Observability-for-AWS-GitHub-Action-required-permissions"></a>

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
<a name="Service-Application-Observability-for-AWS-GitHub-Action-documentation"></a>

Per ulteriori informazioni, consulta:
+ [CloudWatch Documentazione Application Signals](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Intro.html): scopri le caratteristiche e le funzionalità di CloudWatch Application Signals
+ [Osservabilità delle applicazioni per AWS Action Public Documentation](https://github.com/marketplace/actions/application-observability-for-aws) - Guide e tutorial dettagliati