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

このトピックでは、Snowflakeで外部関数オブジェクトを作成する手順について説明します。このオブジェクトには、リモートサービスが受け入れるパラメーターなど、リモートサービスに関する情報が保存されます。

注釈

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

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

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

    a integer, b varchar
    

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

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

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

  5. <関数URL> を、スラッシュ(/)で区切った「Gateway Base URL」フィールドと「パスサフィックス」フィールドの値に置き換えます。

    URL は次のようになります。

    https://<gateway-base-url>/<path-suffix>
    
  6. まだ実行していない場合は、入力したCREATE EXTERNAL FUNCTIONコマンドを実行します。

外部関数をテストする

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

注釈

このチュートリアルの ステップ2: コンソールでプロキシサービス(Google Cloud API Gateway)を作成する でゲートウェイを保護するために、セキュリティ定義を構成ファイルに追加した場合は、このチュートリアルの ステップ5: コンソールでプロキシサービスの GCP セキュリティポリシーを作成する で構成ファイルのセキュリティ定義を更新するまで、外部関数をテストすることはできません。

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