Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menulis konfigurasi JSON untuk cetak biru Node.js multi Checks
Cetak biru multi cek Node.js memungkinkan Anda membuat kenari yang melakukan beberapa pemeriksaan validasi dalam satu canary run. Cetak biru ini berguna ketika Anda ingin menguji beberapa titik akhir, memvalidasi berbagai aspek aplikasi Anda, atau melakukan serangkaian pemeriksaan terkait secara berurutan.
Topik
Struktur konfigurasi root
Konfigurasi root mendefinisikan keseluruhan struktur canary cetak biru API tingkat lanjut Anda.
| Properti | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
globalSettings |
Objek | Tidak | Konfigurasi default diterapkan ke semua langkah |
variables |
Objek | Tidak | Nilai yang dapat digunakan kembali di seluruh langkah (maks 10) |
steps |
Objek | Ya | Pengumpulan langkah pemantauan (1-10 langkah) |
Contoh
{ "globalSettings": { "stepTimeout": 30000, "userAgent": "CloudWatch-Synthetics-Advanced/1.0" }, "variables": { "baseUrl": "https://api.example.com", "apiVersion": "v1" }, "steps": { "1": { "stepName": "healthCheck", "checkerType": "HTTP", "url": "${baseUrl}/health", "httpMethod": "GET" } } }
Aturan validasi
Harus berisi setidaknya satu langkah
Maksimal 10 langkah diizinkan
Tidak ada properti tambahan yang diizinkan di luar
globalSettings,variables, dansteps
Pengaturan global
Pengaturan global menyediakan konfigurasi default yang berlaku untuk semua langkah kecuali diganti pada tingkat langkah.
Sifat-sifat
| Properti | Tipe | Default | Kisaran | Deskripsi |
|---|---|---|---|---|
stepTimeout |
Integer | 30000 | 5000-300000 | Batas waktu default untuk semua langkah (milidetik) |
Contoh
{ "globalSettings": { "stepTimeout": 60000, } }
Variabel dan manajemen data
Variabel memungkinkan Anda untuk menentukan nilai yang dapat digunakan kembali yang dapat direferensikan di seluruh konfigurasi Anda menggunakan ${variableName} sintaks.
Properti variabel
| Properti | Tipe | Deskripsi |
|---|---|---|
| Nama variabel | string | Harus cocok pola ^[a-zA-Z][a-zA-Z0-9_]*$ |
| Nilai variabel | string | Nilai string apa pun |
Batasan
Maksimum 10 variabel per konfigurasi
Nama variabel harus dimulai dengan huruf
Nama variabel hanya dapat berisi huruf, angka, dan garis bawah
Panjang maksimum tidak ditentukan dalam skema
Contoh
{ "variables": { "baseUrl": "https://api.example.com", "apiKey": "${AWS_SECRET:my-api-key}", "timeout": "30000", "userEmail": "test@example.com" } }
Penggunaan konfigurasi
{ "steps": { "1": { "url": "${baseUrl}/users", "timeout": "${timeout}", "headers": { "Authorization": "Bearer ${apiKey}" } } } }
Definisi langkah
Langkah-langkah menentukan operasi pemantauan individu. Setiap langkah diberi nomor dari 1 hingga 10 dan berisi jenis cek tertentu.
Properti langkah umum
| Properti | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
stepName |
string | Ya | Pengidentifikasi unik untuk langkah |
checkerType |
string | Ya | Jenis cek:HTTP,DNS,SSL, TCP |
extractors |
array | Tidak | Konfigurasi ekstraksi data |
Validasi nama langkah
Pola - ^ [A-za-z] [A-za-Z0-9_-] *$
Panjang maksimum - 64 karakter
Harus dimulai dengan surat
Penomoran langkah
Langkah-langkah diberi nomor sebagai tombol string: “1", “2",..., “10"
Pola: ^ ([1-9] |10) $
Minimal 1 langkah yang diperlukan
Maksimal 10 langkah diizinkan
Contoh
{ "steps": { "1": { "stepName": "loginAPI", "checkerType": "HTTP", "url": "https://api.example.com/login", "httpMethod": "POST" }, "2": { "stepName": "dnsCheck", "checkerType": "DNS", "domain": "example.com" } } }
Periksa jenis
Pemeriksaan HTTP
Pantau titik akhir web dan APIs dengan validasi permintaan dan respons yang komprehensif.
Properti yang dibutuhkan
| Properti | Tipe | Deskripsi |
|---|---|---|
url |
string | URL target (harus format URI yang valid) |
httpMethod |
string | Metode HTTP: GETPOST,PUT,PATCH,DELETE,HEAD, OPTIONS |
Properti opsional
| Properti | Tipe | Default | Kisaran | Deskripsi |
|---|---|---|---|---|
timeout |
Integer | 30000 | 5000-300000 | Minta batas waktu (milidetik) |
waitTime |
integer | 0 | 0-60 | Tunda sebelum permintaan (detik) |
headers |
object | - | - | Header HTTP kustom |
body |
string | - | - | Permintaan badan untuk POST/PUT operasi |
authentication |
object | - | - | Konfigurasi autentikasi |
assertions |
array | - | - | Aturan validasi respons |
Contoh
{ "stepName": "createUser", "checkerType": "HTTP", "url": "https://api.example.com/users", "httpMethod": "POST", "timeout": 15000, "headers": { "Content-Type": "application/json", "X-API-Version": "v1" }, "body": "{\"name\":\"John Doe\",\"email\":\"john@example.com\"}", "authentication": { "type": "API_KEY", "apiKey": "${AWS_SECRET:api-credentials}", "headerName": "X-API-Key" }, "assertions": [ { "type": "STATUS_CODE", "operator": "EQUALS", "value": 201 } ] }
Pemeriksaan DNS
Validasi resolusi DNS dan merekam informasi.
Properti yang dibutuhkan
| Properti | Tipe | Deskripsi |
|---|---|---|
domain |
string | Nama domain untuk kueri (format nama host) |
Properti opsional
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
recordType |
string | “A” | Jenis catatan DNS:A,,CNAME,MX, TXT NS |
nameserver |
string | - | Server DNS khusus untuk kueri |
timeout |
integer | 30000 | Batas waktu kueri (5000-300000ms) |
port |
integer | 53 | Port server DNS (1-65535) |
protocol |
string | “UDP” | Protokol: UDP atau TCP |
assertions |
array | - | Aturan validasi respons DNS |
Contoh
{ "stepName": "dnsResolution", "checkerType": "DNS", "domain": "example.com", "recordType": "A", "nameserver": "8.8.8.8", "timeout": 10000, "assertions": [ { "type": "RECORD_VALUE", "operator": "CONTAINS", "value": "192.168" } ] }
Pemeriksaan SSL
Pantau kesehatan dan konfigurasi sertifikat SSL.
Properti yang dibutuhkan
| Properti | Tipe | Deskripsi |
|---|---|---|
hostname |
string | Target nama host (format nama host) |
Properti opsional
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
port |
Integer | 443 | Port SSL (1-65535) |
timeout |
integer | 30000 | Batas waktu koneksi (5000-300000ms) |
sni |
boolean | BETUL | Indikasi Nama Server |
verifyHostname |
boolean | BETUL | Verifikasi nama host |
allowSelfSigned |
boolean | SALAH | Terima sertifikat yang ditandatangani sendiri |
assertions |
array | - | Aturan validasi sertifikat |
Contoh
{ "stepName": "sslCertCheck", "checkerType": "SSL", "hostname": "secure.example.com", "port": 443, "sni": true, "verifyHostname": true, "assertions": [ { "type": "CERTIFICATE_EXPIRY", "operator": "GREATER_THAN", "value": 30, "unit": "DAYS" } ] }
Pemeriksaan TCP
Uji konektivitas port TCP dan validasi respons.
Properti yang dibutuhkan
| Properti | Tipe | Deskripsi |
|---|---|---|
hostname |
string | Target nama host (format nama host) |
port |
integer | Port target (1-65535) |
Properti opsional
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
timeout |
Integer | 30000 | Batas waktu keseluruhan (5000-300000ms) |
connectionTimeout |
integer | 3000 | Batas waktu koneksi (5000-300000ms) |
readTimeout |
integer | 2000 | Batas waktu baca data (5000-300000ms) |
sendData |
string | - | Data untuk dikirim setelah koneksi |
expectedResponse |
string | - | Data respons yang diharapkan |
encoding |
string | “UTF-8" | Pengkodean data:UTF-8,, ASCII HEX |
assertions |
array | - | Koneksi dan validasi respons |
Contoh
{ "stepName": "databaseConnection", "checkerType": "TCP", "hostname": "db.example.com", "port": 3306, "connectionTimeout": 5000, "sendData": "SELECT 1", "expectedResponse": "1", "assertions": [ { "type": "CONNECTION_SUCCESSFUL", "value": true } ] }
Metode otentikasi
Tidak ada otentikasi
{ "type": "NONE" }
Otentikasi dasar
| Properti | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
type |
string | Ya | Harus "BASIC" |
username |
string | Ya | Nama pengguna untuk otentikasi |
password |
string | Ya | Kata sandi untuk otentikasi |
Contoh
{ "type": "BASIC", "username": "admin", "password": "${AWS_SECRET:basic-auth:password}" }
Otentikasi kunci API
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "API_KEY" |
apiKey |
string | Ya | - | Nilai kunci API |
headerName |
string | Tidak | “Tombol X-api” | Nama header untuk kunci API |
Contoh
{ "type": "API_KEY", "apiKey": "${AWS_SECRET:api-credentials}", "headerName": "Authorization" }
OAuth kredensi klien
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "OAUTH_CLIENT_CREDENTIALS" |
tokenUrl |
string | Ya | - | OAuth URL titik akhir token |
clientId |
string | Ya | - | OAuth ID klien |
clientSecret |
string | Ya | - | OAuth rahasia klien |
scope |
string | Tidak | - | OAuth ruang lingkup |
audience |
string | Tidak | - | OAuth penonton |
resource |
string | Tidak | - | OAuth sumber daya |
tokenApiAuth |
array | Tidak | - | Metode autentikasi Token API:BASIC_AUTH_HEADER, REQUEST_BODY |
tokenCacheTtl |
integer | Tidak | 3600 | Token cache TTL (minimal 60 detik) |
Contoh
{ "type": "OAUTH_CLIENT_CREDENTIALS", "tokenUrl": "https://auth.example.com/oauth/token", "clientId": "${AWS_SECRET:oauth-creds:client_id}", "clientSecret": "${AWS_SECRET:oauth-creds:client_secret}", "scope": "read write", "tokenCacheTtl": 7200 }
AWSTanda Tangan (Versi 4)
| Properti | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
type |
string | Ya | Harus "SIGV4" |
service |
string | Ya | Nama AWS layanan (misalnya, “execute-api”) |
region |
string | Ya | AWSwilayah |
roleArn |
string | Ya | IAM peran ARN untuk penandatanganan |
Contoh
{ "type": "SIGV4", "service": "execute-api", "region": "us-east-1", "roleArn": "arn:aws:iam::123456789012:role/SyntheticsRole" }
Pernyataan dan validasi
Pernyataan HTTP
Pernyataan kode status
| Properti | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
type |
string | Ya | Harus "STATUS_CODE" |
operator |
string | Ya | EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, IN_RANGE |
value |
bilangan bulat | Bersyarat | Kode status HTTP (100-599) |
rangeMin |
integer | Bersyarat | Nilai rentang minimum (untukIN_RANGE) |
rangeMax |
integer | Bersyarat | Nilai rentang maksimum (untukIN_RANGE) |
{ "type": "STATUS_CODE", "operator": "EQUALS", "value": 200 }
Pernyataan waktu respons
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "RESPONSE_TIME" |
operator |
string | Ya | - | LESS_THAN, GREATER_THAN, EQUALS |
value |
number | Ya | - | Nilai waktu (minimum 0) |
unit |
string | Tidak | “MILIDETIK” | Harus "MILLISECONDS" |
{ "type": "RESPONSE_TIME", "operator": "LESS_THAN", "value": 500, "unit": "MILLISECONDS" }
Pernyataan kepala
| Properti | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
type |
string | Ya | Harus "HEADER" |
headerName |
string | Ya | Nama header untuk memvalidasi |
operator |
string | Ya | EQUALS, NOT_EQUALS, CONTAINS, NOT_CONTAINS, REGEX_MATCH, EXIST |
value |
senar/boolean | Bersyarat | Nilai yang diharapkan (boolean untuk EXIST operator) |
{ "type": "HEADER", "headerName": "Content-Type", "operator": "CONTAINS", "value": "application/json" }
Pernyataan tubuh
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "BODY" |
target |
string | Tidak | “JSON” | JSON atau TEXT |
path |
string | Bersyarat | - | JSONPath (diperlukan untuk target JSON) |
operator |
string | Ya | - | CONTAINS, NOT_CONTAINS, EQUALS, NOT_EQUALS, EXISTS |
value |
senar/boolean | Ya | - | Nilai yang diharapkan (boolean untuk EXISTS operator) |
{ "type": "BODY", "target": "JSON", "path": "$.users[0].name", "operator": "EQUALS", "value": "John Doe" }
Pernyataan DNS
Catat pernyataan nilai
| Properti | Tipe | Diperlukan | Kisaran | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "RECORD_VALUE" |
operator |
string | Ya | - | EQUALS, NOT_EQUALS, CONTAINS, NOT_CONTAINS, REGEX_MATCH |
value |
string | Ya | - | Nilai rekor yang diharapkan |
Rekam penegasan hitungan
| Properti | Tipe | Diperlukan | Kisaran | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "RECORD_COUNT" |
operator |
string | Ya | - | EQUALS, GREATER_THAN, LESS_THAN |
value |
bilangan bulat | Ya | ≥ 0 | Jumlah yang diharapkan (minimum 0) |
Pernyataan otoritatif
| Properti | Tipe | Diperlukan | Kisaran | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "AUTHORITATIVE" |
value |
boolean | Ya | - | Status otoritatif yang diharapkan |
Pernyataan TTL
| Properti | Tipe | Diperlukan | Kisaran | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "TTL" |
operator |
string | Ya | - | EQUALS, GREATER_THAN, LESS_THAN |
value |
bilangan bulat | Ya | ≥ 0 | TTL yang diharapkan (minimal 0) |
Pernyataan SSL
Pernyataan kedaluwarsa sertifikat
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "CERTIFICATE_EXPIRY" |
operator |
string | Ya | - | GREATER_THAN, LESS_THAN |
value |
bilangan bulat | Ya | - | Nilai waktu (minimum 0) |
unit |
string | Tidak | “HARI” | DAYS, HOURS |
Pernyataan subjek sertifikat
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "CERTIFICATE_SUBJECT" |
field |
string | Ya | - | Bidang subjek:CN,O,OU,C,ST, L |
operator |
string | Ya | - | CONTAINS, EQUALS, REGEX_MATCH |
value |
string | Ya | - | Nilai bidang yang diharapkan |
Pernyataan penerbit sertifikat
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "CERTIFICATE_ISSUER" |
field |
string | Ya | - | Bidang penerbit:CN, O |
operator |
string | Ya | - | CONTAINS, EQUALS |
value |
string | Ya | - | Nilai bidang yang diharapkan |
Pernyataan TCP
Pernyataan keberhasilan koneksi
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "CONNECTION_SUCCESSFUL" |
value |
boolean | Ya | - | Status koneksi yang diharapkan |
Pernyataan data respons
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type |
string | Ya | - | Harus "RESPONSE_DATA" |
operator |
string | Ya | - | CONTAINS, EQUALS, NOT_CONTAINS, REGEX_MATCH, STARTS_WITH, ENDS_WITH |
value |
string | Ya | - | Data respons yang diharapkan |
encoding |
string | Tidak | “UTF-8" | UTF-8, ASCII, HEX |
Ekstraksi data
Ekstraktor memungkinkan Anda untuk menangkap data dari tanggapan untuk digunakan dalam langkah berikutnya atau untuk tujuan pelaporan.
Sifat ekstraksi
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
name |
string | Ya | - | Nama variabel untuk data yang diekstraksi |
type |
string | Ya | - | Jenis ekstraksi: BODY |
path |
string | Tidak | - | JSONPath untuk ekstraksi tubuh |
regex |
string | Tidak | - | Pola ekspresi reguler |
regexGroup |
integer | Tidak | 0 | Grup penangkapan Regex (minimal 0) |
Validasi nama ekstraksi
Pola:
^[a-zA-Z][a-zA-Z0-9_]*$Harus dimulai dengan surat
Dapat berisi huruf, angka, dan garis bawah
Batasan - Substitusi tidak berlaku untuk bidang dalam skema yang memiliki nilai ENUM tertentu
Jenis ekstraksi
{ "name": "userId", "type": "BODY", "path": "$.user.id" }
{ "stepName": "loginAndExtract", "checkerType": "HTTP", "url": "https://api.example.com/login", "httpMethod": "POST", "body": "{\"username\":\"test\",\"password\":\"pass\"}", "extractors": [ { "name": "textVariable", "type": "BODY", "path": "$.myvalue" } ] }, { "stepName": "substituteVariable", "checkerType": "HTTP", "url": "https://api.example.com/get/${textVariable}", "httpMethod": "GET", "assertions": [ { "type": "BODY", "target": "JSON", "path": "$.users[0].name", "operator": "EQUALS", "value": "${textVariable}" } ] }