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:

Externe Funktion erstellen

Für diese Aufgabe müssen Sie sich auf der Seite Worksheets Worksheet tab der Snowflake-Weboberfläche befinden:

  1. 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>';
    
  2. Ersetzen Sie den <external_function_name> durch einen eindeutigen Funktionsnamen (z. B. echo). Dieser Name muss den Regeln für Objektbezeichner folgen.

    Notieren Sie sich den Funktionsnamen im Feld „External Function Name“ des Arbeitsblatts.

  3. 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.

  4. Ersetzen Sie <api_integration_name> durch den Wert aus dem Feld „API Integration Name“ Ihres Arbeitsblatts.

  5. 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“ und „HTTP-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.

  6. 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.