

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
<a name="Service-Application-Observability-for-AWS-GitHub-Action"></a>

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](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server)](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server), memungkinkan mereka mengakses data telemetri langsung sebagai konteks pemecahan masalah. Anda dapat menggunakan model AI pilihan Anda - baik melalui kunci API Anda sendiri, model pihak ketiga, atau Amazon Bedrock - untuk penyelidikan kinerja aplikasi.

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](https://github.com/marketplace/actions/application-observability-for-aws#-cost-considerations) untuk informasi rinci tentang potensi biaya.

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

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](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) 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](https://github.com/anthropics/claude-code-base-action).

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

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\$1TOKEN dengan izin yang diperlukan

### Langkah Penyiapan
<a name="Service-Application-Observability-for-AWS-GitHub-Action-setup-steps"></a>

#### Langkah 1: Siapkan AWS Kredensial
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step1"></a>

Tindakan ini bergantung pada tindakan [aws-actions/](https://github.com/aws-actions/configure-aws-credentials) untuk menyiapkan AWS autentikasi di Lingkungan configure-aws-credentials Tindakan Anda. GitHub Kami merekomendasikan menggunakan OpenID Connect (OIDC) untuk mengautentikasi dengan. AWS OIDC memungkinkan alur kerja GitHub Actions untuk mengakses AWS sumber daya menggunakan kredensyal berumur pendek sehingga Anda tidak perlu menyimpan AWS kredensyal jangka panjang di repositori Anda.

1. **Buat Penyedia Identitas IAM**

   Pertama, buat Penyedia Identitas IAM yang mempercayai titik akhir GitHub OIDC di Konsol Manajemen: AWS 

   1. Buka konsol IAM

   1. Klik **Penyedia identitas** di bawah **Manajemen akses**

   1. Klik tombol **Tambah penyedia** untuk menambahkan penyedia GitHub Identitas jika belum dibuat

   1. Pilih jenis penyedia **Identitas OpenID Connect**

   1. Masukkan `https://token.actions.githubusercontent.com` untuk kotak masukan **URL Penyedia**

   1. Masuk `sts.amazonaws.com` untuk kotak masukan **Audiens**

   1. Klik tombol **Tambah penyedia**

1. **Buat Kebijakan IAM**

   Buat kebijakan IAM dengan izin yang diperlukan untuk tindakan ini. Lihat [Izin yang Diperlukan](#Service-Application-Observability-for-AWS-GitHub-Action-required-permissions) bagian di bawah untuk detailnya.

1. **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)

1. **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](https://github.com/aws-actions/configure-aws-credentials/tree/main?tab=readme-ov-file#quick-start-oidc-recommended).

#### Langkah 2: Konfigurasikan Rahasia dan Tambahkan Alur Kerja
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step2"></a>

1. **Konfigurasikan Rahasia Repositori**

   Buka repositori Anda → Pengaturan → Rahasia dan variabel → Tindakan.
   + Buat rahasia repositori baru bernama `AWS_IAM_ROLE_ARN` dan atur nilainya ke ARN peran IAM yang Anda buat di Langkah 1.
   + (Opsional) Buat variabel repositori bernama `AWS_REGION` untuk menentukan AWS wilayah Anda (default jika tidak disetel) `us-east-1`

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/workflows`

   ```
   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 terpicu secara otomatis ketika `@awsapm` disebutkan dalam masalah atau komentar
   + Alur kerja menggunakan `AWS_IAM_ROLE_ARN` rahasia 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\$1name untuk mendukung lingkungan yang berbeda

#### Langkah 3: Mulai Menggunakan Tindakan
<a name="Service-Application-Observability-for-AWS-GitHub-Action-step3"></a>

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:**

1. Selidiki masalah kinerja dan posting dan perbaiki:

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

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

1. Aktifkan instrumentasi:

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

1. Data telemetri kueri:

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

**Apa yang Terjadi Selanjutnya:**

1. Alur kerja mendeteksi `@awsapm` penyebutan dan memicu penyelidikan

1. Agen AI mengakses data AWS telemetri langsung Anda melalui server MCP yang dikonfigurasi

1. Agen menganalisis masalah dan:
   + Memposting temuan dan rekomendasi langsung dalam masalah
   + Membuat permintaan tarik dengan perubahan kode (untuk instrumentasi atau perbaikan)

1. Anda dapat meninjau hasilnya dan melanjutkan percakapan dengan menyebutkan @awsapm lagi dengan pertanyaan lanjutan

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

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](https://github.com/aws-actions/application-observability-for-aws/blob/main/docs/security.md).

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

### Izin yang Diperlukan
<a name="Service-Application-Observability-for-AWS-GitHub-Action-required-permissions"></a>

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
<a name="Service-Application-Observability-for-AWS-GitHub-Action-documentation"></a>

Untuk informasi lebih lanjut, lihat:
+ [CloudWatch Dokumentasi Sinyal CloudWatch Aplikasi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Intro.html) - Pelajari tentang fitur dan kemampuan Sinyal Aplikasi
+ [Observabilitas aplikasi untuk Dokumentasi Publik AWS Aksi](https://github.com/marketplace/actions/application-observability-for-aws) - Panduan dan tutorial terperinci