

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memulai AWS DevOps Agen menggunakan AWS CDK
<a name="getting-started-with-aws-devops-agent-getting-started-with-aws-devops-agent-using-aws-cdk"></a>

## Ikhtisar
<a name="overview"></a>

Panduan ini menunjukkan cara menggunakan AWS Cloud Development Kit (AWS CDK) untuk membuat dan menyebarkan sumber daya AWS DevOps Agen. Aplikasi AWS CDK mengotomatiskan pembuatan ruang agen, peran AWS Identity and Access Management (IAM) and Access Management (IAM), aplikasi operator, dan asosiasi akun. AWS AWS CloudFormation

Pendekatan AWS CDK mengotomatiskan langkah-langkah manual yang dijelaskan dalam [panduan orientasi CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html) dengan mendefinisikan semua sumber daya yang diperlukan sebagai infrastruktur sebagai kode.

AWS DevOps Agen tersedia di 6 AWS Wilayah berikut: AS Timur (Virginia N.), AS Barat (Oregon), Asia Pasifik (Sydney), Asia Pasifik (Tokyo), Eropa (Frankfurt), dan Eropa (Irlandia). Untuk informasi selengkapnya tentang Wilayah yang didukung, lihat[Wilayah yang Didukung](about-aws-devops-agent-supported-regions.md).

## Prasyarat
<a name="prerequisites"></a>

Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
+ AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi dengan kredensi yang sesuai
+ Node.js versi 18 atau yang lebih baru
+ AWS Antarmuka baris perintah CDK (CLI) diinstal secara global. Untuk menginstal AWS CDK CLI, jalankan perintah berikut:

```
npm install -g aws-cdk
```
+ Satu AWS akun untuk akun pemantauan (primer)
+ (Opsional) AWS Akun kedua jika Anda ingin mengatur pemantauan lintas akun

## Apa yang dicakup oleh panduan ini
<a name="what-this-guide-covers"></a>

Panduan ini dibagi menjadi dua bagian:
+ **Bagian 1** — Menyebarkan ruang agen dengan aplikasi operator dan AWS asosiasi di akun pemantauan Anda. Setelah Anda menyelesaikan bagian ini, agen dapat memantau masalah di akun itu.
+ **Bagian 2 (Opsional)** - Tambahkan AWS asosiasi sumber untuk akun layanan dan gunakan peran IAM lintas akun ke akun itu. Konfigurasi ini memungkinkan ruang agen untuk memantau sumber daya di seluruh akun.

## Sumber daya dibuat
<a name="resources-created"></a>

### Bagian 1: DevOpsAgentStack (akun pemantauan)
<a name="part-1-devopsagentstack-monitoring-account"></a>
+ **Peran IAM** (`DevOpsAgentRole-AgentSpace`) — Diasumsikan oleh layanan DevOps Agen untuk memantau akun. Termasuk kebijakan `AIDevOpsAgentAccessPolicy` terkelola dan kebijakan inline yang memungkinkan pembuatan peran terkait layanan Resource Explorer.
+ **Peran IAM** (`DevOpsAgentRole-WebappAdmin`) — Peran aplikasi operator dengan kebijakan `AIDevOpsOperatorAppAccessPolicy` terkelola untuk operasi agen.
+ **Ruang agen** (`MyCDKAgentSpace`) — Ruang agen pusat, dibuat dengan menggunakan `AWS::DevOpsAgent::AgentSpace` CloudFormation sumber daya. Termasuk konfigurasi aplikasi operator.
+ **Asosiasi** (AWS monitor) — Menautkan akun pemantauan ke ruang agen dengan menggunakan `AWS::DevOpsAgent::Association` CloudFormation sumber daya.
+ **Asosiasi** (AWS sumber) — (Opsional) Menautkan akun layanan ke ruang agen untuk pemantauan lintas akun.

### Bagian 2: ServiceStack (akun layanan, opsional)
<a name="part-2-servicestack-service-account-optional"></a>
+ **Peran IAM** (`DevOpsAgentRole-SecondaryAccount`) - Peran lintas akun dengan nama tetap. Dipercaya oleh ruang agen di akun pemantauan. Termasuk kebijakan `AIDevOpsAgentAccessPolicy` terkelola dan kebijakan inline yang memungkinkan pembuatan peran terkait layanan Resource Explorer.
+ **Fungsi Lambda** (`echo-service`) - Layanan contoh sederhana yang menggemakan peristiwa masukan kembali.

## Pengaturan
<a name="setup"></a>

### Langkah 1: Kloning repositori sampel
<a name="step-1-clone-the-sample-repository"></a>

Jalankan perintah berikut untuk mengkloning repositori dan ubah ke direktori proyek:

```
git clone https://github.com/aws-samples/sample-aws-devops-agent-cdk.git
cd sample-aws-devops-agent-cdk
```

### Langkah 2: Instal dependensi
<a name="step-2-install-dependencies"></a>

Jalankan perintah berikut untuk menginstal dependensi proyek:

```
npm install
```

## Bagian 1: Menyebarkan ruang agen
<a name="part-1-deploy-the-agent-space"></a>

Di bagian ini, Anda membuat ruang agen, peran IAM, aplikasi operator, dan AWS asosiasi di akun pemantauan Anda.

### Langkah 1: Konfigurasikan ID akun pemantauan
<a name="step-1-configure-the-monitoring-account-id"></a>

Buka `lib/constants.ts` dan atur ID akun pemantauan Anda:

Contoh berikut menunjukkan konstanta untuk memperbarui:

```
export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";
```

### Langkah 2: Bootstrap lingkungan AWS CDK
<a name="step-2-bootstrap-the-aws-cdk-environment"></a>

Jika Anda belum melakukan bootstrap AWS CDK di akun pemantauan Anda, jalankan perintah berikut:

```
cdk bootstrap aws://<MONITORING_ACCOUNT_ID>/<REGION> --profile monitoring
```

### Langkah 3: Bangun dan terapkan
<a name="step-3-build-and-deploy"></a>

Jalankan perintah berikut untuk membangun TypeScript kode dan menyebarkan tumpukan:

```
npm run build
cdk deploy DevOpsAgentStack --profile monitoring
```

### Langkah 4: Rekam output tumpukan
<a name="step-4-record-the-stack-outputs"></a>

Setelah penerapan selesai, AWS CDK mencetak output tumpukan. Catat nilai-nilai ini untuk digunakan nanti.

Contoh berikut menunjukkan output yang diharapkan:

```
Outputs:
DevOpsAgentStack.AgentSpaceArn = arn:aws:aidevops:<REGION>:123456789012:agentspace/abc123
DevOpsAgentStack.AgentSpaceRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-AgentSpace
DevOpsAgentStack.OperatorRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-WebappAdmin
DevOpsAgentStack.AssociationId = assoc-xyz
```

Jika Anda berencana untuk menyelesaikan Bagian 2, simpan `AgentSpaceArn` nilainya. Anda memerlukannya untuk mengkonfigurasi tumpukan akun layanan.

### Langkah 5: Verifikasi penyebaran
<a name="step-5-verify-the-deployment"></a>

Untuk memverifikasi bahwa ruang agen berhasil dibuat, jalankan perintah AWS CLI berikut:

```
aws devopsagent get-agent-space \
  --agent-space-id <AGENT_SPACE_ID> \
  --region <REGION>
```

Pada titik ini, ruang agen Anda digunakan dengan aplikasi operator diaktifkan dan akun pemantauan Anda terkait. Agen dapat memantau masalah di akun ini.

## Bagian 2 (Opsional): Tambahkan pemantauan lintas akun
<a name="part-2-optional-add-cross-account-monitoring"></a>

Di bagian ini, Anda memperpanjang pengaturan sehingga ruang agen Anda dapat memantau sumber daya di AWS akun kedua (akun layanan). Ini melibatkan dua tindakan:

1. Menambahkan AWS asosiasi sumber di DevOpsAgentStack yang menunjuk ke akun layanan.

1. Menyebarkan ServiceStack ke akun layanan dengan peran IAM yang mempercayai ruang agen.

**penting**  
**Anda harus menyelesaikan Bagian 1 sebelum melanjutkan. ServiceStack Membutuhkan `AgentSpaceArn` dari output DevOpsAgentStack penyebaran.

### Langkah 1: Konfigurasikan ID akun layanan
<a name="step-1-configure-the-service-account-id"></a>

Buka `lib/constants.ts` dan atur ID akun layanan Anda:

Contoh berikut menunjukkan konstanta untuk memperbarui:

```
export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";
```

 DevOpsAgentStack Membuat AWS asosiasi sumber dengan menggunakan ID akun ini. Jika Anda menerapkan DevOpsAgentStack sebelum menyetel nilai ini, gunakan ulang untuk membuat asosiasi:

Jalankan perintah berikut untuk menerapkan ulang:

```
npm run build
cdk deploy DevOpsAgentStack --profile monitoring
```

### Langkah 2: Atur ruang agen ARN
<a name="step-2-set-the-agent-space-arn"></a>

Salin `AgentSpaceArn` nilai dari DevOpsAgentStack output (Bagian 1, Langkah 4) dan atur di`lib/constants.ts`:

Contoh berikut menunjukkan konstanta untuk memperbarui:

```
export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";
```

 ServiceStack Menggunakan nilai ini untuk cakupan kebijakan kepercayaan pada peran akun sekunder. Hanya ServiceStack disintesis ketika nilai ini ditetapkan.

### Langkah 3: Bootstrap akun layanan
<a name="step-3-bootstrap-the-service-account"></a>

Jika Anda belum melakukan bootstrap AWS CDK di akun layanan Anda, jalankan perintah berikut:

```
cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service
```

### Langkah 4: Menyebarkan ServiceStack
<a name="step-4-deploy-the-servicestack"></a>

Jalankan perintah berikut untuk membangun dan menerapkan ServiceStack dengan menggunakan kredensional untuk akun layanan:

```
npm run build
cdk deploy ServiceStack --profile service
```

Ini menciptakan sumber daya berikut di akun layanan:
+ Peran IAM (`DevOpsAgentRole-SecondaryAccount`) yang mempercayai ruang agen di akun pemantauan
+ Sebuah echo Lambda function `echo-service` () sebagai contoh layanan

### Langkah 5: Verifikasi penyebaran
<a name="step-5-verify-the-deployment"></a>

Untuk mengonfirmasi bahwa fungsi Lambda berhasil diterapkan, jalankan perintah berikut untuk menguji layanan echo:

```
aws lambda invoke \
  --function-name echo-service \
  --payload '{"test": "hello world"}' \
  --profile service \
  response.json
cat response.json
```

## Pemecahan masalah
<a name="troubleshooting"></a>

Bagian ini menjelaskan masalah umum dan cara mengatasinya.

**CloudFormation jenis sumber daya tidak ditemukan**
+ Verifikasi bahwa Anda menerapkan di file. [Wilayah yang Didukung](about-aws-devops-agent-supported-regions.md)
+ Konfirmasikan bahwa AWS CLI Anda dikonfigurasi dengan izin yang sesuai.

**Pembuatan peran IAM gagal**
+ Verifikasi bahwa peran penerapan Anda memiliki izin untuk membuat peran IAM.
+ Periksa apakah ketentuan kebijakan kepercayaan sesuai dengan ID akun Anda.

**Penerapan lintas akun gagal dengan “Tidak dapat mengambil peran dalam akun target”**
+ Setiap tumpukan harus digunakan dengan kredensil untuk akun target. Gunakan `--profile` bendera untuk menentukan profil AWS CLI yang benar.
+ Verifikasi bahwa AWS CDK telah di-bootstrap di akun target.

**Penundaan propagasi IAM**
+ Perubahan peran IAM dapat memakan waktu beberapa menit untuk disebarkan. Jika pembuatan ruang agen gagal segera setelah pembuatan peran, tunggu beberapa menit dan gunakan kembali.

## Pembersihan
<a name="cleanup"></a>

Untuk menghapus semua sumber daya, hancurkan tumpukan dalam urutan terbalik.

Jalankan perintah berikut untuk menghancurkan tumpukan:

```
# If you deployed the ServiceStack, destroy it first
cdk destroy ServiceStack --profile service
# Then destroy the DevOpsAgentStack
cdk destroy DevOpsAgentStack --profile monitoring
```

**Peringatan:** Tindakan ini secara permanen menghapus ruang agen Anda dan semua data terkait. Tindakan ini tidak dapat dibatalkan. Pastikan Anda telah mencadangkan informasi penting apa pun sebelum melanjutkan.

## Pertimbangan keamanan
<a name="security-considerations"></a>
+ Aplikasi AWS CDK membuat peran IAM dengan kebijakan kepercayaan yang hanya memungkinkan kepala `aidevops.amazonaws.com` layanan untuk mengambilnya.
+ Kebijakan kepercayaan mencakup ketentuan yang membatasi akses ke AWS akun spesifik Anda dan ARN ruang agen.
+ Semua kebijakan mengikuti prinsip hak istimewa paling sedikit. Tinjau dan sesuaikan kebijakan IAM berdasarkan persyaratan keamanan organisasi Anda.
+ Peran lintas akun (`DevOpsAgentRole-SecondaryAccount`) menggunakan nama tetap dan dicakup ke ARN ruang agen tertentu.

## Langkah selanjutnya
<a name="next-steps"></a>

Setelah Anda menerapkan AWS DevOps Agen Anda dengan menggunakan AWS CDK:

1. Pelajari tentang berbagai kemampuan DevOps Agen dalam [Panduan Pengguna AWS DevOps Agen](https://docs.aws.amazon.com/devopsagent/latest/userguide/).

1. Pertimbangkan untuk mengintegrasikan penyebaran AWS CDK ke dalam CI/CD saluran pipa Anda untuk manajemen infrastruktur otomatis.

## Sumber daya tambahan
<a name="additional-resources"></a>
+ [AWS DevOps Panduan Pengguna Agen](https://docs.aws.amazon.com/devopsagent/latest/userguide/)
+ [Contoh repositori CDK](https://github.com/aws-samples/sample-aws-devops-agent-cdk) di situs web GitHub 
+ [Panduan orientasi CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html)