Überblick über App-Spezifikationen

In diesem Thema wird beschrieben, wie ein Anbietender eine Snowflake Native App konfigurieren kann, um App-Spezifikationen zu verwenden, damit Zugriff auf Services und Endpunkte außerhalb von Snowflake angefordert wird. Mit App-Spezifikationen können Verbrauchende die von einer App benötigten externen Verbindungen überprüfen, genehmigen oder ablehnen.

Auf externe Services von einer Snowflake Native App aus zugreifen

Einige Snowflake Native Apps müssen eine Verbindung zu Ressourcen herstellen, die außerhalb von Snowflake existieren. Um Verbindungen zu diesen Ressourcen zu handhaben, bietet Snowflake verschiedene Objekte für verschiedene Verbindungstypen.

Um auf externe Services zuzugreifen, bietet Snowflake die folgenden Objekte:

Integration für externen Zugriff:

Ermöglichen Sie den sicheren Zugriff auf externe Netzwerkendpunkte innerhalb einer benutzerdefinierten Funktion oder einer gespeicherten Prozedur. Integrationen für den externen Zugriff verwenden Netzwerkregeln, um den Zugriff auf bestimmte externe Netzwerkstandorte zu beschränken.

Sicherheitsintegrationen:

Ermöglichen Sie den sicheren Zugriff für Authentifizierungsanbietende von Drittanbietern wie OAuth. Sicherheitsintegrationen bieten eine sichere Authentifizierung und Zugriffssteuerung.

Bei Verwendung von Automatisiertes Gewähren von Berechtigungen verfügt eine App über die erforderlichen Berechtigungen, um diese Objekte beim Ausführen des Setup-Skripts zu erstellen. Da diese Objekte jedoch Verbindungen außerhalb von Snowflake zulassen, müssen Verbraucher diese Verbindungen bei der Konfiguration der App genehmigen.

Die Verwendung der automatisierten Erteilung von Berechtigungen mit App-Spezifikationen hat die folgenden Vorteile:

  • Verbrauchende müssen nicht manuell die von der App benötigte Integration für den externen Zugriff oder die Sicherheitsintegrationen erstellen und den Zugriff darauf mithilfe von Referenzen genehmigen.

  • Anbietende müssen keinen Code schreiben, der während der Installation oder des Upgrades das Vorhandensein der erforderlichen Berechtigungen und Objekte prüft.

Spezifikationen der App verwenden, um Verbrauchenden die Genehmigung von externen Verbindungen zu ermöglichen

Mit App-Spezifikationen kann ein Anbieter angeben, welche Verbindungsinformationen die App anfordert. Nachdem der Verbrauchende die App installiert hat, überprüft dieser die App-Spezifikation und genehmigt sie oder lehnt sie ab, je nach Bedarf.

Informationen zur Verwendung von App-Spezifikationen für die Anforderung des Zugriffs auf externe Endpunkte finden Sie unter Integrationen für den externen Zugriff (EAIs) mit App-Spezifikationen anfordern. Informationen zur Verwendung von App-Spezifikationen für die Anforderung des Zugriffs auf OAuth-Integrationen finden Sie unter Sicherheitsintegrationen mit App-Spezifikationen anfordern. Integrationen für den externen Zugriff (EAIs) mit App-Spezifikationen anfordern.

Definition von App-Spezifikationen

Eine Definition der App-Spezifikation enthält die Eigenschaften, die für die App erforderlich sind, um Verbindungen zu Ressourcen außerhalb von Snowflake zu konfigurieren. Diese Eigenschaften werden dem Verbrauchenden zur Genehmigung angezeigt. Eine Integration für den externen Zugriff oder eine Sicherheitsintegration. Die Definition der App-Spezifikation enthält eine Teilmenge der Metadaten und Eigenschaften einer Integration für den externen Zugriff oder einer Sicherheitsintegration.

Informationen zur Definition der App-Spezifikation für Sicherheitsintegrationen finden Sie unter Definition von App-Spezifikationen für Sicherheitsintegrationen.

Informationen zur Definition der App-Spezifikation für Integrationen für den externen Zugriff finden Sie unter Definition von App-Spezifikationen für Integrationen für den externen Zugriff.

Die Sequenznummern einer App-Spezifikation

Die Sequenznummer ähnelt einer Versionsnummer für die App-Spezifikation. Die Sequenznummern steigen automatisch inkrementell an, wenn ein Anbieter die Definition der App-Spezifikation ändert. Die Definition einer App-Spezifikation umfasst Konfigurationsdetails und andere erforderliche Informationen. Felder, die nicht Teil der Definition sind, wie z. B. description, triggern keine Aktualisierung der Sequenznummer.

Sequenznummern ermöglichen Anbietenden und Verbrauchenden, verschiedene Versionen einer App-Spezifikation zu identifizieren. Wenn ein Anbietender zum Beispiel ein neues Konfigurationsdetail zur Definition der App-Spezifikation hinzufügt, wird die Sequenznummer erhöht. Wenn der Verbrauchende die App-Spezifikation anzeigt, kann dieser sehen, dass sich die Sequenznummer geändert hat, und der Verbrauchende kann die aktualisierte App-Spezifikation überprüfen.

Best Practices bei der Verwendung von App-Spezifikationen

Automatisiertes Gewähren von Berechtigungen stellt sicher, dass die App über die erforderlichen Berechtigungen verfügt, um Integrationen für den externen Zugriff zu erstellen. Dennoch können Verbraucher die App-Spezifikation, die die Verbindung zu den externen Endpunkten aktiviert, ablehnen. Bei der Entwicklung einer App müssen Anbieter Situationen berücksichtigen, in denen App-Spezifikationen möglicherweise nicht genehmigt werden.

Beispielsweise könnte eine App die Verwendung mehrerer Netzwerkports für eine Integration für den externen Zugriff anfordern, der Verbraucher jedoch nur einen zulassen. Die App sollte Logik zur Behandlung von Fehlern enthalten, die auftreten, wenn ein Netzwerkport nicht verfügbar ist. Außerdem ist es Best Practice, alle möglicherweise auftretenden HTTP-Ausnahmen zu erfassen.

Callback-Funktionen mit App-Spezifikationen verwenden

In manchen Fällen muss eine App möglicherweise wissen, wann der Verbraucher eine App-Spezifikation genehmigt oder abgelehnt hat. Beispielsweise muss die App möglicherweise warten, bis eine App-Spezifikation genehmigt wurde, bevor sie ein Objekt erstellt.

Für diese Situation bietet Snowflake Native App Framework einen Mechanismus, mit dem Anbieter eine gespeicherte Callback-Prozedur definieren können, die ausgeführt wird, wenn der Verbraucher eine App-Spezifikation genehmigt oder ablehnt.

Anbieter können der Manifest-Datei eine gespeicherte Prozedur hinzufügen, wie im folgenden Beispiel gezeigt:

lifecycle_callbacks:
  specification_action: callbacks.on_spec_update
Copy

Dieses Beispiel zeigt, wie eine gespeicherte Prozedur namens callbacks.on_spec_update in die Manifest-Datei aufgenommen wird. Anbieter können im Setup-Skript eine gespeicherte Prozedur hinzufügen, wie im folgenden Beispiel gezeigt:

CREATE OR REPLACE PROCEDURE callbacks.on_spec_update (
  name STRING,
  status STRING,
  payload STRING)
  ...
Copy

Dieses Beispiel zeigt die Signatur einer gespeicherten Prozedur namens callbacks.on_spec_update. Im Text dieser Prozedur fügen Anbieter den erforderlichen Code ein, um den Status der App-Spezifikation zu überprüfen, Objekte zu erstellen und bei Bedarf Aktionen auszuführen.