Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pengamatan aplikasi untuk AWS Tindakan
Pengamatan Aplikasi untuk T AWS GitHub indakan menyediakan alur kerja investigasi pengamatan aplikasi end-to-end yang menghubungkan kode sumber dan data telemetri produksi langsung ke agen AI. Ini memanfaatkan CloudWatch MCP dan menghasilkan petunjuk khusus untuk memberikan konteks yang dibutuhkan agen AI untuk pemecahan masalah dan menerapkan perbaikan kode.
Tindakan mengatur dan mengonfigurasi Sinyal CloudWatch Aplikasi MCP Server
Untuk memulai, sebutkan @awsapm dalam GitHub masalah Anda untuk memicu agen AI. Agen akan memecahkan masalah produksi, menerapkan perbaikan, dan meningkatkan cakupan pengamatan 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 AWS konfigurasi MCP spesifik dan petunjuk pengamatan khusus. Anda hanya perlu memberikan peran IAM untuk diasumsikan dan ID Model Bedrock 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 claude-code-base- https://github.com/anthropics/claude-code-base-action
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
-
GitHub Izin Repositori: Tulis 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 Pengaturan
Langkah 1: Siapkan AWS Kredensial
Tindakan ini bergantung pada tindakan aws- actions/configure -aws-
-
Membuat Penyedia Identitas IAM
Pertama, buat Penyedia Identitas IAM yang mempercayai GitHub titik akhir 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 input URL Penyedia -
Masukkan
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 ini untuk detailnya.
-
Membuat Peran IAM
Buat peran IAM (misalnya,
AWS_IAM_ROLE_ARN) di AWS Management Console dengan template 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 dalam 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 OIDC configure-aws-.
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 dari peran IAM yang Anda buat di Langkah 1. -
(Opsional) Buat variabel repositori bernama
AWS_REGIONuntuk menentukan AWS wilayah Anda (defaultus-east-1jika tidak disetel)
-
-
Tambahkan File Alur Kerja
Berikut ini adalah contoh alur kerja yang menunjukkan penggunaan tindakan ini dengan model Amazon Bedrock. Buat alur kerja Investigasi Pengamatan Aplikasi dari template ini di direktori GitHub
.github/workflowsRepositori Anda.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 }}Catatan Konfigurasi:
-
Alur kerja ini dipic
@awsapmu secara otomatis ketika disebutkan 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 GitHub masalah apa pun untuk memicu peny AI-powered elidikan. Tindakan tersebut 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. -
Kueri data telemetri:
@awsapm, how many GenAI tokens have been consumed by my services in the past 24 hours?
Apa yang terjadi selanjutnya:
-
Alur kerja mendeteksi penye
@awsapmbutan 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, OIDC-based AWS otentikasi, dan perlindungan bawaan terhadap serangan injeksi 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 injeksi yang cepat dan mitigasi
-
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 Aplikasi - Pelajari tentang fitur dan kemampuan Sinyal CloudWatch Aplikasi
-
Pengamatan aplikasi untuk Dokumentasi AWS Publik Aksi
- Panduan terperinci dan tutorial