View a markdown version of this page

Menulis konfigurasi JSON untuk cetak biru Node.js multi Pemeriksaan - Amazon CloudWatch

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.

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 luarglobalSettings, variables, dan steps

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}" } ] }