Zum Inhalt springen

Erweiterte API-Templates

Zuletzt aktualisiert am

Die Snippets auf dieser Seite erweitern den grundlegenden Request-Body, der im API-Tab von Einen ALB erstellen gezeigt wird. Wir empfehlen Ihnen, diese Seite bzw. diesen Tab zuerst zu lesen, um den grundlegenden Erstellungsprozess und die Voraussetzungen zu verstehen.

Die vollständige API-Spezifikation finden Sie in der Application Load Balancer API-Dokumentation.

Fügen Sie diesen Abschnitt zum grundlegenden Request-Body hinzu, um für eine bestimmte Routing-Regel cookie-basierte Session-Persistenz zu aktivieren:

{
...
"rules": [
{
"pathPrefix": "/tasks",
"targetPool": "demo-alb-tp-80",
"cookiePersistence": {
"name": "sessionid",
"ttl": "360s"
}
}
]
...
}

Fügen Sie diesen Abschnitt zum grundlegenden Request-Body hinzu, um für eine bestimmte Routing-Regel WebSocket-Unterstützung zu aktivieren:

{
...
"rules": [
{
"pathPrefix": "/ws",
"targetPool": "demo-alb-tp-8000",
"webSocket": true
}
]
...
}

Fügen Sie diesen Abschnitt zum grundlegenden Request-Body hinzu, um für eine bestimmte Routing-Regel Query-Parameter-Matching zu aktivieren:

{
...
"rules": [
{
"pathPrefix": "/resources",
"targetPool": "demo-alb-tp-80",
"queryParameters": [
{
"name": "userId",
"exactMatch": "123"
}
]
}
]
...
}

Bevor Sie den eigentlichen Load Balancer mit HTTPS-Listener erstellen können, müssen Sie ein vorhandenes TLS-Zertifikat mit dieser API-Methode speichern. Hier ist ein Beispiel für den Request-Body:

{
"name": "demo-tls-cert-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"privateKey": "-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----",
"publicKey": "-----BEGIN CERTIFICATE------ ... -----END CERTIFICATE-----"
}

Wir empfehlen, Zertifikate zu versionieren und ihren SHA-256-Fingerprint/Hash im Dateinamen zu ergänzen, damit Verwaltung und Identifikation einfacher werden. Weitere Zertifikatsoperationen finden Sie in der API-Dokumentation für Application Load Balancer Certificates.

Fügen Sie diesen Abschnitt zum grundlegenden Request-Body hinzu, um einen HTTPS-Listener zu erstellen, der das gespeicherte TLS-Zertifikat verwendet:

{
...
"listeners": [
{
"displayName": "tls-listener",
"port": 443,
"protocol": "PROTOCOL_HTTPS",
"http": {
"hosts": [
{
"host": "app.stackit.cloud",
"rules": [
{
"pathPrefix": "/",
"targetPool": "demo-alb-tp-80"
}
]
}
]
},
"https": {
"certificateConfig": {
"certificateIds": [
"demo-tls-cert-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
]
}
}
}
],
...
}

Dieses Beispiel verwendet eine benutzerdefinierte Zertifizierungsstelle (CA) zur Backend-TLS-Validierung. Bei nicht benutzerdefinierten CAs lassen Sie das Feld customCa weg. Fügen Sie diesen Abschnitt zum grundlegenden Request-Body hinzu, um einen Target-Pool mit aktiviertem TLS-Bridging zu erstellen:

{
...
"listeners": [
{
"displayName": "tls-listener",
"port": 443,
"protocol": "PROTOCOL_HTTPS",
"http": {
"hosts": [
{
"host": "app.stackit.cloud",
"rules": [
{
"pathPrefix": "/",
"targetPool": "demo-alb-tp-80"
}
]
}
]
},
"https": {
"certificateConfig": {
"certificateIds": [
"demo-tls-cert-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
]
}
}
}
],
"targetPools": [
{
"name": "secure-tp-5732",
"targetPort": 5732,
"targets": [
{
"displayName": "my-target",
"ip": "192.0.2.5"
}
],
"tlsConfig": {
"customCa": "my-custom-ca",
"enabled": true,
"skipCertificateValidation": false
},
"activeHealthCheck": {
"healthyThreshold": 1,
"unhealthyThreshold": 1,
"interval": "3s",
"intervalJitter": "3s",
"timeout": "3s",
"httpHealthChecks": {
"path": "/health",
"okStatuses": [ "200" ]
}
}
}
],
...
}

Alle diese Konfigurationen können Sie auch über das STACKIT Portal umsetzen, um Ihre Application Load Balancer zu erstellen und zu verwalten.