

• AWS Systems Manager CloudWatch Dasbor tidak akan lagi tersedia setelah 30 April 2026. Pelanggan dapat terus menggunakan CloudWatch konsol Amazon untuk melihat, membuat, dan mengelola CloudWatch dasbor Amazon mereka, seperti yang mereka lakukan hari ini. Untuk informasi selengkapnya, lihat [dokumentasi CloudWatch Dasbor Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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

# Menjalankan skrip dari GitHub
<a name="integration-remote-scripts"></a>

Topik ini menjelaskan cara menggunakan dokumen Systems Manager (dokumen SSM) yang telah ditentukan sebelumnya `AWS-RunRemoteScript` untuk mengunduh skripGitHub, termasuk Ansible Playbooks, Python, Ruby, dan skrip. PowerShell Dengan menggunakan dokumen SSM ini, Anda tidak perlu lagi mem-port skrip secara manual ke Amazon Elastic Compute Cloud (Amazon EC2) atau membungkusnya dalam dokumen SSM. AWS Systems Manager integrasi dengan GitHub mempromosikan *infrastruktur sebagai kode*, yang mengurangi waktu yang diperlukan untuk mengelola node sambil menstandarisasi konfigurasi di seluruh armada Anda. 

Anda juga dapat membuat dokumen SSM kustom yang memungkinkan Anda untuk mengunduh dan menjalankan skrip atau dokumen SSM lainnya dari lokasi berjarak jauh. Untuk informasi selengkapnya, lihat [Membuat dokumen gabungan](documents-creating-content.md#documents-creating-composite).

Anda juga dapat mengunduh direktori yang mencakup beberapa skrip. Ketika Anda menjalankan skrip utama di direktori, Systems Manager juga menjalankan skrip yang direferensikan yang disertakan dalam direktori. 

Perhatikan detail penting berikut tentang menjalankan skrip dariGitHub.
+ Systems Manager tidak memverifikasi bahwa skrip Anda mampu berjalan pada node. Sebelum Anda mengunduh dan menjalankan skrip, verifikasi bahwa perangkat lunak yang diperlukan diinstal pada node. Atau, Anda dapat membuat dokumen komposit yang menginstal perangkat lunak dengan menggunakan salah satu Run Command atauState Manager, alat di AWS Systems Manager, dan kemudian mengunduh dan menjalankan skrip.
+ Anda bertanggung jawab untuk memastikan bahwa semua GitHub persyaratan terpenuhi. Ini termasuk pembaruan token akses Anda, sesuai kebutuhan. Pastikan Anda tidak melampaui jumlah permintaan yang terautentikasi atau tidak terautentikasi. Untuk informasi lebih lanjut, lihat GitHub dokumentasi.
+ GitHub Enterpriserepositori tidak didukung.

**Topics**
+ [Jalankan Ansible Playbooks dari GitHub](integration-github-ansible.md)
+ [Jalankan skrip Python dari GitHub](integration-github-python.md)

# Jalankan Ansible Playbooks dari GitHub
<a name="integration-github-ansible"></a>

Bagian ini mencakup prosedur untuk membantu Anda menjalankan Ansible Playbook GitHub dengan menggunakan konsol atau AWS Command Line Interface (AWS CLI).

**Sebelum Anda mulai**  
Jika Anda berencana untuk menjalankan skrip yang disimpan dalam GitHub repositori pribadi, buat AWS Systems Manager `SecureString` parameter untuk token akses GitHub keamanan Anda. Anda tidak dapat mengakses skrip di GitHub repositori pribadi dengan meneruskan token Anda secara manual melalui SSH. Token akses harus diteruskan sebagai parameter `SecureString` Systems Manager. Untuk informasi lebih lanjut tentang pembuatan parameter `SecureString`, lihat [Membuat Parameter Store parameter di Systems Manager](sysman-paramstore-su-create.md).

## Jalankan Ansible Playbook dari GitHub (konsol)
<a name="integration-github-ansible-console"></a>

**Jalankan Ansible Playbook dari GitHub**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Run Command**.

1. Pilih **Run Command**.

1. Di daftar **Dokumen perintah**, pilih **`AWS-RunRemoteScript`**.

1. Di **Parameter perintah**, lakukan hal berikut:
   + Di **Jenis Sumber**, pilih **GitHub**. 
   + Di kotak **Info sumber**, masukkan informasi yang diperlukan untuk mengakses sumber dalam format berikut.

     ```
     {
       "owner": "owner_name",
       "repository": "repository_name", 
       "getOptions": "branch:branch_name",
       "path": "path_to_scripts_or_directory",
       "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}" 
     }
     ```

     Contoh ini mengunduh sebuah file bernama `webserver.yml`. 

     ```
     {
         "owner": "TestUser1",
         "repository": "GitHubPrivateTest",
         "getOptions": "branch:myBranch",
         "path": "scripts/webserver.yml",
         "tokenInfo": "{{ssm-secure:mySecureStringParameter}}"
     }
     ```
**catatan**  
`"branch"` diperlukan hanya jika dokumen SSM Anda disimpan di cabang selain `master`.  
Untuk menggunakan versi skrip yang ada di *melakukan* tertentu di repositori anda, gunakan `commitID` dengan `getOptions` daripada `branch`. Sebagai contoh:  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + Di bidang **Baris Perintah**, masukkan parameter untuk eksekusi skrip. Inilah contohnya.

     **ansible-playbook -i “localhost,” --check -c local webserver.yml**
   + (Opsional) Di bidang **Direktori Kerja**, masukkan nama direktori pada node tempat Anda ingin mengunduh dan menjalankan skrip.
   + (Opsional) Di **Batas Waktu Eksekusi**, tentukan jumlah detik bagi sistem untuk menunggu sebelum menggagalkan eksekusi perintah skrip. 

1. Di bagian **Target**, pilih node terkelola tempat Anda ingin menjalankan operasi ini dengan menentukan tag, memilih instance atau perangkat tepi secara manual, atau menentukan grup sumber daya.
**Tip**  
Jika node terkelola yang Anda harapkan tidak terdaftar, lihat [Memecahkan masalah ketersediaan node terkelola](fleet-manager-troubleshooting-managed-nodes.md) untuk tips pemecahan masalah.

1. Untuk **Parameter lainnya**:
   + Untuk **Komentar**, ketik informasi tentang perintah ini.
   + Untuk **Waktu habis (detik)**, tentukan jumlah detik untuk menunggu sistem sebelum gagal menjalankan perintah keseluruhan. 

1. Untuk **Pengendalian rate**:
   + Untuk **Konkurensi**, tentukan jumlah atau persentase dari simpul terkelola untuk menjalankan perintah pada saat yang sama.
**catatan**  
Jika Anda memilih target dengan menentukan tag yang diterapkan pada node terkelola atau dengan menentukan grup AWS sumber daya, dan Anda tidak yakin berapa banyak node terkelola yang ditargetkan, maka batasi jumlah target yang dapat menjalankan dokumen pada saat yang sama dengan menentukan persentase.
   + Untuk **Ambang kesalahan**, tentukan kapan harus berhenti menjalankan perintah pada simpul terkelola lain setelah gagal pada jumlah atau persentase simpul. Misalnya, jika Anda menentukan tiga kesalahan, Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Node terkelola yang masih memproses perintah mungkin juga mengirim kesalahan.

1. (Opsional) Untuk **Opsi output**, untuk menyimpan output perintah ke file, pilih kotak **Tuliskan output perintah ke bucket S3**. Masukkan nama bucket dan prefiks (folder) di kotak.
**catatan**  
Izin S3 yang memberikan kemampuan untuk menulis data ke bucket S3 adalah izin profil instans (untuk instans EC2) atau peran layanan IAM (mesin yang diaktifkan hibrida) yang ditetapkan ke instance, bukan milik pengguna IAM yang melakukan tugas ini. Untuk informasi selengkapnya, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md) atau [Membuat peran layanan IAM untuk lingkungan hibrid](hybrid-multicloud-service-role.md). Selain itu, jika bucket S3 yang ditentukan berbeda Akun AWS, pastikan bahwa profil instance atau peran layanan IAM yang terkait dengan node terkelola memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

1. Di bagian **Notifikasi SNS**, jika Anda ingin notifikasi dikirim tentang status eksekusi perintah, pilih kotak centang **Aktifkan notifikasi SNS**.

   Untuk informasi selengkapnya tentang mengonfigurasi notifikasi Run Command Amazon SNS, lihat. [Pemantauan perubahan status Systems Manager menggunakan notifikasi Amazon SNS](monitoring-sns-notifications.md)

1. Pilih **Jalankan**.

## Jalankan Ansible Playbook dari GitHub dengan menggunakan AWS CLI
<a name="integration-github-ansible-cli"></a>

1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Jalankan perintah berikut untuk mengunduh dan menjalankan skrip dariGitHub.

   ```
   aws ssm send-command \
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "instance-IDs"\
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\": \"repository_name\", \"path\": \"path_to_file_or_directory\", \"tokenInfo\":\"{{ssm-secure:name_of_your_SecureString_parameter}}\" }"],"commandLine":["commands_to_run"]}'
   ```

   Berikut adalah contoh perintah untuk dijalankan pada mesin Linux lokal.

   ```
   aws ssm send-command \    
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "i-02573cafcfEXAMPLE" \
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\": \"GitHubPrivateTest\", \"path\": \"scripts/webserver.yml\", \"tokenInfo\":\"{{ssm-secure:mySecureStringParameter}}\" }"],"commandLine":["ansible-playbook -i “localhost,” --check -c local webserver.yml"]}'
   ```

# Jalankan skrip Python dari GitHub
<a name="integration-github-python"></a>

Bagian ini mencakup prosedur untuk membantu Anda menjalankan skrip Python GitHub dengan menggunakan AWS Systems Manager konsol atau (). AWS Command Line Interface AWS CLI

## Jalankan skrip Python dari GitHub (konsol)
<a name="integration-github-python-console"></a>

**Jalankan skrip Python dari GitHub**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Run Command**.

1. Pilih **Run Command**.

1. Di daftar **Dokumen perintah**, pilih **`AWS-RunRemoteScript`**.

1. Untuk **Parameter perintah**, lakukan hal berikut:
   + Di **Jenis Sumber**, pilih **GitHub**. 
   + Di kotak **Info sumber**, masukkan informasi yang diperlukan untuk mengakses sumber dalam format berikut:

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "getOptions": "branch:branch_name",
         "path": "path_to_document",
         "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}"
     }
     ```

     Contoh berikut mengunduh direktori skrip bernama *complex-script*.

     ```
     {
         "owner": "TestUser1",
         "repository": "SSMTestDocsRepo",
         "getOptions": "branch:myBranch",
         "path": "scripts/python/complex-script",
         "tokenInfo": "{{ssm-secure:myAccessTokenParam}}"
     }
     ```
**catatan**  
`"branch"` diperlukan hanya jika skrip Anda disimpan di cabang selain `master`.  
Untuk menggunakan versi skrip yang ada di *melakukan* tertentu di repositori anda, gunakan `commitID` dengan `getOptions` daripada `branch`. Sebagai contoh:  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + Untuk **Baris Perintah**, masukkan parameter untuk eksekusi skrip. Inilah contohnya.

     ```
     mainFile.py argument-1 argument-2
     ```

     Contoh ini menjalankan `mainFile.py`, yang kemudian dapat menjalankan skrip lainnya di direktori `complex-script`.
   + (Opsional) Untuk **Direktori Kerja**, masukkan nama direktori pada node tempat Anda ingin mengunduh dan menjalankan skrip.
   + (Opsional) Untuk **Batas Waktu Eksekusi**, tentukan jumlah detik bagi sistem untuk menunggu sebelum menggagalkan eksekusi perintah skrip. 

1. Di bagian **Target**, pilih node terkelola tempat Anda ingin menjalankan operasi ini dengan menentukan tag, memilih instance atau perangkat tepi secara manual, atau menentukan grup sumber daya.
**Tip**  
Jika node terkelola yang Anda harapkan tidak terdaftar, lihat [Memecahkan masalah ketersediaan node terkelola](fleet-manager-troubleshooting-managed-nodes.md) untuk tips pemecahan masalah.

1. Untuk **Parameter lainnya**:
   + Untuk **Komentar**, ketik informasi tentang perintah ini.
   + Untuk **Waktu habis (detik)**, tentukan jumlah detik untuk menunggu sistem sebelum gagal menjalankan perintah keseluruhan. 

1. Untuk **Pengendalian rate**:
   + Untuk **Konkurensi**, tentukan jumlah atau persentase dari simpul terkelola untuk menjalankan perintah pada saat yang sama.
**catatan**  
Jika Anda memilih target dengan menentukan tag yang diterapkan pada node terkelola atau dengan menentukan grup AWS sumber daya, dan Anda tidak yakin berapa banyak node terkelola yang ditargetkan, maka batasi jumlah target yang dapat menjalankan dokumen pada saat yang sama dengan menentukan persentase.
   + Untuk **Ambang kesalahan**, tentukan kapan harus berhenti menjalankan perintah pada simpul terkelola lain setelah gagal pada jumlah atau persentase simpul. Misalnya, jika Anda menentukan tiga kesalahan, Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Node terkelola yang masih memproses perintah mungkin juga mengirim kesalahan.

1. (Opsional) Untuk **Opsi output**, untuk menyimpan output perintah ke file, pilih kotak **Tuliskan output perintah ke bucket S3**. Masukkan nama bucket dan prefiks (folder) di kotak.
**catatan**  
Izin S3 yang memberikan kemampuan untuk menulis data ke bucket S3 adalah izin profil instans (untuk instans EC2) atau peran layanan IAM (mesin yang diaktifkan hibrida) yang ditetapkan ke instance, bukan izin pengguna IAM yang melakukan tugas ini. Untuk informasi selengkapnya, lihat [Mengonfigurasi izin instans yang diperlukan untuk Systems Manager](setup-instance-permissions.md) atau [Membuat peran layanan IAM untuk lingkungan hibrid](hybrid-multicloud-service-role.md). Selain itu, jika bucket S3 yang ditentukan berbeda Akun AWS, pastikan bahwa profil instance atau peran layanan IAM yang terkait dengan node terkelola memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

1. Di bagian **Notifikasi SNS**, jika Anda ingin notifikasi dikirim tentang status eksekusi perintah, pilih kotak centang **Aktifkan notifikasi SNS**.

   Untuk informasi selengkapnya tentang mengonfigurasi notifikasi Run Command Amazon SNS, lihat. [Pemantauan perubahan status Systems Manager menggunakan notifikasi Amazon SNS](monitoring-sns-notifications.md)

1. Pilih **Jalankan**.

## Jalankan skrip Python dari GitHub dengan menggunakan AWS CLI
<a name="integration-github-python-cli"></a>

1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

   Untuk selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Jalankan perintah berikut untuk mengunduh dan menjalankan skrip dariGitHub.

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "instance-IDs" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"path_to_script_or_directory"}"],"commandLine":["commands_to_run"]}'
   ```

   Inilah contohnya.

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "i-02573cafcfEXAMPLE" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\":\"GitHubTestPublic\", \"path\": \"scripts/python/complex-script\"}"],"commandLine":["mainFile.py argument-1 argument-2 "]}'
   ```

   Contoh ini mengunduh direktori skrip bernama `complex-script`. Entri `commandLine` menjalankan `mainFile.py`, yang kemudian dapat menjalankan skrip lainnya di direktori `complex-script`.