

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

# Menggunakan cetak biru canary
<a name="CloudWatch_Synthetics_Canaries_Blueprints"></a>

Bagian ini menyediakan detail tentang setiap cetak biru canary dan tugas yang paling sesuai untuk setiap cetak biru. Cetak biru disediakan untuk jenis canary berikut: 

**Topics**
+ [Pemantauan heartbeat](#CloudWatch_Synthetics_Canaries_Blueprints_Heartbeat)
+ [Canary API](#CloudWatch_Synthetics_Canaries_Blueprints_API)
+ [Pemeriksa tautan yang rusak](#CloudWatch_Synthetics_Canaries_Blueprints_Broken_Links)
+ [Cetak biru pemantauan visual](#CloudWatch_Synthetics_Canaries_Blueprints_VisualTesting)
+ [Perekam canary](#CloudWatch_Synthetics_Canaries_Blueprints_Recorder)
+ [Pembangun alur kerja GUI](#CloudWatch_Synthetics_Canaries_Blueprints_GUI_Workflow)
+ [Cetak biru multi cek](#CloudWatch_Synthetics_Canaries_Blueprints_Multichecks_Blueprint)
+ [Membuat multi cek blueprint canary](CloudWatch_Synthetics_Canaries_MultiCheck_Blueprint.md)

Ketika Anda menggunakan cetak biru untuk membuat canary, ketika mengisi bidang di CloudWatch konsol, **Penyunting naskah** wilayah halaman menampilkan canary yang Anda buat sebagai naskah Node.js. Anda juga dapat menyunting canary di area ini untuk menyesuaikannya lebih lanjut.

## Pemantauan heartbeat
<a name="CloudWatch_Synthetics_Canaries_Blueprints_Heartbeat"></a>

Skrip heartbeat memuat URL tertentu dan menyimpan tangkapan layar halaman dan file arsip HTTP (file HAR). Mereka juga menyimpan log yang diakses URLs. 

Anda dapat menggunakan file HAR untuk melihat data performa terperinci tentang halaman web. Anda dapat menganalisis daftar permintaan web dan menangkap masalah kinerja seperti waktu untuk memuat item.

Jika kenari Anda menggunakan versi runtime `syn-nodejs-puppeteer-3.1` atau yang lebih baru, Anda dapat menggunakan cetak biru pemantauan detak jantung untuk memantau beberapa URLs dan melihat status, durasi, tangkapan layar terkait, dan alasan kegagalan untuk setiap URL dalam ringkasan langkah laporan canary run.

## Canary API
<a name="CloudWatch_Synthetics_Canaries_Blueprints_API"></a>

Canary API dapat menguji fungsi Baca dan Tulis dasar dari API REST. REST adalah singkatan dari *transfer status representasional* dan merupakan seperangkat aturan yang diikuti pengembang ketika membuat API. Salah satu aturan ini menyatakan bahwa tautan ke URL tertentu harus mengembalikan satu data.

Canary dapat bekerja dengan apa saja APIs dan menguji semua jenis fungsionalitas. Setiap canary dapat membuat beberapa panggilan API.

Di kenari yang menggunakan versi runtime `syn-nodejs-2.2` atau yang lebih baru, cetak biru kenari API mendukung kenari multi-langkah yang memantau Anda sebagai langkah HTTP. APIs Anda dapat menguji beberapa APIs dalam satu kenari. Setiap langkah adalah permintaan terpisah yang dapat mengakses URL yang berbeda, menggunakan header yang berbeda, dan menggunakan aturan yang berbeda untuk apakah header dan bodi respons ditangkap. Dengan tidak menangkap header dan bodi respons, Anda dapat mencegah data sensitif dari perekaman. 

Setiap permintaan di canary API terdiri atas informasi berikut:
+ *Titik akhir*, yang merupakan URL yang Anda minta.
+ *Metode*, yaitu jenis permintaan yang dikirim ke server. REST APIs mendukung operasi GET (read), POST (write), PUT (update), PATCH (update), dan DELETE (delete).
+ *Header*, yang memberikan informasi baik kepada klien maupun server. Cookie ini digunakan untuk autentikasi dan memberikan informasi tentang konten bodi. Untuk daftar header yang valid, silakan lihat [Header HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers).
+ *Data* (atau *bodi*), yang memuat informasi yang akan dikirimkan ke server. Hanya digunakan untuk permintaan POST, PUT, PATCH, atau DELETE.

**catatan**  
Cetak biru kenari API tidak didukung oleh runtime Playwright.

Cetak biru canary API mendukung metode GET dan POST. Ketika Anda menggunakan cetak biru ini, Anda harus menentukan header. Misalnya, Anda dapat menentukan **Authorization** sebagai **Kunci** dan menentukan data otorisasi yang diperlukan sebagai **Nilai** untuk kunci itu.

Jika Anda menguji permintaan POST, Anda juga menentukan konten yang akan diposting di bidang **Data**.

 **Integrasi dengan API Gateway** 

Cetak biru API terintegrasi dengan Amazon API Gateway. Ini memungkinkan Anda memilih API Gateway API dan tahap dari AWS akun dan Wilayah yang sama dengan canary, atau mengunggah template Swagger dari API Gateway untuk pemantauan API lintas akun dan lintas wilayah. Anda kemudian dapat memilih sisa dari detail di konsol untuk membuat canary, bukan memasukkannya dari awal. Untuk informasi selengkapnya tentang API Gateway, silakan lihat [Apa itu Amazon API Gateway?](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 

 **Menggunakan API privat** 

Anda dapat membuat canary yang menggunakan API privat di Amazon API Gateway. Untuk informasi selengkapnya, silakan lihat [Membuat API privat di Amazon API Gateway?](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html)

## Pemeriksa tautan yang rusak
<a name="CloudWatch_Synthetics_Canaries_Blueprints_Broken_Links"></a>

Pemeriksa tautan yang rusak mengumpulkan semua tautan di dalam URL yang sedang Anda uji dengan menggunakan `document.getElementsByTagName('a')`. Hanya menguji hingga jumlah tautan yang Anda tentukan, dan URL itu sendiri dihitung sebagai tautan pertama. Sebagai contoh, jika Anda ingin memeriksa semua tautan di halaman yang memuat lima tautan, Anda harus menentukan untuk canary mengikuti enam tautan.

Canary pemeriksa tautan yang rusak dibuat menggunakan runtime `syn-nodejs-2.0-beta` atau yang lebih baru mendukung fitur tambahan berikut:
+ Memberikan laporan yang menyertakan tautan yang diperiksa, kode status, alasan kegagalan (jika ada), dan halaman cuplikan layar sumber dan tujuan.
+ Ketika melihat hasil canary, Anda dapat menyaring untuk hanya melihat tautan yang rusak dan kemudian memperbaiki tautan didasarkan pada alasan kegagalan.
+ Versi ini menangkap cuplikan layar halaman sumber berketerangan untuk setiap tautan dan menyoroti jangkar tempat tautan ditemukan. Komponen tersembunyi tidak diberi keterangan.
+ Anda dapat mengonfigurasi versi ini untuk mengambil tangkapan layar dari halaman sumber dan tujuan, hanya halaman sumber, atau hanya halaman tujuan.
+ Versi ini memperbaiki masalah dalam versi sebelumnya tempat skrip canary berhenti setelah tautan pertama yang rusak, bahkan ketika lebih banyak tautan yang diambil dari halaman pertama.

**catatan**  
Cetak biru pemeriksa tautan rusak tidak didukung oleh runtime Playwright.

Untuk memperbarui kenari yang ada menggunakan `syn-1.0` untuk menggunakan runtime baru, Anda harus menghapus dan membuat ulang kenari. Memperbarui canary yang sudah ada ke runtime baru tidak membuat fitur ini tersedia.

Canary pemeriksa tautan yang rusak mendeteksi jenis kesalahan tautan berikut:
+ 404 Halaman Tidak Ditemukan
+ Nama Host Tidak Benar
+ URL Buruk. Misalnya, URL tidak memiliki tanda kurung, memiliki garis miring ekstra, atau menggunakan protokol yang salah.
+ Kode respons HTTP tidak benar.
+ Server host mengembalikan respons kosong dengan tanpa konten dan tidak ada kode respons.
+ Permintaan HTTP secara konstan habis waktu selama berlangsungnya canary.
+ Host secara konsisten menurunkan koneksi karena salah konfigurasi atau terlalu sibuk.

## Cetak biru pemantauan visual
<a name="CloudWatch_Synthetics_Canaries_Blueprints_VisualTesting"></a>

Cetak biru pemantauan visual mencakup kode untuk membandingkan tangkapan layar yang diambil selama berjalannya canary dengan tangkapan layar yang diambil selama berjalannya canary dasar. Jika perbedaan antara kedua tangkapan layar berada di luar persentase ambang batas, canary gagal. Pemantauan visual didukung di kenari yang menjalankan **syn-puppeteer-node-3.2** dan yang lebih baru. Saat ini tidak didukung di kenari yang menjalankan Python dan Selenium, atau menggunakan runtime Playwright.

Cetak biru pemantauan visual mencakup baris kode berikut dalam skrip canary cetak biru default, yang memungkinkan pemantauan visual.

```
syntheticsConfiguration.withVisualCompareWithBaseRun(true);
```

Pertama kali canary berjalan dengan sukses setelah baris ini ditambahkan ke skrip, ia menggunakan tangkapan layar yang diambil selama proses itu sebagai dasar untuk perbandingan. Setelah kenari pertama dijalankan, Anda dapat menggunakan CloudWatch konsol untuk mengedit kenari untuk melakukan salah satu hal berikut:
+ Tetapkan putaran canary berikutnya sebagai dasar baru.
+ Gambar batas pada tangkapan layar dasar saat ini untuk menunjuk area tangkapan layar untuk diabaikan selama perbandingan visual.
+ Hapus tangkapan layar agar tidak digunakan untuk pemantauan visual.

Untuk informasi selengkapnya tentang menggunakan CloudWatch konsol untuk mengedit kenari, lihat[Mengedit atau menghapus canary](synthetics_canaries_deletion.md).

Anda juga dapat mengubah canary run yang digunakan sebagai baseline dengan menggunakan ` nextrun` atau `lastrun` parameter atau menentukan ID run canary di API. [UpdateCanary](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_UpdateCanary.html)

Saat Anda menggunakan cetak biru pemantauan visual, Anda memasukkan URL tempat Anda ingin tangkapan layar diambil, dan menentukan ambang batas perbedaan sebagai persentase. Setelah baseline run, future run dari canary yang mendeteksi perbedaan visual yang lebih besar dari ambang batas itu memicu kegagalan canary. Setelah baseline berjalan, Anda juga dapat mengedit canary untuk "menggambar" batas pada tangkapan layar dasar yang ingin Anda abaikan selama pemantauan visual.

Fitur pemantauan visual didukung oleh toolkit perangkat lunak ImageMagick open source. Untuk informasi lebih lanjut, lihat [ ImageMagick](https://imagemagick.org/index.php).

## Perekam canary
<a name="CloudWatch_Synthetics_Canaries_Blueprints_Recorder"></a>

Dengan cetak biru perekam kenari, Anda dapat menggunakan CloudWatch Synthetics Recorder untuk merekam tindakan klik dan ketik Anda di situs web dan secara otomatis menghasilkan skrip Node.js yang dapat digunakan untuk membuat kenari yang mengikuti langkah yang sama. CloudWatch Perekam Sintetis adalah ekstensi Google Chrome yang disediakan oleh Amazon. Perekam kenari tidak didukung untuk kenari yang menggunakan runtime Playwright.

**Kredit**: Perekam CloudWatch Synthetics didasarkan pada perekam Tanpa [Kepala](https://github.com/checkly/headless-recorder).

Untuk informasi selengkapnya, lihat [Menggunakan CloudWatch Synthetics Recorder untuk Google Chrome](CloudWatch_Synthetics_Canaries_Recorder.md).

## Pembangun alur kerja GUI
<a name="CloudWatch_Synthetics_Canaries_Blueprints_GUI_Workflow"></a>

Cetak biru Pembangun Alur Kerja GUI memverifikasi bahwa tindakan dapat diambil di halaman web Anda. Sebagai contoh, jika Anda memiliki halaman web dengan formulir login, canary dapat mengisi bidang pengguna dan kata sandi serta mengirimkan formulir untuk memverifikasi bahwa halaman web berfungsi dengan benar.

Ketika Anda menggunakan cetak biru untuk membuat jenis canary ini, Anda menentukan tindakan yang diinginkan canary untuk dilakukan pada halaman web. Tindakan yang dapat Anda gunakan adalah sebagai berikut:
+ **Klik**— Pilih elemen yang Anda tentukan dan simulasikan pengguna yang mengeklik atau memilih elemen tersebut.

  Untuk menentukan elemen dalam skrip Node.js, gunakan `[id=]` atau ` a[class=]`.

  Untuk menentukan elemen dalam skrip Python, gunakan `xpath //*[@id=]` atau ` //*[@class=]`.
+ **Verifikasi pemilih**— Verifikasi bahwa elemen tertentu ada di halaman web tersebut. Uji ini berguna untuk memverifikasi bahwa tindakan sebelumnya memiliki elemen yang benar untuk mengisi halaman tersebut.

  Untuk menentukan elemen guna memverifikasi dalam skrip Node.js, gunakan `[id=]` atau ` a[class=]`.

  Untuk menentukan elemen guna memverifikasi dalam skrip Python, gunakan `xpath //*[@id=]` atau `//*[class=]`.
+ **Verifikasi teks**— Verifikasi bahwa rangkaian tertentu termuat dalam elemen target. Uji ini berguna untuk memverifikasi bahwa tindakan sebelumnya telah menyebabkan teks yang benar ditampilkan.

  Untuk menentukan elemen dalam skrip Node.js, gunakan format seperti ` div[@id=]//h1` karena tindakan ini menggunakan fungsi `waitForXPath` dalam Puppeteer.

  Untuk menentukan elemen dalam skrip Python, gunakan format xpath seperti ` //*[@id=] ` atau //\$1[@class=] karena tindakan ini menggunakan fungsi `implicitly_wait` dalam Selenium.
+ **Masukkan teks**— Tulis teks tertentu dalam elemen target.

  Untuk menentukan elemen guna memverifikasi dalam skrip Node.js, gunakan `[id=]` atau ` a[class=]`.

  Untuk menentukan elemen guna memverifikasi dalam skrip Python, gunakan `xpath //*[@id=]` atau `//*[@class=]`.
+ **Klik dengan navigasi**— Tunggu seluruh halaman dimuat setelah memilih elemen tertentu. Hal ini paling berguna ketika Anda perlu memuat ulang halaman.

  Untuk menentukan elemen dalam skrip Node.js, gunakan `[id=]` atau ` a[class=]`.

  Untuk menentukan elemen dalam skrip Python, gunakan `xpath //*[@id=]` atau ` //*[@class=]`.

Sebagai contoh, cetak biru berikut menggunakan Node.js. Cetak biru mengeklik **firstButton** pada URL tertentu, memverifikasi bahwa pemilih yang diharapkan dengan teks yang diharapkan muncul, memasukkan nama `Test_Customer` ke dalam bidang **Nama**, mengklik tombol **Login**, dan kemudian memverifikasi bahwa login berhasil dengan memeriksa teks **Sambutan** pada halaman berikutnya.

![\[Laman canary di konsol dibuat, dengan bidang yang diisi untuk cetak biru Alur Kerja GUI.\]](http://docs.aws.amazon.com/id_id/AmazonCloudWatch/latest/monitoring/images/canary_create_gui_workflow.PNG)


Canary alur kerja GUI yang menggunakan runtime berikut juga memberikan ringkasan langkah-langkah yang dilaksanakan untuk masing-masing operasi canary. Anda dapat menggunakan tangkapan layar dan pesan kesalahan yang terkait dengan setiap langkah untuk menemukan akar masalah kegagalan.
+ `syn-nodejs-2.0` atau yang lebih baru
+ `syn-python-selenium-1.0` atau yang lebih baru

## Cetak biru multi cek
<a name="CloudWatch_Synthetics_Canaries_Blueprints_Multichecks_Blueprint"></a>

Cetak biru Multi check menyederhanakan pembuatan kenari. Ini mengurangi biaya dengan menggunakan konfigurasi JSON sederhana yang menyediakan out-of-the-box fungsionalitas untuk melakukan pemeriksaan HTTP, DNS, SSL, dan TCP. Anda dapat mengonfigurasi hingga 10 pemeriksaan. Konfigurasikan setiap pemeriksaan sebagai langkah numerik yang berjalan secara berurutan, memungkinkan pemahaman yang jelas tentang aliran kenari.

Dukungan cetak biru multi cek:
+ Permintaan HTTP dasar, permintaan TCP, memvalidasi catatan DNS dan memantau sertifikat SSL
+ Metode otentikasi HTTP seperti Basic, API Key OAuth, dan Sigv4 terintegrasi dengan Secrets Manager
+ Pernyataan untuk setiap cek

Untuk informasi selengkapnya, lihat [Membuat canary](CloudWatch_Synthetics_Canaries_Create.md).

# Membuat multi cek blueprint canary
<a name="CloudWatch_Synthetics_Canaries_MultiCheck_Blueprint"></a>

Cetak biru multi pemeriksaan Amazon CloudWatch Synthetics membantu Anda membuat kenari Synthetics dengan menyediakan konfigurasi JSON sederhana. Anda dapat menghemat biaya dengan menggabungkan hingga 10 jenis HTTP/DNS/SSL/TCP pemeriksaan yang berbeda secara berurutan berbasis langkah. Setiap pemeriksaan mencakup pernyataan yang memberikan verifikasi dasar terhadap hasil pemeriksaan.

Multi cek kenari dirancang untuk kasus penggunaan sederhana yang hanya memerlukan pemeriksaan dasar tanpa browser tanpa kepala. Untuk kasus penggunaan yang lebih kompleks, tinjau jenis kenari lain yang disediakan Amazon CloudWatch Synthetics.

**Topics**
+ [Prasyarat](#CloudWatch_Synthetics_MultiCheck_Prerequisites)
+ [Batasan](#CloudWatch_Synthetics_MultiCheck_Limitations)
+ [Struktur kemasan, skema JSON, dan pengaturan konfigurasi](#CloudWatch_Synthetics_MultiCheck_Packaging)
+ [Membuat kenari multi cek di Konsol Manajemen AWS](#CloudWatch_Synthetics_MultiCheck_Console)
+ [Membuat kenari multi cek menggunakan AWS Synthetics APIs](#CloudWatch_Synthetics_MultiCheck_API)
+ [Membuat kenari multi cek di CloudFormation](#CloudWatch_Synthetics_MultiCheck_CloudFormation)
+ [Konfigurasi autentikasi](#CloudWatch_Synthetics_MultiCheck_Authentication)
+ [Pemecahan masalah](#CloudWatch_Synthetics_MultiCheck_Troubleshooting)

## Prasyarat
<a name="CloudWatch_Synthetics_MultiCheck_Prerequisites"></a>
+ Harus menggunakan syn-nodejs-3.0\$1 untuk membuat kenari multi cek
+ Saat menggunakan konfigurasi Autentikasi dan Secrets Manager, Anda harus memastikan kenari [ ExecutionRoleArn](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_CreateCanary.html)memungkinkan izin untuk mengakses rahasia ini
+ Saat menggunakan Otentikasi untuk Sigv4, Anda harus memastikan kenari [ ExecutionRoleArn](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_CreateCanary.html)mengizinkan izin untuk mengakses peran terkait

## Batasan
<a name="CloudWatch_Synthetics_MultiCheck_Limitations"></a>
+ Ukuran Respons HTTP tidak boleh lebih besar dari 1 MB
+ Maksimal 10 variabel yang ditentukan.
+ Saat menggunakan JSON RFC, Checks JSON mungkin memiliki bidang duplikat yang disediakan namun hanya bidang sekuensial terakhir yang akan digunakan
+ Dalam Konsol Manajemen AWS, kenari multi cek akan default untuk menampilkan metrik langkah multi cek untuk dengan mudah mengidentifikasi ketersediaan setiap pemeriksaan. Saat cek dihapus, grafik ini mungkin masih menampilkan pemeriksaan dalam grafik ketersediaan hingga metrik berhenti aktif setidaknya selama 3 jam

## Struktur kemasan, skema JSON, dan pengaturan konfigurasi
<a name="CloudWatch_Synthetics_MultiCheck_Packaging"></a>

Konfigurasi JSON Checks yang akan digunakan untuk kenari harus diberi nama. ` blueprint-config.json` Konfigurasi harus mengikuti [skema](https://github.com/aws-samples/synthetics-canary-local-debugging-sample/tree/main) dan mengikuti instruksi di bawah[Menulis konfigurasi JSON untuk cetak biru Node.js multi Checks](CloudWatch_Synthetics_WritingCanary_Multichecks.md).

Kompres `blueprint-config.json` ke dalam file ZIP dan sediakan di salah satu alur kerja pembuatan berikut. Ketika ada `synthetics.json` konfigurasi, maka itu juga dikompresi dalam file ZIP yang sama. Berikut ini adalah contoh file zip yang disebut`multi-checks.zip`.

```
multi-checks.zip
├── blueprint-config.json
└── synthetics.json
```

## Membuat kenari multi cek di Konsol Manajemen AWS
<a name="CloudWatch_Synthetics_MultiCheck_Console"></a>

1. Buka konsol CloudWatch sintetis Amazon.

1. Pilih **Buat Canary**.

1. **Di bawah **Gunakan cetak biru**, pilih multi cek.**

   Di bawah **Configure Checks**, Anda akan melihat dua tab, **Checks** dan **Canary configuration**.

1. Pilih versi runtime **syn-nodejs-3.0** atau yang lebih baru.

1. Ikuti prosedur di bawah ini [Menulis konfigurasi JSON untuk cetak biru Node.js multi Checks](CloudWatch_Synthetics_WritingCanary_Multichecks.md) untuk menjelaskan pemeriksaan yang ingin Anda lakukan. Atau, konsol memberi Anda konfigurasi JSON default yang dapat Anda bangun.

1. Pilih **Buat Canary**.

## Membuat kenari multi cek menggunakan AWS Synthetics APIs
<a name="CloudWatch_Synthetics_MultiCheck_API"></a>

Gunakan `CreateCanary` API dan di dalam `Code` parameter, berikan field/value `BlueprintTypes="multi-checks"` sebagai pengganti` Handler`. Ketika `Handler` keduanya `BlueprintTypes` dan ditentukan, a `ValidationException` ditampilkan. Versi runtime yang disediakan harus `syn-nodejs-3.0` atau lebih baru.

```
aws synthetics create-canary \
    --name my-multi-check-canary \
    --code ZipFile="ZIP_BLOB",BlueprintTypes="multi-checks" \
    --runtime-version syn-nodejs-3.0 \
    ...

// Or if you wanted to use S3 to provide your code.

aws synthetics create-canary \
    --name my-multi-check-canary \
    --code S3Bucket="my-code-bucket",S3Key="my-zip-code-key",BlueprintTypes="multi-checks" \
    ...
```

## Membuat kenari multi cek di CloudFormation
<a name="CloudWatch_Synthetics_MultiCheck_CloudFormation"></a>

Dalam CloudFormation template Anda untuk kenari multi cek, di dalam `Code` parameter, berikan field/value `BlueprintTypes="multi-checks"` alih-alih. ` Handler` Ketika `Handler` keduanya `BlueprintTypes` dan ditentukan, a `ValidationException` ditampilkan. Versi runtime yang disediakan harus. `syn-nodejs-3.0 or later` 

Contoh template:

```
SyntheticsCanary:
    Type: 'AWS::Synthetics::Canary'
    Properties:
      Name: MyCanary
      RuntimeVersion: syn-nodejs-3.0
      Schedule: {Expression: 'rate(5 minutes)', DurationInSeconds: 3600}
      ...
      Code:
        S3Bucket: "my-code-bucket"
        S3Key: "my-zip-code-key"
        BlueprintTypes: ["multi-checks"]
      ...
```

## Konfigurasi autentikasi
<a name="CloudWatch_Synthetics_MultiCheck_Authentication"></a>

Saat kenari Anda membuat permintaan HTTP ke titik akhir yang diautentikasi, Anda dapat mengonfigurasi langkah-langkah canary cetak biru Anda untuk menggunakan salah satu dari empat jenis otentikasi: Dasar, Kunci API, Kredensyal Klien, dan SigV4. OAuth Daripada menyiapkan header permintaan sendiri, Anda dapat menentukan jenis otentikasi dalam definisi cetak biru Anda, dan Synthetics mengikuti jenis otentikasi yang ditentukan untuk mengisi komponen permintaan HTTP Anda dengan informasi otentikasi yang disediakan.

Anda menentukan jenis otentikasi dalam langkah cetak biru Anda dengan bagian Otentikasi. Anda menentukan skema otentikasi yang ingin Anda gunakan, properti yang diperlukan untuk skema otentikasi yang Anda pilih, dan Synthetics menggunakan informasi yang diberikan untuk membuat header otentikasi untuk permintaan HTTP Anda.

Karena menyimpan rahasia (seperti kata sandi atau kunci API) dalam teks biasa adalah masalah keamanan, Synthetics mendukung integrasi dengan. AWS Secrets Manager Saat Anda ingin mengautentikasi permintaan HTTP dalam canary cetak biru Synthetics, Anda dapat merujuk ke rahasia yang menyimpan informasi otentikasi Anda dan Synthetics menangani pengambilan rahasia dan menyimpannya di kenari Anda. Pendekatan ini memberikan rahasia kepada Synthetics sambil menyimpan rahasia Anda dengan aman, tanpa menentukannya dalam teks biasa dalam konfigurasi cetak biru Anda.

Untuk informasi lebih lanjut tentang AWS Secrets Manager, lihat [Apa itu AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)

### Autentikasi dasar
<a name="CloudWatch_Synthetics_MultiCheck_BasicAuth"></a>

Synthetics mengimplementasikan skema otentikasi HTTP Dasar yang didefinisikan dalam RFC 7617. Prosesnya bekerja sebagai berikut:
+ Pasangan nama pengguna dan kata sandi disediakan dari konfigurasi cetak biru.
+ User-pass dibuat dengan menggabungkan nama pengguna, satu karakter titik dua (“:”), dan kata sandi.
+ User-pass dikodekan UTF-8, kemudian diubah menjadi string yang dikodekan base64.
+ User-pass yang disandikan base64 ini disediakan di header “Otorisasi” dengan format berikut: Authorization: Basic \$1base64-\$1 encoded-user-pass

Misalnya, jika agen pengguna ingin mengirim id pengguna “Aladdin” dan kata sandi “buka wijen”, ia menggunakan bidang header berikut: Otorisasi: FtzQ Dasar == QWxh ZGRpbjpvc GVu IHNlc2

Contoh konfigurasi:

```
"Authentication": {
    "type": "BASIC",
    "username": MY_USERNAME, // Required
    "password": MY_PASSWORD // Required
}
```

### Otentikasi kunci API
<a name="CloudWatch_Synthetics_MultiCheck_APIKeyAuth"></a>

Anda dapat memberikan kunci API untuk mengautentikasi permintaan HTTP Anda. Saat Anda menggunakan autentikasi kunci API, kunci API yang Anda berikan dimasukkan ke dalam header HTTP “X-API-key”. Jika Anda memiliki sumber daya khusus yang mencari header kunci API di header selain yang ini, Anda dapat secara opsional menentukan nama header yang berbeda agar Synthetics memasukkan kunci API.

Contoh konfigurasi:

```
"Authentication": {
    "type": "API_KEY",
    "apiKey": S0A1M2P3L4E5, // Required
    "header": X-Specific-Header // Optional, defaults to "X-API-Key"
}
```

### Otentikasi SiGv4
<a name="CloudWatch_Synthetics_MultiCheck_SigV4Auth"></a>

AWS SigV4 (Signature Version 4) adalah protokol AWS penandatanganan untuk menambahkan informasi otentikasi ke AWS permintaan API. Untuk membuat permintaan yang diautentikasi SIGV4, Anda perlu menentukan wilayah dan layanan yang Anda minta, serta ARN (Nama AWS Sumber Daya) yang mengidentifikasi peran IAM yang ingin diasumsikan oleh kenari saat membuat permintaan SigV4 ini. Synthetics mengasumsikan peran IAM yang disediakan di RoLearn, dan menggunakannya untuk mengautentikasi permintaan API Anda. AWS 

Contoh konfigurasi:

```
"Authentication": {
    "type": "SIGV4",
    "region": us-west-2, // Required
    "service": s3, // Required
    "roleArn": arn:AWS:iam:12345678912:role/SampleRole // Required
}
```

#### Pertimbangan SiGv4
<a name="CloudWatch_Synthetics_MultiCheck_SigV4Considerations"></a>

Agar Synthetics dapat mengambil peran yang Anda berikan di bagian otentikasi SigV4, kebijakan kepercayaan yang dilampirkan pada peran tersebut harus dikonfigurasi agar kenari dapat mengambil RoLearn yang disediakan. Prinsip AWS utama yang perlu Anda percayai adalah peran yang diasumsikan oleh kenari Anda. AWS STS Dibutuhkan format ` aws:sts::{account_running_the_canary}:assumed-role/<canary_name>/<assumed_role_name>` arn:.

Misalnya, jika Anda memiliki kenari yang berjalan di akun 0123456789012, bernama test-canary, dan peran yang diasumsikan diberi nama canary-assume-role, maka kebijakan kepercayaan perlu menyertakan pernyataan ini agar kenari mengasumsikan otentikasi RoLearn untuk sigV4 dengan benar:

```
{
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:AWS:sts::123456789012:assumed-role/test-canary/"
    },
    "Action": "sts:AssumeRole"
}
```

### OAuth kredensi klien
<a name="CloudWatch_Synthetics_MultiCheck_OAuthAuth"></a>

Synthetics mengimplementasikan jenis hibah OAuth Client Credentials seperti yang didefinisikan dalam RFC 6479 Bagian 4.4. Jika Anda ingin membuat permintaan HTTP ke titik akhir yang diautentikasi dengan Token Pembawa yang dikeluarkan oleh titik akhir OAuth token, Synthetics dapat meminta dan mengelola token pembawa atas nama Anda. Bila Anda menggunakan OAuth skema, Synthetics melakukan langkah-langkah berikut:
+ Menggunakan skema otentikasi Dasar dengan clientID dan clientSecret untuk mengautentikasi permintaan ke TokenUrl, titik akhir yang mengeluarkan token pembawa
+ Jika Anda menyediakan cakupan opsional, audiens, dan parameter sumber daya, parameter tersebut disertakan dalam permintaan token
+ Menggunakan token akses yang dikembalikan oleh TokenUrl untuk mengautentikasi permintaan HTTP Anda
+ Menyimpan token penyegaran yang dikembalikan dari TokenUrl dengan aman untuk permintaan token masa depan

Contoh konfigurasi:

```
"Authentication": {
    "type": "OAUTH_CLIENT_CREDENTIALS",
    "tokenUrl": ..., // Required
    "clientId": ..., // Required
    "clientSecret": ..., // Required
    "scope": ..., // Optional
    "audience": ..., // Optional
    "resource": ..., // Optional
}
```

#### OAuth pertimbangan
<a name="CloudWatch_Synthetics_MultiCheck_OAuthConsiderations"></a>

Synthetics menyegarkan OAuth token saat respons 401 atau 407 dikembalikan.

### AWS Secrets Manager integrasi
<a name="CloudWatch_Synthetics_MultiCheck_SecretsManager"></a>

Untuk menghindari menyimpan nilai rahasia (seperti kata sandi atau kunci API) dalam teks biasa, Synthetics menyediakan integrasi dengan. AWS Secrets Manager Anda dapat mereferensikan seluruh nilai rahasia dalam konfigurasi cetak biru Anda dengan format` ${aws_SECRET:<secret_name>}`, atau untuk referensi kunci tertentu. ` ${aws_SECRET:<secret_name>:<secret_key>}`

Misalnya, jika Anda memiliki rahasia bernama login/basic-auth-credentials, menyimpan nama pengguna dan kata sandi dengan struktur JSON berikut:

```
{
    "username": "Aladdin",
    "password": "open sesame"
}
```

Anda dapat mereferensikan nama pengguna dan kata sandi dalam konfigurasi cetak biru Anda sebagai berikut, dan Synthetics menangani pengambilan nilai rahasia dan menggunakan kuncinya untuk mengautentikasi permintaan Anda:

```
"Authentication": {
    "type": "BASIC",
    "username": ${AWS_SECRET:login/basic-auth-credentials:username},
    "password": ${AWS_SECRET:login/basic-auth-credentials:password}
}
```

Untuk memungkinkan Synthetics mengambil rahasia yang ditentukan, peran ARN yang diasumsikan oleh kenari harus memiliki izin SecretsManager:. GetSecretValue Jika rahasia dienkripsi menggunakan kunci yang dikelola pelanggan alih-alih kunci terkelola AWS/secretsmanager, maka Anda juga perlu Dekripsi izin untuk kunci itu. AWS kms:

Contoh izin:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:AWS:secretsmanager:us-east-1:123456789012:secret:secretName-AbCdEf"
        },
        {
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:AWS:kms:us-east-1:123456789012:key/key-id"
        }
    ]
}
```

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

### Kegagalan pemecahan masalah umum
<a name="CloudWatch_Synthetics_MultiCheck_Common_Failures"></a>

Kode yang mendasari cetak biru multi cek ditulis dalam TypeScript. Lihat halaman pemecahan masalah kenari untuk kegagalan umum: [Memecahkan masalah](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Troubleshoot.html) kenari yang gagal.

### JSON memeriksa kesalahan sintaks konfigurasi
<a name="CloudWatch_Synthetics_MultiCheck_JSON_Errors"></a>

Ketika ada kesalahan sintaksis yang terkait dengan konfigurasi pemeriksaan JSON kenari, itu Konsol Manajemen AWS akan memberi Anda alasan kegagalan saat Anda mencoba membuat kenari. Jika Anda membuat kenari menggunakan API atau CloudFormation, Anda akan melihat kegagalan saat kenari dijalankan untuk pertama kalinya. Disarankan untuk menggunakan alur kerja pembaruan kenari yang aman untuk kenari multi cek. Untuk informasi selengkapnya, lihat [Melakukan pembaruan kenari aman](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/performing-safe-canary-upgrades.html).

### Kegagalan jaringan atau batas waktu
<a name="CloudWatch_Synthetics_MultiCheck_Network_Failures"></a>

Untuk kegagalan intermiten atau konsisten yang terkait dengan batas waktu, kegagalan koneksi jaringan (misalnya, ENOTFOUND, ECONNRESET) pertimbangkan untuk mengaktifkan ` DEBUG` log sehingga proses berikut akan memberikan rincian tambahan lebih lanjut tentang mengapa Cek gagal. Untuk melakukannya, berikan Variabel Lingkungan CW\$1SYNTHETICS\$1LOG\$1LEVEL: “DEBUG”.

Jika masih ada kegagalan yang tidak dapat Anda debug, pertimbangkan untuk menghubungi AWS Support atau memeriksa apakah ada jenis Canary lain yang disediakan dari CloudWatch Synthetics yang lebih cocok dengan kasus penggunaan Anda.