Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Schreiben einer JSON-Konfiguration für den Blueprint mit Node.js mehreren Checks
Mit dem Node.js Multichecks-Blueprint können Sie Canaries erstellen, die innerhalb eines einzigen Canary-Durchlaufs mehrere Validierungsprüfungen durchführen. Dieser Blueprint ist nützlich, wenn Sie mehrere Endpunkte testen, verschiedene Aspekte Ihrer Anwendung validieren oder eine Reihe verwandter Prüfungen nacheinander durchführen möchten.
Themen
Struktur der Stammkonfiguration
Die Root-Konfiguration definiert die Gesamtstruktur Ihres erweiterten API-Blueprint-Canary.
| Eigenschaft | Typ | Erforderlich | Description |
|---|---|---|---|
globalSettings
|
Objekt | Nein | Standardkonfigurationen, die auf alle Schritte angewendet werden |
variables
|
Objekt | Nein | Wiederverwendbare Werte für alle Schritte (max. 10) |
steps
|
Objekt | Ja | Sammlung von Überwachungsschritten (1—10 Schritte) |
Beispiel
{ "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" } } }
Regeln für die Validierung
-
Muss mindestens einen Schritt enthalten
-
Maximal 10 Schritte sind zulässig
-
Neben
globalSettings, und sind keine weiteren Eigenschaften zulässigvariablessteps
Globale Einstellungen
Globale Einstellungen bieten Standardkonfigurationen, die für alle Schritte gelten, sofern sie nicht auf Schrittebene außer Kraft gesetzt werden.
Eigenschaften
| Eigenschaft | Typ | Standard | Range | Description |
|---|---|---|---|---|
stepTimeout
|
Ganzzahl | 30000 | 5000-300000 | Standard-Timeout für alle Schritte (Millisekunden) |
Beispiel
{ "globalSettings": { "stepTimeout": 60000, } }
Variablen und Datenmanagement
Mithilfe von Variablen können Sie wiederverwendbare Werte definieren, auf die in Ihrer gesamten Konfiguration mithilfe der ${variableName} Syntax verwiesen werden kann.
Eigenschaften von Variablen
| Eigenschaft | Typ | Description |
|---|---|---|
| Variablennamen | Zeichenfolge | Muss dem Muster entsprechen ^[a-zA-Z][a-zA-Z0-9_]*$ |
| Variable Werte | Zeichenfolge | Beliebiger Zeichenkettenwert |
Einschränkungen
-
Maximal 10 Variablen pro Konfiguration
-
Variablennamen müssen mit einem Buchstaben beginnen
-
Variablennamen können nur Buchstaben, Zahlen und Unterstriche enthalten
-
Die maximale Länge ist im Schema nicht angegeben
Beispiel
{ "variables": { "baseUrl": "https://api.example.com", "apiKey": "${AWS_SECRET:my-api-key}", "timeout": "30000", "userEmail": "test@example.com" } }
Verwendung der Konfiguration
{ "steps": { "1": { "url": "${baseUrl}/users", "timeout": "${timeout}", "headers": { "Authorization": "Bearer ${apiKey}" } } } }
Definitionen der Schritte
Schritte definieren einzelne Überwachungsvorgänge. Jeder Schritt ist von 1 bis 10 nummeriert und enthält eine bestimmte Art der Prüfung.
Allgemeine Schritteigenschaften
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
stepName
|
Zeichenfolge | Ja | Eindeutiger Bezeichner für den Schritt |
checkerType
|
Zeichenfolge | Ja | Art der Prüfung: HTTPDNS,SSL,
TCP |
extractors
|
Array | Nein | Konfiguration der Datenextraktion |
Validierung des Schrittnamens
-
Muster - ^ [a-zA-Z] [a-z A-Z0-9 _-] *$
-
Maximale Länge: 64 Zeichen
-
Muss mit einem Buchstaben beginnen
Schritt Nummerierung
-
Die Schritte werden als Zeichenkettenschlüssel nummeriert: „1", „2",..., „10"
-
Muster: ^ ([1-9] |10) $
-
Mindestens 1 Schritt erforderlich
-
Maximal 10 Schritte erlaubt
Beispiel
{ "steps": { "1": { "stepName": "loginAPI", "checkerType": "HTTP", "url": "https://api.example.com/login", "httpMethod": "POST" }, "2": { "stepName": "dnsCheck", "checkerType": "DNS", "domain": "example.com" } } }
Typen überprüfen
HTTP-Prüfungen
Überwachen Sie Web-Endpunkte und APIs mit einer umfassenden Anfrage- und Antwortvalidierung.
Erforderliche Eigenschaften
| Eigenschaft | Typ | Description |
|---|---|---|
url
|
Zeichenfolge | Ziel-URL (muss ein gültiges URI-Format haben) |
httpMethod
|
Zeichenfolge | HTTP-Methode: GETPOST,PUT,
PATCH,DELETE,HEAD, OPTIONS |
Optionale Eigenschaften
| Eigenschaft | Typ | Standard | Range | Description |
|---|---|---|---|---|
timeout
|
Ganzzahl | 30000 | 5000-300000 | Zeitlimit für Anfragen (Millisekunden) |
waitTime
|
Ganzzahl | 0 | 0-60 | Verzögerung vor der Anfrage (Sekunden) |
headers
|
object | - | - | Benutzerdefinierte HTTP-Header |
body
|
Zeichenfolge | - | - | Text für POST/PUT Operationen anfragen |
authentication
|
object | - | - | Authentifizierungs-Konfiguration |
assertions
|
Array | - | - | Regeln für die Validierung von Antworten |
Beispiel
{ "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 } ] }
DNS-Prüfungen
Überprüfen Sie die DNS-Auflösung und zeichnen Sie die Informationen auf.
Erforderliche Eigenschaften
| Eigenschaft | Typ | Description |
|---|---|---|
domain
|
Zeichenfolge | Domainname, der abgefragt werden soll (Hostnamenformat) |
Optionale Eigenschaften
| Eigenschaft | Typ | Standard | Description |
|---|---|---|---|
recordType
|
Zeichenfolge | „A“ | Typ des DNS-Eintrags: ACNAME,MX,
TXT, NS |
nameserver
|
Zeichenfolge | - | Spezifischer DNS-Server, der abgefragt werden soll |
timeout
|
Ganzzahl | 30000 | Zeitlimit für Abfragen (5000-300000 ms) |
port
|
Ganzzahl | 53 | DNS-Serverport (1-65535) |
protocol
|
Zeichenfolge | „UDP“ | Protokoll: UDP oder TCP |
assertions
|
Array | - | Regeln für die Validierung von DNS-Antworten |
Beispiel
{ "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" } ] }
SSL-Prüfungen
Überwachen Sie den Zustand und die Konfiguration des SSL-Zertifikats.
Erforderliche Eigenschaften
| Eigenschaft | Typ | Description |
|---|---|---|
hostname
|
Zeichenfolge | Ziel-Hostname (Hostnamenformat) |
Optionale Eigenschaften
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
port
|
Ganzzahl | 443 | SSL-Port (1-65535) |
timeout
|
Ganzzahl | 30000 | Verbindungs-Timeout (5000-300000 ms) |
sni
|
boolesch | TRUE | Angabe des Servernamens |
verifyHostname
|
boolesch | TRUE | Überprüfung des Hostnamens |
allowSelfSigned
|
boolesch | FALSE | Akzeptieren Sie selbstsignierte Zertifikate |
assertions
|
Array | - | Regeln für die Validierung von Zertifikaten |
Beispiel
{ "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" } ] }
TCP-Prüfungen
Testen Sie die TCP-Port-Konnektivität und die Antwortvalidierung.
Erforderliche Eigenschaften
| Eigenschaft | Typ | Description |
|---|---|---|
hostname
|
Zeichenfolge | Ziel-Hostname (Hostnamenformat) |
port
|
Ganzzahl | Zielport (1-65535) |
Optionale Eigenschaften
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
timeout
|
Ganzzahl | 30000 | Gesamtzeitlimit (5000-300000 ms) |
connectionTimeout
|
Ganzzahl | 3000 | Zeitlimit für die Verbindung (5000-300000 ms) |
readTimeout
|
Ganzzahl | 2000 | Timeout beim Lesen von Daten (5000-300000 ms) |
sendData
|
Zeichenfolge | - | Daten, die nach der Verbindung gesendet werden sollen |
expectedResponse
|
Zeichenfolge | - | Erwartete Antwortdaten |
encoding
|
Zeichenfolge | "UTF-8" | Datenkodierung:UTF-8,ASCII, HEX |
assertions
|
Array | - | Verbindungs- und Antwortvalidierung |
Beispiel
{ "stepName": "databaseConnection", "checkerType": "TCP", "hostname": "db.example.com", "port": 3306, "connectionTimeout": 5000, "sendData": "SELECT 1", "expectedResponse": "1", "assertions": [ { "type": "CONNECTION_SUCCESSFUL", "value": true } ] }
Authentifizierungsmethoden
Keine Authentifizierung
{ "type": "NONE" }
Grundlegende Authentifizierung
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type
|
Zeichenfolge | Ja | Muss "BASIC" sein. |
username
|
Zeichenfolge | Ja | Nutzername für die Authentifizierung |
password
|
Zeichenfolge | Ja | Passwort für die Authentifizierung |
Beispiel
{ "type": "BASIC", "username": "admin", "password": "${AWS_SECRET:basic-auth:password}" }
API-Schlüssel-Authentifizierung
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "API_KEY" sein. |
apiKey
|
Zeichenfolge | Ja | - | API-Schlüsselwert |
headerName
|
Zeichenfolge | Nein | "X-API-Key" | Header-Name für den API-Schlüssel |
Beispiel
{ "type": "API_KEY", "apiKey": "${AWS_SECRET:api-credentials}", "headerName": "Authorization" }
OAuth-Client-Anmeldeinformationen
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "OAUTH_CLIENT_CREDENTIALS" sein. |
tokenUrl
|
Zeichenfolge | Ja | - | URL des OAuth-Token-Endpunkts |
clientId
|
Zeichenfolge | Ja | - | OAuth-Client-ID |
clientSecret
|
Zeichenfolge | Ja | - | Geheimer OAuth-Client |
scope
|
Zeichenfolge | Nein | - | OAuth-Bereich |
audience
|
Zeichenfolge | Nein | - | OAuth-Publikum |
resource
|
Zeichenfolge | Nein | - | OAuth-Ressource |
tokenApiAuth
|
Array | Nein | - | Token-API-Authentifizierungsmethoden:, BASIC_AUTH_HEADER REQUEST_BODY |
tokenCacheTtl
|
Ganzzahl | Nein | 3600 | Token-Cache TTL (mindestens 60 Sekunden) |
Beispiel
{ "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 Signatur (Version 4)
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type
|
Zeichenfolge | Ja | Muss "SIGV4" sein. |
service
|
Zeichenfolge | Ja | Name des AWS Dienstes (z. B. „execute-api“) |
region
|
Zeichenfolge | Ja | AWS Region |
roleArn
|
Zeichenfolge | Ja | IAM-Rollen-ARN zum Signieren |
Beispiel
{ "type": "SIGV4", "service": "execute-api", "region": "us-east-1", "roleArn": "arn:aws:iam::123456789012:role/SyntheticsRole" }
Assertionen und Validierung
HTTP-Assertionen
Zusicherungen im Statuscode
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type
|
Zeichenfolge | Ja | Muss "STATUS_CODE" sein. |
operator
|
Zeichenfolge | Ja | EQUALS, NOT_EQUALS, GREATER_THAN,
LESS_THAN, IN_RANGE |
value
|
Ganzzahl | Bedingt | HTTP-Statuscode (100-599) |
rangeMin
|
Ganzzahl | Bedingt | Minimaler Bereichswert (für) IN_RANGE |
rangeMax
|
Ganzzahl | Bedingt | Maximaler Bereichswert (fürIN_RANGE) |
{ "type": "STATUS_CODE", "operator": "EQUALS", "value": 200 }
Assertionen zur Antwortzeit
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "RESPONSE_TIME" sein. |
operator
|
Zeichenfolge | Ja | - | LESS_THAN, GREATER_THAN, EQUALS |
value
|
number | Ja | - | Zeitwert (mindestens 0) |
unit
|
Zeichenfolge | Nein | „MILLISEKUNDEN“ | Muss "MILLISECONDS" sein. |
{ "type": "RESPONSE_TIME", "operator": "LESS_THAN", "value": 500, "unit": "MILLISECONDS" }
Hauptaussagen
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type
|
Zeichenfolge | Ja | Muss "HEADER" sein. |
headerName
|
Zeichenfolge | Ja | Name des zu validierenden Headers |
operator
|
Zeichenfolge | Ja | EQUALS, NOT_EQUALS, CONTAINS,
NOT_CONTAINS, REGEX_MATCH, EXIST |
value
|
string/boolean | Bedingt | Erwarteter Wert (boolescher Wert für EXIST Operator) |
{ "type": "HEADER", "headerName": "Content-Type", "operator": "CONTAINS", "value": "application/json" }
Hauptaussagen
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "BODY" sein. |
target
|
Zeichenfolge | Nein | „JSON“ | JSON oder TEXT |
path
|
Zeichenfolge | Bedingt | - | JSONPath (erforderlich für das JSON-Ziel) |
operator
|
Zeichenfolge | Ja | - | CONTAINS, NOT_CONTAINS, EQUALS,
NOT_EQUALS, EXISTS |
value
|
string/boolean | Ja | - | Erwarteter Wert (boolescher Wert für Operator) EXISTS |
{ "type": "BODY", "target": "JSON", "path": "$.users[0].name", "operator": "EQUALS", "value": "John Doe" }
DNS-Assertionen
Wertezusicherungen aufzeichnen
| Eigenschaft | Typ | Erforderlich | Range | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "RECORD_VALUE" sein. |
operator
|
Zeichenfolge | Ja | - | EQUALS, NOT_EQUALS, CONTAINS,
NOT_CONTAINS, REGEX_MATCH |
value
|
Zeichenfolge | Ja | - | Erwarteter Rekordwert |
Anzahl der Assertionen
| Eigenschaft | Typ | Erforderlich | Range | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "RECORD_COUNT" sein. |
operator
|
Zeichenfolge | Ja | - | EQUALS, GREATER_THAN, LESS_THAN |
value
|
Ganzzahl | Ja | ≥ 0 | Erwartete Anzahl (mindestens 0) |
Maßgebliche Behauptungen
| Eigenschaft | Typ | Erforderlich | Range | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "AUTHORITATIVE" sein. |
value
|
boolesch | Ja | - | Erwarteter autoritativer Status |
TTL-Assertionen
| Eigenschaft | Typ | Erforderlich | Range | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "TTL" sein. |
operator
|
Zeichenfolge | Ja | - | EQUALS, GREATER_THAN, LESS_THAN |
value
|
Ganzzahl | Ja | ≥ 0 | Erwarteter TTL (mindestens 0) |
SSL-Zusicherungen
Assertionen zum Ablauf des Zertifikats
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "CERTIFICATE_EXPIRY" sein. |
operator
|
Zeichenfolge | Ja | - | GREATER_THAN, LESS_THAN |
value
|
Ganzzahl | Ja | - | Zeitwert (mindestens 0) |
unit
|
Zeichenfolge | Nein | „TAGE“ | DAYS, HOURS |
Behauptungen über den Betreff des Zertifikats
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "CERTIFICATE_SUBJECT" sein. |
field
|
Zeichenfolge | Ja | - | Betrefffeld:CN,O,OU,C, ST L |
operator
|
Zeichenfolge | Ja | - | CONTAINS, EQUALS, REGEX_MATCH |
value
|
Zeichenfolge | Ja | - | Erwarteter Feldwert |
Behauptungen des Zertifikatsausstellers
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "CERTIFICATE_ISSUER" sein. |
field
|
Zeichenfolge | Ja | - | Feld „Aussteller“:, CN O |
operator
|
Zeichenfolge | Ja | - | CONTAINS, EQUALS |
value
|
Zeichenfolge | Ja | - | Erwarteter Feldwert |
TCP-Assertionen
Bestätigungen, dass die Verbindung erfolgreich war
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "CONNECTION_SUCCESSFUL" sein. |
value
|
boolesch | Ja | - | Erwarteter Verbindungsstatus |
Bestätigungen der Antwortdaten
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type
|
Zeichenfolge | Ja | - | Muss "RESPONSE_DATA" sein. |
operator
|
Zeichenfolge | Ja | - | CONTAINS, EQUALS, NOT_CONTAINS,
REGEX_MATCH, STARTS_WITH, ENDS_WITH |
value
|
Zeichenfolge | Ja | - | Erwartete Antwortdaten |
encoding
|
Zeichenfolge | Nein | "UTF-8" | UTF-8, ASCII, HEX |
Datenextraktion
Extraktoren ermöglichen es Ihnen, Daten aus Antworten zu erfassen, um sie in nachfolgenden Schritten oder für Berichtszwecke zu verwenden.
Eigenschaften der Extraktion
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
name
|
Zeichenfolge | Ja | - | Variablenname für extrahierte Daten |
type
|
Zeichenfolge | Ja | - | Art der Extraktion: BODY |
path
|
Zeichenfolge | Nein | - | JSONPath für die Körperextraktion |
regex
|
Zeichenfolge | Nein | - | Muster für reguläre Ausdrücke |
regexGroup
|
Ganzzahl | Nein | 0 | Regex-Erfassungsgruppe (mindestens 0) |
Validierung des Extraktionsnamens
-
Pattern:
^[a-zA-Z][a-zA-Z0-9_]*$ -
Muss mit einem Buchstaben beginnen
-
Kann Buchstaben, Zahlen und Unterstriche enthalten
Einschränkung — Die Ersetzung gilt nicht für Felder im Schema, die bestimmte ENUM-Werte haben
Extraktionstypen
{ "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}" } ] }