Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Observabilitas aplikasi untuk Aksi AWS
Application Observability for AWS GitHub Action menyediakan alur kerja investigasi observabilitas end-to-end aplikasi yang menghubungkan kode sumber Anda dan data telemetri produksi langsung ke agen AI. Ini memanfaatkan CloudWatch MCPs dan menghasilkan permintaan khusus untuk memberikan konteks yang dibutuhkan agen AI untuk pemecahan masalah dan menerapkan perbaikan kode.
Tindakan ini mengatur dan mengonfigurasi Server MCP Sinyal CloudWatch Aplikasi dan Server CloudWatch MCP
Untuk memulai, sebutkan @awsapm dalam GitHub masalah Anda untuk memicu agen AI. Agen akan memecahkan masalah produksi, menerapkan perbaikan, dan meningkatkan cakupan observabilitas berdasarkan data aplikasi langsung Anda.
Tindakan ini sendiri tidak menimbulkan biaya langsung. Namun, menggunakan tindakan ini dapat mengakibatkan biaya untuk AWS layanan dan penggunaan model AI. Silakan merujuk ke dokumentasi pertimbangan biaya
Memulai
Tindakan ini mengonfigurasi agen AI dalam GitHub alur kerja Anda dengan menghasilkan konfigurasi MCP AWS khusus dan permintaan pengamatan khusus. Anda hanya perlu memberikan peran IAM untuk diasumsikan dan ID Model Batuan Dasar yang ingin Anda gunakan, atau token API dari langganan LLM Anda yang ada. Contoh di bawah ini menunjukkan template alur kerja yang mengintegrasikan tindakan ini dengan Anthropic claude-code-base-action untuk menjalankan investigasi otomatis
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
-
GitHub Izin Repositori: Menulis akses atau lebih tinggi ke repositori (diperlukan untuk memicu tindakan)
-
AWS Peran IAM: Peran IAM yang dikonfigurasi dengan OpenID Connect (OIDC) untuk Tindakan dengan izin untuk: GitHub
-
CloudWatch Sinyal Aplikasi dan CloudWatch akses
-
Akses model Amazon Bedrock (jika menggunakan model Bedrock)
-
-
GitHub Token: Alur kerja secara otomatis menggunakan GITHUB_TOKEN dengan izin yang diperlukan
Langkah Penyiapan
Langkah 1: Siapkan AWS Kredensial
Tindakan ini bergantung pada tindakan aws-actions/
-
Buat Penyedia Identitas IAM
Pertama, buat Penyedia Identitas IAM yang mempercayai titik akhir GitHub OIDC di Konsol Manajemen: AWS
-
Buka konsol IAM
-
Klik Penyedia identitas di bawah Manajemen akses
-
Klik tombol Tambah penyedia untuk menambahkan penyedia GitHub Identitas jika belum dibuat
-
Pilih jenis penyedia Identitas OpenID Connect
-
Masukkan
https://token.actions.githubusercontent.comuntuk kotak masukan URL Penyedia -
Masuk
sts.amazonaws.com.rproxy.govskope.cauntuk kotak masukan Audiens -
Klik tombol Tambah penyedia
-
-
Buat Kebijakan IAM
Buat kebijakan IAM dengan izin yang diperlukan untuk tindakan ini. Lihat Izin yang Diperlukan bagian di bawah untuk detailnya.
-
Buat Peran IAM
Buat peran IAM (misalnya,
AWS_IAM_ROLE_ARN) di Konsol AWS Manajemen dengan templat kebijakan kepercayaan berikut. Ini memungkinkan GitHub repositori resmi untuk mengambil peran:{ "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>" } } } ] }Ganti placeholder berikut di template:
-
<AWS_ACCOUNT_ID>- ID AWS akun Anda -
<GITHUB_ORG>- Nama GitHub organisasi Anda -
<GITHUB_REPOSITORY>- Nama repositori Anda -
<GITHUB_BRANCH>- Nama cabang Anda (misalnya, utama)
-
-
Lampirkan Kebijakan IAM
Di tab Izin peran, lampirkan kebijakan IAM yang Anda buat di langkah 2.
Untuk informasi selengkapnya tentang mengonfigurasi OIDC dengan AWS, lihat Panduan Memulai Cepat configure-aws-credentials OIDC
Langkah 2: Konfigurasikan Rahasia dan Tambahkan Alur Kerja
-
Konfigurasikan Rahasia Repositori
Buka repositori Anda → Pengaturan → Rahasia dan variabel → Tindakan.
-
Buat rahasia repositori baru bernama
AWS_IAM_ROLE_ARNdan atur nilainya ke ARN peran IAM yang Anda buat di Langkah 1. -
(Opsional) Buat variabel repositori bernama
AWS_REGIONuntuk menentukan AWS wilayah Anda (default jika tidak disetel)us-east-1
-
-
Tambahkan File Alur Kerja
Berikut ini adalah contoh alur kerja yang menunjukkan penggunaan tindakan ini dengan model Amazon Bedrock. Buat alur kerja Investigasi Observabilitas Aplikasi dari template ini di direktori GitHub Repositori Anda.
.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 }}Catatan Konfigurasi:
-
Alur kerja ini terpicu secara otomatis ketika
@awsapmdisebutkan dalam masalah atau komentar -
Alur kerja menggunakan
AWS_IAM_ROLE_ARNrahasia yang dikonfigurasi pada langkah sebelumnya -
Perbarui parameter model di Langkah 2 untuk menentukan ID model Amazon Bedrock pilihan Anda
-
Anda dapat menyesuaikan nama bot (misalnya,
@awsapm-prod,@awsapm-staging) di parameter bot_name untuk mendukung lingkungan yang berbeda
-
Langkah 3: Mulai Menggunakan Tindakan
Setelah alur kerja dikonfigurasi, sebutkan @awsapm dalam GitHub masalah apa pun untuk memicu penyelidikan yang didukung AI. Tindakan ini akan menganalisis permintaan Anda, mengakses data telemetri langsung, dan memberikan rekomendasi atau menerapkan perbaikan secara otomatis.
Contoh Kasus Penggunaan:
-
Selidiki masalah kinerja dan posting dan perbaiki:
@awsapm, can you help me investigate availability issues in my appointment service?
@awsapm, can you post a fix?
-
Aktifkan instrumentasi:
@awsapm, please enable Application Signals for lambda-audit-service and create a PR with the required changes. -
Data telemetri kueri:
@awsapm, how many GenAI tokens have been consumed by my services in the past 24 hours?
Apa yang Terjadi Selanjutnya:
-
Alur kerja mendeteksi
@awsapmpenyebutan dan memicu penyelidikan -
Agen AI mengakses data AWS telemetri langsung Anda melalui server MCP yang dikonfigurasi
-
Agen menganalisis masalah dan:
-
Memposting temuan dan rekomendasi langsung dalam masalah
-
Membuat permintaan tarik dengan perubahan kode (untuk instrumentasi atau perbaikan)
-
-
Anda dapat meninjau hasilnya dan melanjutkan percakapan dengan menyebutkan @awsapm lagi dengan pertanyaan lanjutan
Keamanan
Tindakan ini memprioritaskan keamanan dengan kontrol akses yang ketat, AWS otentikasi berbasis OIDC, dan perlindungan bawaan terhadap serangan injeksi yang cepat. Hanya pengguna dengan akses tulis atau lebih tinggi yang dapat memicu tindakan, dan semua operasi dicakup ke repositori tertentu.
Untuk informasi keamanan terperinci, termasuk:
-
Kontrol akses dan persyaratan izin
-
AWS Izin IAM dan konfigurasi OIDC
-
Risiko dan mitigasi injeksi yang cepat
-
Praktik terbaik keamanan
Lihat Dokumentasi Keamanan
Konfigurasi
Izin yang Diperlukan
Peran IAM yang diasumsikan oleh GitHub Tindakan harus memiliki izin berikut.
Catatan: bedrock:InvokeModel dan hanya bedrock:InvokeModelWithResponseStream diperlukan jika Anda menggunakan model 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": "*" } ] }
Dokumentasi
Untuk informasi lebih lanjut, lihat:
-
CloudWatch Dokumentasi Sinyal CloudWatch Aplikasi - Pelajari tentang fitur dan kemampuan Sinyal Aplikasi
-
Observabilitas aplikasi untuk Dokumentasi Publik AWS Aksi
- Panduan dan tutorial terperinci