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

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

注釈

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

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

このトピックの内容:

外部関数を作成する

このタスクは、 Classic Console で 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>';
    
    Copy
  2. <外部関数名> を一意の関数名(例: echo)に置き換えます。この名前は オブジェクト識別子 のルールに従う必要があります。

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

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

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

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

    a integer, b varchar
    
    Copy

    さらに、パラメーター名とデータ型を追跡ワークシートの 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>
    
    Copy

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

    Azure Portal

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

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

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

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

外部関数をテストする

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

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