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 Node.js Multi Checks
Mit dem Blueprint Node.js für Mehrfachprüfungen können Sie Canaries erstellen, die mehrere Validierungsprüfungen innerhalb eines einzigen Canary-Laufs durchführen. Dieser Blueprint ist nützlich, wenn Sie mehrere Endpunkte testen, verschiedene Aspekte Ihrer Anwendung validieren oder nacheinander eine Reihe verwandter Prüfungen durchführen möchten.
Themen
Struktur der Stammkonfiguration
Die Root-Konfiguration definiert die Gesamtstruktur Ihres erweiterten API-Blueprint-Canary.
| Eigenschaft | Typ | Erforderlich | Description |
|---|---|---|---|
globalSettings |
Object | Nein | Standardkonfigurationen, die auf alle Schritte angewendet wurden |
variables |
Object | Nein | Schrittübergreifend wiederverwendbare Werte (max. 10) |
steps |
Object | Ja | Erfassung 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
Außer
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 überschrieben werden.
Eigenschaften
| Eigenschaft | Typ | Standard | Bereich | Description |
|---|---|---|---|---|
stepTimeout |
Ganzzahl | 30000 | 5000-300000 | Standard-Timeout für alle Schritte (Millisekunden) |
Beispiel
{ "globalSettings": { "stepTimeout": 60000, } }
Variablen und Datenmanagement
Mit Variablen können Sie wiederverwendbare Werte definieren, auf die in Ihrer gesamten Konfiguration mithilfe von ${variableName} Syntax verwiesen werden kann.
Eigenschaften von Variablen
| Eigenschaft | Typ | Description |
|---|---|---|
| Namen von Variablen | Zeichenfolge | Muss mit dem Muster übereinstimmen ^[a-zA-Z][a-zA-Z0-9_]*$ |
| Variablenwerte | Zeichenfolge | Beliebiger Zeichenkettenwert |
Einschränkungen
Maximal 10 Variablen pro Konfiguration
Variablennamen müssen mit einem Buchstaben beginnen
Variablennamen dürfen 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
Die einzelnen Schritte definieren die einzelnen Überwachungsvorgänge. Jeder Schritt ist von 1 bis 10 nummeriert und beinhaltet eine bestimmte Art von Prüfung.
Allgemeine Eigenschaften von Schritten
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
stepName |
Zeichenfolge | Ja | Eindeutiger Bezeichner für den Schritt |
checkerType |
Zeichenfolge | Ja | Art der Prüfung:HTTP,DNS,SSL, TCP |
extractors |
Array | Nein | Konfiguration der Datenextraktion |
Überprüfung des Schrittnamens
Muster - ^ [a-zA-Z] [A-zA-Z0-9_-] *$
Maximale Länge: 64 Zeichen
Muss mit einem Buchstaben beginnen
Nummerierung der Schritte
Die Schritte werden als Zeichenkettenschlüssel nummeriert: „1", „2",..., „10"
Muster: ^ ([1-9] |10) $
Mindestens 1 Schritt erforderlich
Maximal 10 Schritte sind zulässig
Beispiel
{ "steps": { "1": { "stepName": "loginAPI", "checkerType": "HTTP", "url": "https://api.example.com/login", "httpMethod": "POST" }, "2": { "stepName": "dnsCheck", "checkerType": "DNS", "domain": "example.com" } } }
Überprüfen Sie die Typen
HTTP-Prüfungen
Überwachen Sie Webendpunkte und profitieren Sie von APIs einer umfassenden Überprüfung von Anfragen und Antworten.
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 | Bereich | 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 | - | - | Hauptteil der Anfrage für POST/PUT Operationen |
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 Informationen auf.
Erforderliche Eigenschaften
| Eigenschaft | Typ | Description |
|---|---|---|
domain |
Zeichenfolge | Abzufragender Domainname (Hostnamenformat) |
Optionale Eigenschaften
| Eigenschaft | Typ | Standard | Description |
|---|---|---|---|
recordType |
Zeichenfolge | „EIN“ | Typ des DNS-Eintrags: ACNAME,MX,TXT, NS |
nameserver |
Zeichenfolge | - | Spezifischer DNS-Server, der abgefragt werden soll |
timeout |
Ganzzahl | 30000 | Timeout 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 Überprüfung 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-Anschluss (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 | Verbindungs-Timeout (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 | - | Überprüfung der Verbindung und der Antwort |
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" }
Standardauthentifizierung
| 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üsselauthentifizierung
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type |
Zeichenfolge | Ja | - | Muss "API_KEY" sein. |
apiKey |
Zeichenfolge | Ja | - | Wert des API-Schlüssels |
headerName |
Zeichenfolge | Nein | „X-API-Schlüssel“ | Header-Name für den API-Schlüssel |
Beispiel
{ "type": "API_KEY", "apiKey": "${AWS_SECRET:api-credentials}", "headerName": "Authorization" }
OAuth Kundenanmeldedaten
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type |
Zeichenfolge | Ja | - | Muss "OAUTH_CLIENT_CREDENTIALS" sein. |
tokenUrl |
Zeichenfolge | Ja | - | OAuth Token-Endpunkt-URL |
clientId |
Zeichenfolge | Ja | - | OAuth Client-ID |
clientSecret |
Zeichenfolge | Ja | - | OAuth Geheimes Client-Geheimnis |
scope |
Zeichenfolge | Nein | - | OAuth Geltungsbereich |
audience |
Zeichenfolge | Nein | - | OAuth Publikum |
resource |
Zeichenfolge | Nein | - | OAuth Ressource |
tokenApiAuth |
Array | Nein | - | Authentifizierungsmethoden der Token-API: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-Rolle ARN zum Signieren |
Beispiel
{ "type": "SIGV4", "service": "execute-api", "region": "us-east-1", "roleArn": "arn:aws:iam::123456789012:role/SyntheticsRole" }
Behauptungen 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 }
Behauptungen zur Antwortzeit
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type |
Zeichenfolge | Ja | - | Muss "RESPONSE_TIME" sein. |
operator |
Zeichenfolge | Ja | - | LESS_THAN, GREATER_THAN, EQUALS |
value |
Zahl | 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 |
Zeichenfolge/boolescher Wert | Bedingt | Erwarteter Wert (boolescher Wert für Operator) EXIST |
{ "type": "HEADER", "headerName": "Content-Type", "operator": "CONTAINS", "value": "application/json" }
Behauptungen im Hauptteil
| 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 |
Zeichenfolge/boolescher Wert | Ja | - | Erwarteter Wert (boolescher Wert für Operator) EXISTS |
{ "type": "BODY", "target": "JSON", "path": "$.users[0].name", "operator": "EQUALS", "value": "John Doe" }
DNS-Assertionen
Behauptungen über Rekordwerte
| Eigenschaft | Typ | Erforderlich | Bereich | 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 von Assertionen
| Eigenschaft | Typ | Erforderlich | Bereich | 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 | Bereich | Description |
|---|---|---|---|---|
type |
Zeichenfolge | Ja | - | Muss "AUTHORITATIVE" sein. |
value |
boolesch | Ja | - | Erwarteter maßgeblicher Status |
TTL-Assertionen
| Eigenschaft | Typ | Erforderlich | Bereich | Description |
|---|---|---|---|---|
type |
Zeichenfolge | Ja | - | Muss "TTL" sein. |
operator |
Zeichenfolge | Ja | - | EQUALS, GREATER_THAN, LESS_THAN |
value |
Ganzzahl | Ja | ≥ 0 | Erwartete TTL (mindestens 0) |
SSL-Assertionen
Behauptungen 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 des Betreffenden des Zertifikats
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type |
Zeichenfolge | Ja | - | Muss "CERTIFICATE_SUBJECT" sein. |
field |
Zeichenfolge | Ja | - | Fachfeld: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 des Ausstellers:, CN O |
operator |
Zeichenfolge | Ja | - | CONTAINS, EQUALS |
value |
Zeichenfolge | Ja | - | Erwarteter Feldwert |
TCP-Assertionen
Behauptungen über eine erfolgreiche Verbindung
| Eigenschaft | Typ | Erforderlich | Standard | Description |
|---|---|---|---|---|
type |
Zeichenfolge | Ja | - | Muss "CONNECTION_SUCCESSFUL" sein. |
value |
boolesch | Ja | - | Erwarteter Verbindungsstatus |
Behauptungen zu 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
Mit Extractors können Sie Daten aus Antworten erfassen, um sie in nachfolgenden Schritten oder zu Berichtszwecken 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 zur Körperextraktion |
regex |
Zeichenfolge | Nein | - | Muster für reguläre Ausdrücke |
regexGroup |
Ganzzahl | Nein | 0 | Regex-Erfassungsgruppe (mindestens 0) |
Überprüfung des Namens der Extraktion
Pattern:
^[a-zA-Z][a-zA-Z0-9_]*$Muss mit einem Buchstaben beginnen
Kann Buchstaben, Zahlen und Unterstriche enthalten
Einschränkung — Die Substitution 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}" } ] }