ステップ5: SnowflakeでAzure用の外部関数を作成する

このトピックでは、Snowflakeで外部関数オブジェクトを作成する手順について説明します。このオブジェクトには、リモートサービスが受け入れるパラメーターなど、リモートサービスに関する情報が保存されます。Azure PortalまたはARMテンプレートのどちらを使用しているかに関係なく、手順は同じです。

注釈

Snowflakeの外部関数はデータベースオブジェクトで、データベースのスキーマに作成する必要があります。外部関数を作成するには、関数を作成するデータベースとスキーマへの適切な権限が必要です。

詳細については、 アクセス制御権限 をご参照ください。

このトピックの内容:

外部関数を作成する

このタスクは、Snowflakeウェブインターフェイスの Worksheets Worksheet tab ページにいることを前提としています。

  1. CREATE EXTERNAL FUNCTION ステートメントを入力します。ステートメントは次のようになります。

    create or replace external function <external_function_name>(<parameters>)
        returns variant
        api_integration = <api_integration_name>
        as '<invocation_url>';
    
  2. <外部関数名> を一意の関数名(例: echo)に置き換えます。この名前は オブジェクト識別子 のルールに従う必要があります。

    さらに、追跡ワークシートの「External Function Name」フィールドに関数名を記録します。

  3. <パラメーター> を、関数のパラメーターの名前とSQLデータ型に置き換えます(該当する場合)。

    パラメーターは、リモートサービスが期待するパラメーターに対応している必要があります。パラメーター名は一致する必要はありませんが、データ型には互換性が必要です。

    Azure Functionがステップ1のサンプルのJavaScriptコードを使用する場合、パラメーターはINTEGERとVARCHARです。例:

    a integer, b varchar
    

    さらに、追跡ワークシートの「External Function Name」フィールドにパラメーター名とデータ型を記録します。

  4. <API統合名> を追跡ワークシートの「API Integration Name」フィールドの値に置き換えます。

  5. <呼び出しURL> を適切なURLに置き換えます。これは、Snowflakeがリモートサービスを呼び出すためにHTTP POSTコマンドを送信するURLです。

    https://<api_management_service_name>.azure-api.net/<api_url_suffix>/<http_triggered_function_name>
    

    使用するURLは、Azure PortalまたはARMテンプレートのどちらを使用して外部関数を作成しているかによって異なります。

    Azure Portal

    追跡ワークシートの「API Management service name」、「API Management API URL suffix」、および「HTTP-Triggered Function name」フィールドの値を使用します。たとえば、URLは次のようになります。

    https://my-api-management-svc.azure-api.net/my-api-url-suffix/my_http_function
    
    ARMテンプレート

    追跡ワークシートの「Azure Function HTTP Trigger URL」フィールドの値を使用します。

  6. まだ実行していない場合は、入力したCREATE EXTERNAL FUNCTIONコマンドを実行します。

外部関数をテストする

これで、外部関数を呼び出して、正しく機能することを確認できるはずです。

詳細については、 Azure用の外部関数の呼び出し をご参照ください。