Schritt 5: Externe Funktion für Azure in Snowflake erstellen¶
Unter diesem Thema finden Sie eine Anleitung zum Erstellen eines externen Funktionsobjekts in Snowflake. Dieses Objekt speichert Informationen über den Remotedienst, z. B. die Parameter, die der Remotedienst akzeptiert. Die Anweisungen sind dieselben, unabhängig davon, ob Sie das Azure-Portal oder die ARM-Vorlage verwenden.
Bemerkung
Externe Funktionen in Snowflake sind Datenbankobjekte, d. h. sie müssen im Schema einer Datenbank erstellt werden. Um eine externe Funktion zu erstellen, müssen Sie über die entsprechenden Berechtigungen für die Datenbank und das Schema verfügen, in dem Sie die Funktion erstellen.
Weitere Details dazu finden Sie unter Zugriffssteuerungsrechte.
Unter diesem Thema:
Vorheriger Schritt¶
Schritt 4: API-Integration für Azure mit dem Proxydienst im Portal verknüpfen
Externe Funktion erstellen¶
Für diese Aufgabe müssen Sie sich auf der Seite Worksheets der klassischen Weboberfläche befinden:
Geben Sie eine CREATE EXTERNAL FUNCTION-Anweisung ein. Diese Anweisung sollte ungefähr wir folgt aussehen:
create or replace external function <external_function_name>(<parameters>) returns variant api_integration = <api_integration_name> as '<invocation_url>';
Ersetzen Sie den Namen in
<external_function_name>
durch einen eindeutigen Funktionsnamen (z. B.echo
). Dieser Name muss den Regeln für Objektbezeichner folgen.Notieren Sie sich außerdem den Funktionsnamen auf dem Arbeitsblatt unter
External Function Name
.Ersetzen Sie die
<parameters>
durch die Namen und SQL-Datentypen der Parameter, falls vorhanden.Die Parameter müssen mit den Parametern übereinstimmen, die der Remotedienst erwartet. Die Parameternamen müssen nicht übereinstimmen, aber die Datentypen müssen kompatibel sein.
Wenn Ihre Azure-Funktion den in Schritt 1 bereitgestellten JavaScript-Beispielcode verwendet, dann sind die Parameter vom Typ INTEGER und VARCHAR. Beispiel:
a integer, b varchar
Notieren Sie sich außerdem die Namen und Datentypen der Parameter im Feld
External Function Name
des Arbeitsblatts.Ersetzen Sie
<Azure_Application_ID>
durch den Wert aus dem FeldAPI Integration Name
Ihres Arbeitsblatts.Ersetzen Sie
<invocation_url>
durch die entsprechende URL. Dies ist die URL, an die Snowflake den Befehl HTTP POST sendet, um den Remotedienst aufzurufen. Sie hat das folgende Format:https://<api_management_service_name>.azure-api.net/<api_url_suffix>/<http_triggered_function_name>
Welche URL Sie verwenden, hängt davon ab, ob Sie zum Erstellen Ihrer externen Funktion das Azure-Portal oder die ARM-Vorlage verwenden:
- Azure-Portal:
Verwenden Sie die Werte aus den Feldern
API Management service name
,API Management API URL suffix
undHTTP-Triggered Function name
Ihres Arbeitsblatts. Ihre URL sollte ungefähr wir folgt aussehen:https://my-api-management-svc.azure-api.net/my-api-url-suffix/my_http_function
- ARM-Vorlage:
Verwenden Sie den Wert aus dem Feld
Azure Function HTTP Trigger URL
Ihres Arbeitsblatts.
Falls noch nicht geschehen, führen Sie den eingegebenen Befehl CREATE EXTERNAL FUNCTION aus.
Externe Funktion testen¶
Sie sollten nun in der Lage sein, Ihre externe Funktion aufzurufen, um zu überprüfen, ob sie korrekt funktioniert.
Weitere Details dazu finden Sie unter Aufrufen einer externen Funktion für Azure.