Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beobachtbarkeit von Anwendungen für AWS Action
Application Observability for AWS GitHub Action bietet einen umfassenden Workflow zur Untersuchung der Anwendungsbeobachtbarkeit, der Ihren Quellcode und Ihre Live-Produktionstelemetriedaten mit dem KI-Agenten verbindet. Er nutzt CloudWatch MCPs und generiert benutzerdefinierte Eingabeaufforderungen, um den Kontext bereitzustellen, den KI-Agenten für die Problembehandlung und das Anwenden von Code-Fixes benötigen.
Die Aktion richtet den MCP Server und den MCP Server von CloudWatch Application Signals ein
Geben Sie zunächst @awsapm in Ihren GitHub Problemen an, wie der KI-Agent ausgelöst werden soll. Der Agent behebt Produktionsprobleme, implementiert Korrekturen und verbessert die Observability-Abdeckung auf der Grundlage Ihrer Live-Anwendungsdaten.
Diese Aktion selbst verursacht keine direkten Kosten. Die Verwendung dieser Aktion kann jedoch zu Gebühren für AWS Dienste und die Nutzung des KI-Modells führen. Detaillierte Informationen zu potenziellen Kosten finden Sie in der Dokumentation
Erste Schritte
Diese Aktion konfiguriert AI-Agenten in Ihrem GitHub Workflow, indem AWS spezifische MCP-Konfigurationen und benutzerdefinierte Observability-Prompts generiert werden. Sie müssen lediglich die IAM-Rolle angeben, die Sie übernehmen möchten, und eine Bedrock-Model-ID, die Sie verwenden möchten, oder ein API-Token aus Ihrem bestehenden LLM-Abonnement. Das folgende Beispiel zeigt eine Workflow-Vorlage, die diese Aktion in die Claude-Code-Base-Aktion von
Voraussetzungen
Stellen Sie vor dem Beginn sicher, dass Sie über das Folgende verfügen:
-
GitHub Repository-Berechtigungen: Schreibzugriff oder höher auf das Repository (erforderlich, um die Aktion auszulösen)
-
AWS IAM-Rolle: Eine mit OpenID Connect (OIDC) konfigurierte IAM-Rolle für Aktionen mit Berechtigungen für GitHub :
-
CloudWatch Anwendungssignale und Zugriff CloudWatch
-
Zugriff auf das Amazon Bedrock-Modell (bei Verwendung von Bedrock-Modellen)
-
-
GitHub Token: Der Workflow verwendet automatisch GITHUB_TOKEN mit den erforderlichen Berechtigungen
Schritte zur Einrichtung
Schritt 1: Einrichten von AWS Anmeldeinformationen
Diese Aktion basiert auf der Aktion aws- actions/configure -aws-credentials, um die AWS Authentifizierung in Ihrer
-
Erstellen Sie einen IAM Identity Provider
Erstellen Sie zunächst in der Management Console einen IAM-Identitätsanbieter, GitHub der dem OIDC-Endpunkt vertraut: AWS
-
Öffnen Sie die IAM-Konsole.
-
Klicken Sie unter Zugriffsverwaltung auf Identitätsanbieter
-
Klicken Sie auf die Schaltfläche Anbieter hinzufügen, um den GitHub Identitätsanbieter hinzuzufügen, falls er noch nicht erstellt wurde
-
Wählen Sie den OpenID Connect-Typ des Identitätsanbieters
-
Geben Sie
https://token.actions.githubusercontent.comfür das Eingabefeld Provider-URL ein -
Geben Sie
sts.amazonaws.com.rproxy.govskope.cafür das Eingabefeld Zielgruppe ein -
Klicken Sie auf die Schaltfläche Anbieter hinzufügen
-
-
Erstellen Sie eine IAM-Richtlinie
Erstellen Sie eine IAM-Richtlinie mit den erforderlichen Berechtigungen für diese Aktion. Einzelheiten finden Sie im Erforderliche Berechtigungen Abschnitt unten.
-
Erstellen Sie eine IAM-Rolle
Erstellen Sie in der AWS Management Console eine IAM-Rolle (z. B.
AWS_IAM_ROLE_ARN) mit der folgenden Vorlage für eine Vertrauensrichtlinie. Dadurch können autorisierte GitHub Repositorys die Rolle übernehmen:{ "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>" } } } ] }Ersetzen Sie die folgenden Platzhalter in der Vorlage:
-
<AWS_ACCOUNT_ID>- Ihre AWS Konto-ID -
<GITHUB_ORG>- Der Name Ihrer GitHub Organisation -
<GITHUB_REPOSITORY>- Ihr Repository-Name -
<GITHUB_BRANCH>- Ihr Filialname (zum Beispiel main)
-
-
Hängen Sie die IAM-Richtlinie an
Hängen Sie auf der Registerkarte „Berechtigungen“ der Rolle die IAM-Richtlinie an, die Sie in Schritt 2 erstellt haben.
Weitere Informationen zur Konfiguration von OIDC mit finden Sie in der AWS OIDC-Schnellstartanleitung für configure-aws-credentials.
Schritt 2: Secrets konfigurieren und Workflow hinzufügen
-
Konfigurieren Sie Repository-Geheimnisse
Gehe zu deinem Repository → Einstellungen → Geheimnisse und Variablen → Aktionen.
-
Erstellen Sie ein neues Repository-Geheimnis mit dem Namen
AWS_IAM_ROLE_ARNund setzen Sie seinen Wert auf den ARN der IAM-Rolle, die Sie in Schritt 1 erstellt haben. -
(Optional) Erstellen Sie eine Repository-Variable
AWS_REGION, die nach Ihrer AWS Region benannt ist (die Standardeinstellung ist,us-east-1wenn sie nicht gesetzt ist)
-
-
Fügen Sie die Workflow-Datei hinzu
Im Folgenden finden Sie ein Beispiel für einen Workflow, der die Verwendung dieser Aktion mit Amazon Bedrock-Modellen veranschaulicht. Erstellen Sie einen Application Observability Investigation-Workflow anhand dieser Vorlage in Ihrem GitHub Repository-Verzeichnis.
.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 }}Hinweis zur Konfiguration:
-
Dieser Workflow
@awsapmwird automatisch ausgelöst, wenn er in einem Problem oder Kommentar erwähnt wird -
Der Workflow verwendet das im vorherigen Schritt konfigurierte
AWS_IAM_ROLE_ARNGeheimnis -
Aktualisieren Sie den Modellparameter in Schritt 2, um Ihre bevorzugte Amazon Bedrock-Modell-ID anzugeben
-
Sie können den Bot-Namen (z. B.
@awsapm-prod,@awsapm-staging) im Parameter bot_name anpassen, um verschiedene Umgebungen zu unterstützen
-
Schritt 3: Fangen Sie an, die Aktion zu verwenden
Nachdem der Workflow konfiguriert ist, geben Sie @awsapm in jedem GitHub Problem eine Erwähnung ein, um eine AI-powered Untersuchung auszulösen. Die Aktion analysiert Ihre Anfrage, greift auf Live-Telemetriedaten zu und gibt Empfehlungen oder implementiert automatisch Korrekturen.
Beispiele für Anwendungsfälle:
-
Untersuchen Sie Leistungsprobleme und posten und beheben Sie:
@awsapm, can you help me investigate availability issues in my appointment service?
@awsapm, can you post a fix?
-
Instrumentierung aktivieren:
@awsapm, please enable Application Signals for lambda-audit-service and create a PR with the required changes. -
Telemetriedaten abfragen:
@awsapm, how many GenAI tokens have been consumed by my services in the past 24 hours?
Was passiert als Nächstes:
-
Der Workflow erkennt die
@awsapmErwähnung und löst die Untersuchung aus -
Der AI-Agent greift über die konfigurierten MCP-Server auf Ihre AWS Live-Telemetriedaten zu
-
Der Agent analysiert das Problem und entweder:
-
Veröffentlicht Ergebnisse und Empfehlungen direkt in der Ausgabe
-
Erstellt einen Pull-Request mit Codeänderungen (für Instrumentierung oder Korrekturen)
-
-
Du kannst die Ergebnisse überprüfen und das Gespräch fortsetzen, indem du @awsapm bei weiteren Fragen erneut erwähnst
Sicherheit
Bei dieser Aktion wird der Sicherheit durch strenge Zugriffskontrollen, OIDC-based AWS Authentifizierung und integrierten Schutz vor Prompt-Injection-Angriffen Priorität eingeräumt. Nur Benutzer mit Schreibzugriff oder höher können die Aktion auslösen, und alle Operationen sind auf das spezifische Repository beschränkt.
Für detaillierte Sicherheitsinformationen, einschließlich:
-
Zugriffskontrolle und Genehmigungsanforderungen
-
AWS IAM-Berechtigungen und OIDC-Konfiguration
-
Sofortige Injection-Risiken und Abhilfemaßnahmen
-
Bewährte Methoden für die Gewährleistung der Sicherheit
Weitere Informationen finden Sie in der Sicherheitsdokumentation
Konfiguration
Erforderliche Berechtigungen
Die von GitHub Actions übernommene IAM-Rolle muss über die folgenden Berechtigungen verfügen.
Hinweis: bedrock:InvokeModel und bedrock:InvokeModelWithResponseStream sind nur erforderlich, wenn Sie Amazon Bedrock-Modelle verwenden
{ "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": "*" } ] }
Dokumentation
Weitere Informationen finden Sie unter:
-
CloudWatch Dokumentation zu Anwendungssignalen — Erfahren Sie mehr über CloudWatch die Funktionen und Fähigkeiten von Application Signals
-
Öffentliche Dokumentation zu Application Observability for AWS Action
— Detaillierte Anleitungen und Tutorials