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 Pemeriksaan
Cetak biru Node.js multi cek memungkinkan Anda membuat burung kenari yang melakukan beberapa pemeriksaan validasi dalam satu kali proses kenari. 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 kenari cetak biru API lanjutan 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 | Kumpulan 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 diperbolehkan
-
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 dengan 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 dapat berisi huruf, angka, dan garis bawah saja
-
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-z A-Z0-9 _-] *$
-
Panjang maksimum - 64 karakter
-
Harus dimulai dengan huruf
Penomoran langkah
-
Langkah-langkah diberi nomor sebagai tombol string: “1", “2",..., “10"
-
Pola: ^ ([1-9] |10) $
-
Minimal 1 langkah diperlukan
-
Maksimal 10 langkah diperbolehkan
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 API 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 | Keterlambatan sebelum permintaan (detik) |
headers
|
object | - | - | Header HTTP kustom |
body
|
string | - | - | Badan permintaan 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 rekam 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 | Waktu tunggu 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 | Nama host target (format nama host) |
Properti opsional
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
port
|
Integer | 443 | Port SSL (1-65535) |
timeout
|
integer | 30000 | Waktu habis 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 | Nama host target (format nama host) |
port
|
integer | Pelabuhan target (1-65535) |
Properti opsional
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
timeout
|
Integer | 30000 | Waktu habis keseluruhan (5000-300000ms) |
connectionTimeout
|
integer | 3000 | Waktu habis 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 | - | Validasi koneksi dan 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 autentikasi
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 | "X-API-Key" | Nama header untuk kunci API |
Contoh
{ "type": "API_KEY", "apiKey": "${AWS_SECRET:api-credentials}", "headerName": "Authorization" }
KredenSIAL klien OAuth
| Properti | Tipe | Diperlukan | Default | Deskripsi |
|---|---|---|---|---|
type
|
string | Ya | - | Harus "OAUTH_CLIENT_CREDENTIALS" |
tokenUrl
|
string | Ya | - | URL titik akhir token OAuth |
clientId
|
string | Ya | - | ID klien OAuth |
clientSecret
|
string | Ya | - | Rahasia klien OAuth |
scope
|
string | Tidak | - | Lingkup OAuth |
audience
|
string | Tidak | - | Audiens OAuth |
resource
|
string | Tidak | - | Sumber daya OAuth |
tokenApiAuth
|
array | Tidak | - | Metode autentikasi API Token:BASIC_AUTH_HEADER, REQUEST_BODY |
tokenCacheTtl
|
integer | Tidak | 3600 | Cache token 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 }
AWS Tanda tangan (Versi 4)
| Properti | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
type
|
string | Ya | Harus "SIGV4" |
service
|
string | Ya | Nama AWS layanan (misalnya, “execute-api”) |
region
|
string | Ya | AWS wilayah |
roleArn
|
string | Ya | Peran IAM 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 divalidasi |
operator
|
string | Ya | EQUALS, NOT_EQUALS, CONTAINS,
NOT_CONTAINS, REGEX_MATCH, EXIST |
value
|
string/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
|
string/boolean | Ya | - | Nilai yang diharapkan (boolean untuk EXISTS operator) |
{ "type": "BODY", "target": "JSON", "path": "$.users[0].name", "operator": "EQUALS", "value": "John Doe" }
Pernyataan DNS
Rekam 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 |
Pernyataan jumlah catatan
| 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 (minimal 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 | Diharapkan TTL (minimum 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: CNO,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 tanggapan
| 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 menangkap data dari tanggapan untuk digunakan dalam langkah-langkah selanjutnya 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 tangkapan Regex (minimal 0) |
Validasi nama ekstraksi
-
Pola:
^[a-zA-Z][a-zA-Z0-9_]*$ -
Harus dimulai dengan huruf
-
Dapat berisi huruf, angka, dan garis bawah
Bat asan — 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}" } ] }