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
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
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
Démarrage
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 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
Conditions préalables
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_TOKEN avec les autorisations requises
Étapes de configuration
Étape 1 : configurer les AWS informations d'identification
Cette action repose sur l'action aws-actions/
-
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 :
-
Ouvrez la console IAM
-
Cliquez sur Fournisseurs d'identité sous Gestion des accès
-
Cliquez sur le bouton Ajouter un fournisseur pour ajouter un fournisseur GitHub d'identité s'il n'a pas encore été créé
-
Sélectionnez le type de fournisseur d'identité OpenID Connect
-
Entrez dans
https://token.actions.githubusercontent.comla zone de saisie de l'URL du fournisseur -
Entrez
sts.amazonaws.com.rproxy.govskope.capour la zone de saisie Audience -
Cliquez sur le bouton Ajouter un fournisseur
-
-
Création d'une politique IAM
Créez une politique IAM avec les autorisations requises pour cette action. Consultez la Autorisations nécessaires section ci-dessous pour plus de détails.
-
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)
-
-
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
Étape 2 : Configuration des secrets et ajout d'un flux de travail
-
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_ARNet 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_REGIONpour spécifier votre AWS région (la valeur par défaut estus-east-1si elle n'est pas définie)
-
-
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/workflowsde 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
@awsapmest mentionné dans un problème ou un commentaire -
Le flux de travail utilise le
AWS_IAM_ROLE_ARNsecret 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_name pour prendre en charge différents environnements
-
Étape 3 : commencez à utiliser l'action
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 :
-
Étudiez les problèmes de performances, publiez et corrigez :
@awsapm, can you help me investigate availability issues in my appointment service?
@awsapm, can you post a fix?
-
Activez l'instrumentation :
@awsapm, please enable Application Signals for lambda-audit-service and create a PR with the required changes. -
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 :
-
Le flux de travail détecte la
@awsapmmention et déclenche l'enquête -
L'agent AI accède à vos données de AWS télémétrie en direct via les serveurs MCP configurés
-
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)
-
-
Vous pouvez consulter les résultats et poursuivre la conversation en mentionnant à nouveau @awsapm avec des questions de suivi
Sécurité
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é
Configuration
Autorisations nécessaires
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
Pour plus d'informations, consultez :
-
CloudWatch Documentation sur les signaux d'application - En savoir plus sur les fonctionnalités et les capacités des signaux d' CloudWatch application
-
Observabilité des applications pour AWS Action Public Documentation
- Guides et didacticiels détaillés