Verwenden von Gateways, um eingehende Anfragen an mehrere Endpunkte weiterzuleiten

Wenn Sie mehrere Dienstendpunkte hinter einem einzigen Hostnamen offenlegen möchten, können Sie ein Gateway erstellen. Ein Gateway hat einen Hostnamen, der einem öffentlichen Dienstendpunkt ähnelt. Weitere Informationen über öffentliche Dienstendpunkte finden Sie unter Konfigurieren des eingehenden Datenverkehrs des Dienstes.

Gateways routen eingehende Anforderungen (einschließlich -Inferenzanfragen) von außerhalb von Snowflake an einen oder mehrere Dienstendpunkte. Mit Gateways können Sie Folgendes tun:

  • Aufteilung des Datenverkehrs zwischen Diensten: Sie können mehreren Diensten erlauben, denselben Hostnamen zu verwenden. Das Routing erfolgt auf der Grundlage des für jeden Dienst angegebenen Prozentsatzes. Dies ist in den folgenden Szenarien nützlich:

    • A/B-Testszenario: Sie können einen Dienst aktualisieren und bereitstellen, während der ursprüngliche Dienst ausgeführt wird. Zu Testzwecken können Sie einen bestimmten Prozentsatz der eingehenden Anforderungen an den aktualisierten Dienst weiterleiten.

    • Hochverfügbarkeitsszenario: Sie haben einen hochverfügbaren Dienst, der beispielsweise über zwei Computepools bereitgestellt wird, wobei jeder Computepool in einer anderen Platzierungsgruppe erstellt wird. Sie können das Gateway verwenden, um eingehende Anforderungen aufzuteilen.

  • Stabile URL: Jedem Gateway wird bei der Erstellung ein Hostname zugewiesen. Der Hostname ändert sich während der Lebensdauer des Gateway-Objekts nicht. Sie können das Gateway-Objekt so ändern, dass das Routing an verschiedene Endpunkte erfolgt oder dass es unterschiedliche prozentuale Konfigurationen aufweist. Änderungen werden innerhalb einer Minute wirksam.

Die folgende Liste zeigt die Unterschiede zwischen einem Dienstendpunkt und einem Gateway:

  • Browser-Sicherheit: Der Dienstendpunkt unterstützt die Header der CORS-Konfiguration (corsSettings) und des Clouddienstanbieters (CSP) für browserbasierten Zugriff über Integrationen für den externen Zugriff. Ein Gateway unterstützt derzeit nicht CORS- oder CSP-Header.

  • Aufruferrechte: Der Dienstendpunkt unterstützt Aufruferrechte. Ein Gateway unterstützt derzeit keine Aufruferrechte.

  • Rollenbasierte Zugriffssteuerung (RBAC): Wenn Sie einen Dienstendpunkt verwenden, wird der Zugriff über Dienstrollen verwaltet. Wenn Sie ein Gateway verwenden, wird der Zugriff durch die Gewährung der USAGE-Berechtigung für das Gateway-Objekt verwaltet. Benutzende, die auf ein Gateway zugreifen, benötigen keine Dienstrollen für die zugrunde liegenden Dienstendpunkte.

Das Gateway-Routing berücksichtigt den relativen Prozentsatz der angegebenen funktionsfähigen Endpunkte. Weitere Informationen zum Failover-Verhalten eines Gateways finden Sie unter Verhalten des Gateway-Failovers.

Nachdem Sie die folgenden Abschnitte gelesen haben, können Sie ein Gateway erstellen und ändern. Weitere Informationen zum Erstellen eines Gateways finden Sie unter CREATE-GATEWAY. Weitere Informationen zum Ändern eines Gateways finden Sie unter ALTER-GATEWAY.

Anforderungen an die Zugriffssteuerung

Die Eigentümerrolle des Gateway muss über die folgenden Berechtigungen verfügen:

Berechtigung

Objekt

Anmerkungen

CREATE-GATEWAY

Schema

Erforderlich, um ein Gateway zu erstellen.

BIND SERVICE ENDPOINT

Konto

Erforderlich, um Dienstendpunkte an das Gateway zu binden.

USAGE

Datenbank

Erforderlich für den Zugriff auf die Datenbank, die das Gateway enthält.

USAGE

Schema

Erforderlich für den Zugriff auf das Schema, das das Gateway enthält.

USAGE

Zielendpunkte

Erforderlich, um den Datenverkehr an die Zielendpunkte zu routen.

MODIFY oder OWNERSHIP

Gateway

Erforderlich, um die Gateway-Konfiguration zu ändern.

USAGE, MODIFY oder OWNERSHIP

Gateway

Erforderlich, um die Gateway-Spezifikation anzuzeigen.

Bemerkung

Beim Auflisten von Gateways zeigt Snowflake nur Gateways an, für die die Rolle über USAGE-, MODIFY- oder OWNERSHIP-Berechtigungen verfügt. Die verwendete Rolle muss außerdem USAGE-Berechtigungen für die Datenbank und das Schema haben, die das Gateway enthalten.

Informationen zu den CREATE-, ALTER- und DROP-Operationen für Gateways finden Sie unter CREATE-GATEWAY, /sql-reference/sql/alter-gateway`und :doc:/sql-reference/sql/drop-gateway`.

Konfigurationen

Standardmäßig erhalten Sie maximal fünf Endpunkte pro Gateway. Für zusätzliche Endpunkte wenden Sie sich an den Support, um den Datenverkehr in weitere Endpunkte aufzuteilen.

Verhalten des Gateway-Failovers

Der Gateway-Failover ist der Prozess, bei dem ein Gateway den Datenverkehr automatisch von einem Endpunkt (Endpunkt A) zu anderen Endpunkten umleitet, wenn Endpunkt A nicht mehr verfügbar oder nicht mehr betriebsbereit ist.

Bemerkung

Snowflake führt keinen Failover auf einen Endpunkt durch, dessen Datenverkehrsaufteilung bei 0 % liegt. Der Endpunkt muss eine Datenverkehrsaufteilung von mindestens 1 % aufweisen.

Der relative Prozentsatz der verfügbaren Endpunkte wird dabei berücksichtigt.

Ein Failover von einem Endpunkt (Endpunkt A) zu anderen Endpunkten mit einer Datenverkehrsaufteilung von mindestens 1 % erfolgt, wenn eine der folgenden Bedingungen erfüllt ist:

  • Der Dienst von Endpunkt A wird ausgesetzt und auto_resume ist auf „false“ gesetzt.

  • Der Computepool von Endpunkt A wird ausgesetzt.

  • Der Dienst von Endpunkt A schlägt beim Bereitschaftstest fehl. Dies wird maximal alle 40 Sekunden aktualisiert (Cache-Aktualisierungsrate). Zum Zeitpunkt der Aktualisierung wird der Datenverkehr sofort ohne Hochlaufzeit angepasst.

  • Der Dienst von Endpunkt A wird beendet.

  • Die Eigentümerrolle des Gateways verliert die Berechtigung (USAGE oder OWNERSHIP) für Endpunkt A.