ステップ5: SnowflakeでAzure用の外部関数を作成する¶
このトピックでは、Snowflakeで外部関数オブジェクトを作成する手順について説明します。このオブジェクトには、リモートサービスが受け入れるパラメーターなど、リモートサービスに関する情報が保存されます。Azure PortalまたはARMテンプレートのどちらを使用しているかに関係なく、手順は同じです。
注釈
Snowflakeの外部関数はデータベースオブジェクトで、データベースのスキーマに作成する必要があります。外部関数を作成するには、関数を作成するデータベースとスキーマへの適切な権限が必要です。
詳細については、 アクセス制御権限 をご参照ください。
このトピックの内容:
前のステップ¶
外部関数を作成する¶
このタスクは、 Classic Console で Worksheets ページを表示していることを前提としています。
CREATE EXTERNAL FUNCTION ステートメントを入力します。ステートメントは次のようになります。
create or replace external function <external_function_name>(<parameters>) returns variant api_integration = <api_integration_name> as '<invocation_url>';
<外部関数名>
を一意の関数名(例:echo
)に置き換えます。この名前は オブジェクト識別子 のルールに従う必要があります。さらに、関数名を追跡ワークシートの
External Function Name
フィールドに記録します。<パラメーター>
を、関数のパラメーターの名前とSQLデータ型に置き換えます(該当する場合)。パラメーターは、リモートサービスが期待するパラメーターに対応している必要があります。パラメーター名は一致する必要はありませんが、データ型には互換性が必要です。
Azure Functionがステップ1のサンプルのJavaScriptコードを使用する場合、パラメーターはINTEGERとVARCHARです。例:
a integer, b varchar
さらに、パラメーター名とデータ型を追跡ワークシートの
External Function Name
フィールドに記録します。<API統合名>
を追跡ワークシートのAPI Integration Name
フィールドの値に置き換えます。<呼び出し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
フィールドにある値を使用します。
まだ実行していない場合は、入力したCREATE EXTERNAL FUNCTIONコマンドを実行します。
外部関数をテストする¶
これで、外部関数を呼び出して、正しく機能することを確認できるはずです。
詳細については、 Azure用の外部関数の呼び出し をご参照ください。
次のステップ¶
- Azure Portal:
- ARMテンプレート: