

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Observabilité des applications au service de l'action AWS
<a name="Service-Application-Observability-for-AWS-GitHub-Action"></a>

L'application Observability for AWS GitHub Action fournit un flux de travail d'investigation de end-to-end l'observabilité des applications qui connecte votre code source et les données de télémétrie de production en direct à un agent AI. Il exploite CloudWatch MCPs et génère des invites personnalisées pour fournir le contexte dont les agents d'IA ont besoin pour résoudre des problèmes et appliquer des correctifs de code.

L'action installe et configure les [signaux d'CloudWatch application MCP Server et [CloudWatch MCP Server](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server)](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server), leur permettant d'accéder aux données de télémétrie en direct dans le contexte du dépannage. Vous pouvez utiliser votre modèle d'IA préféré, que ce soit par le biais de votre propre clé d'API, d'un modèle tiers ou d'Amazon Bedrock, pour étudier les performances des applications.

Pour commencer, mentionnez `@awsapm` dans vos GitHub problèmes le déclenchement de l'agent AI. L'agent résoudra les problèmes de production, mettra en œuvre des correctifs et améliorera la couverture d'observabilité en fonction des données réelles de votre application.

Cette action en elle-même n'entraîne aucun coût direct. Cependant, l'utilisation de cette action peut entraîner des frais pour les AWS services et l'utilisation du modèle d'IA. Reportez-vous à la [documentation sur les considérations relatives aux coûts](https://github.com/marketplace/actions/application-observability-for-aws#-cost-considerations) pour obtenir des informations détaillées sur les coûts potentiels.

## Démarrage
<a name="Service-Application-Observability-for-AWS-GitHub-Action-getting-started"></a>

Cette action configure les agents d'intelligence artificielle au sein de votre GitHub flux de travail en générant des AWS configurations MCP spécifiques et des instructions d'observabilité personnalisées. Il vous suffit de fournir le rôle IAM à assumer et un [identifiant de modèle Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) que vous souhaitez utiliser, ou un jeton d'API provenant de votre abonnement LLM existant. L'exemple ci-dessous illustre un modèle de flux de travail qui intègre cette action à celle d'[Anthropic claude-code-base-action](https://github.com/anthropics/claude-code-base-action) pour exécuter des enquêtes automatisées.

### Conditions préalables
<a name="Service-Application-Observability-for-AWS-GitHub-Action-prerequisites"></a>

Avant de commencer, assurez-vous que vous disposez des éléments suivants :
+ **GitHub Autorisations du référentiel** : accès en écriture ou supérieur au référentiel (nécessaire pour déclencher l'action)
+ AWS Rôle **IAM : rôle** IAM configuré avec OpenID Connect (OIDC) pour les actions avec des autorisations pour GitHub  :
  + CloudWatch Signaux d'application et CloudWatch accès
  + Accès au modèle Amazon Bedrock (si vous utilisez des modèles Bedrock)
+ **GitHub Jeton** : le flux de travail utilise automatiquement GITHUB\$1TOKEN avec les autorisations requises

### Étapes de configuration
<a name="Service-Application-Observability-for-AWS-GitHub-Action-setup-steps"></a>

#### Étape 1 : configurer les AWS informations d'identification
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step1"></a>

Cette action repose sur l'action [aws-actions/](https://github.com/aws-actions/configure-aws-credentials) pour configurer configure-aws-credentials l' AWS authentification dans votre environnement Actions. GitHub Nous vous recommandons d'utiliser OpenID Connect (OIDC) pour vous authentifier auprès de. AWS OIDC permet à vos flux de travail GitHub Actions d'accéder aux AWS ressources à l'aide d' AWS informations d'identification de courte durée, de sorte que vous n'avez pas à stocker des informations d'identification à long terme dans votre référentiel.

1. **Création d'un fournisseur d'identité IAM**

   Créez d'abord un fournisseur d'identité IAM qui approuve le point GitHub de terminaison OIDC dans la console de AWS gestion :

   1. Ouvrez la console IAM

   1. Cliquez sur **Fournisseurs d'identité** sous **Gestion des accès**

   1. Cliquez sur le bouton **Ajouter un fournisseur** pour ajouter un fournisseur GitHub d'identité s'il n'a pas encore été créé

   1. Sélectionnez le type de fournisseur d'identité **OpenID Connect**

   1. Entrez dans `https://token.actions.githubusercontent.com` la zone de saisie **de l'URL du fournisseur**

   1. Entrez `sts.amazonaws.com` pour la zone de saisie **Audience**

   1. Cliquez sur le bouton **Ajouter un fournisseur**

1. **Création d'une politique IAM**

   Créez une politique IAM avec les autorisations requises pour cette action. Consultez la [Autorisations nécessaires](#Service-Application-Observability-for-AWS-GitHub-Action-required-permissions) section ci-dessous pour plus de détails.

1. **Création d'un rôle IAM**

   Créez un rôle IAM (par exemple,`AWS_IAM_ROLE_ARN`) dans la console de AWS gestion avec le modèle de politique de confiance suivant. Cela permet aux GitHub référentiels autorisés d'assumer le rôle suivant :

   ```
   {
     "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>"
           }
         }
       }
     ]
   }
   ```

   Remplacez les espaces réservés suivants dans le modèle :
   + `<AWS_ACCOUNT_ID>`- Votre identifiant AWS de compte
   + `<GITHUB_ORG>`- Le nom GitHub de votre organisation
   + `<GITHUB_REPOSITORY>`- Le nom de votre dépôt
   + `<GITHUB_BRANCH>`- Le nom de votre agence (par exemple, principale)

1. **Joindre la politique IAM**

   Dans l'onglet Autorisations du rôle, joignez la politique IAM que vous avez créée à l'étape 2.

Pour plus d'informations sur la configuration d'OIDC avec AWS, consultez le guide de [démarrage rapide configure-aws-credentials OIDC](https://github.com/aws-actions/configure-aws-credentials/tree/main?tab=readme-ov-file#quick-start-oidc-recommended).

#### Étape 2 : Configuration des secrets et ajout d'un flux de travail
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step2"></a>

1. **Configurer les secrets du référentiel**

   Accédez à votre dépôt → Paramètres → Secrets et variables → Actions.
   + Créez un nouveau secret de référentiel nommé `AWS_IAM_ROLE_ARN` et définissez sa valeur sur l'ARN du rôle IAM que vous avez créé à l'étape 1.
   + (Facultatif) Créez une variable de référentiel nommée `AWS_REGION` pour spécifier votre AWS région (la valeur par défaut est `us-east-1` si elle n'est pas définie)

1. **Ajouter le fichier de flux de travail**

   Voici un exemple de flux de travail illustrant l'utilisation de cette action avec les modèles Amazon Bedrock. Créez un flux de travail d'investigation sur l'observabilité des applications à partir de ce modèle dans le répertoire `.github/workflows` de votre GitHub référentiel.

   ```
   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 }}
   ```

   **Remarque sur la configuration :**
   + Ce flux de travail se déclenche automatiquement lorsqu'il `@awsapm` est mentionné dans un problème ou un commentaire
   + Le flux de travail utilise le `AWS_IAM_ROLE_ARN` secret configuré à l'étape précédente
   + Mettez à jour le paramètre du modèle à l'étape 2 pour spécifier votre identifiant de modèle Amazon Bedrock préféré
   + Vous pouvez personnaliser le nom du bot (par exemple,`@awsapm-prod`,`@awsapm-staging`) dans le paramètre bot\$1name pour prendre en charge différents environnements

#### Étape 3 : commencez à utiliser l'action
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step3"></a>

Une fois le flux de travail configuré, mentionnez-le `@awsapm` dans n'importe quel GitHub problème pour déclencher une enquête basée sur l'IA. L'action analysera votre demande, accédera aux données de télémétrie en direct et fournira des recommandations ou mettra en œuvre des correctifs automatiquement.

**Exemples de cas d'utilisation :**

1. Étudiez les problèmes de performances, publiez et corrigez :

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

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

1. Activez l'instrumentation :

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

1. Interrogez les données de télémétrie :

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

**Que se passera-t-il ensuite :**

1. Le flux de travail détecte la `@awsapm` mention et déclenche l'enquête

1. L'agent AI accède à vos données de AWS télémétrie en direct via les serveurs MCP configurés

1. L'agent analyse le problème et :
   + Affiche les conclusions et les recommandations directement dans le numéro
   + Crée une pull request avec des modifications de code (pour l'instrumentation ou les corrections)

1. Vous pouvez consulter les résultats et poursuivre la conversation en mentionnant à nouveau @awsapm avec des questions de suivi

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

Cette action donne la priorité à la sécurité grâce à des contrôles d'accès stricts, à une AWS authentification basée sur l'OIDC et à des protections intégrées contre les attaques par injection rapide. Seuls les utilisateurs disposant d'un accès en écriture ou supérieur peuvent déclencher l'action, et toutes les opérations sont limitées au référentiel spécifique.

Pour obtenir des informations de sécurité détaillées, notamment :
+ Contrôles d'accès et exigences en matière d'autorisation
+ AWS Autorisations IAM et configuration OIDC
+ Risques liés à l'injection rapide et mesures d'atténuation
+ Bonnes pratiques de sécurité

Consultez la [documentation de sécurité](https://github.com/aws-actions/application-observability-for-aws/blob/main/docs/security.md).

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

### Autorisations nécessaires
<a name="Service-Application-Observability-for-AWS-GitHub-Action-required-permissions"></a>

Le rôle IAM assumé par GitHub Actions doit disposer des autorisations suivantes.

**Remarque** : `bedrock:InvokeModel` et ne `bedrock:InvokeModelWithResponseStream` sont obligatoires que si vous utilisez des modèles 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": "*"
        }
    ]
}
```

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

Pour plus d'informations, consultez :
+ [CloudWatch Documentation sur les signaux d'application](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Intro.html) - En savoir plus sur les fonctionnalités et les capacités des signaux d' CloudWatch application
+ [Observabilité des applications pour AWS Action Public Documentation](https://github.com/marketplace/actions/application-observability-for-aws) - Guides et didacticiels détaillés