Microsoft Azure Event Gridを使用したタスクのエラー通知の有効化¶
このトピックでは、Microsoft Azure Event Gridを使用したエラー通知サポートを構成する手順について説明します。
Microsoft Azure Event Gridを使用したエラー通知の有効化¶
タスク通知を有効にするには、次のセクションのステップに従います。
ステップ1: カスタムEvent Gridトピックを作成する¶
Event Gridトピックは、ソースがイベント通知を送信するエンドポイントを提供します。Snowflakeによって公開されたエラー通知を受信するための専用トピックを作成します。単一のトピックを使用して、Snowflakeアカウントのすべてのパイプ(Snowpipeエラー通知)またはタスク(タスクエラー通知)のエラー通知を受け取ることができます。
Event Gridトピックの作成手順については、 Event Gridのドキュメント をご参照ください。Event Gridトピックエンドポイントを記録します。これは、これらの手順の後半で必要になります。
必要に応じて、トピックをサブスクライブして、追跡するイベントとそれらのイベントの送信先をEvent Gridに通知します。
ステップ2: Snowflakeで通知統合を作成する¶
テナントIDの取得¶
AzureテナントIDを取得します。これは、これらの手順の後半で必要になります。
Microsoft Azureポータルにログインします。
Azure Active Directory » Properties に移動します。後で参照できるように、 Tenant ID 値を記録します。Event GridトピックへのSnowflakeアクセスを許可する同意URLを生成するには、ディレクトリIDまたは テナントID が必要です。
通知統合の作成¶
CREATE NOTIFICATION INTEGRATION コマンドを使用して統合を作成します。統合は、作成したAzureストレージキューを参照するSnowflakeオブジェクトです。
注釈
このSQLコマンドを実行できるのは、アカウント管理者(ACCOUNTADMINロールを持つユーザー)またはグローバルCREATE INTEGRATION権限を持つロールのみです。
CREATE NOTIFICATION INTEGRATION <integration_name>
ENABLED = true
TYPE = QUEUE
NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
DIRECTION = OUTBOUND
AZURE_EVENT_GRID_TOPIC_ENDPOINT = '<event_grid_topic_endpoint>'
AZURE_TENANT_ID = '<azure_tenant_id>'
例:
CREATE NOTIFICATION INTEGRATION myint
ENABLED = true
TYPE = QUEUE
NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
DIRECTION = OUTBOUND
AZURE_EVENT_GRID_TOPIC_ENDPOINT = 'https://myaccount.region-1.eventgrid.azure.net/api/events'
AZURE_TENANT_ID = 'mytenantid';
条件:
event_grid_topic_endpoint
は、セクションのステップ1で記録したEvent Gridトピックエンドポイントです。azure_tenant_id
は、このセクションの前半で記録したAzureディレクトリ ID またはテナント ID です。
トピックへのSnowflakeアクセスの許可¶
DESCRIBE INTEGRATION コマンドを実行して、同意 URL を取得します。
DESC NOTIFICATION INTEGRATION <integration_name>;
条件:
integration_name
は、 通知統合を作成する で作成した統合の名前です。
次の列の値に注意します。
- AZURE_CONSENT_URL:
Microsoftのアクセス許可リクエストページへの URL。
- AZURE_MULTI_TENANT_APP_NAME:
アカウント用に作成されたSnowflakeクライアントアプリケーションの名前。このセクションの後半のステップでは、このアプリケーションに、許可されたトピックでアクセストークンを取得するために必要な権限を付与する必要があります。
ウェブブラウザーで AZURE_CONSENT_URL 列にある URL に移動します。このページには、Microsoft許可リクエストページが表示されます。
Accept ボタンをクリックします。このアクションにより、Snowflakeアカウント用に作成されたAzureサービスプリンシパルは、テナント内の指定されたリソースでアクセストークンを取得できるようになります。アクセストークンの取得は、コンテナーに対する適切なアクセス許可をサービスプリンシパルに付与した場合にのみ成功します(次のステップを参照)。
Microsoftの権限リクエストページは、Snowflakeの企業サイト(snowflake.com)にリダイレクトされます。
Microsoft Azureポータルにログインします。
Azure Active Directory » Enterprise applications に移動します。このセクションのステップ2で記録した、Snowflakeアプリケーション識別子がリストされていることを確認します。
重要
Azure Active DirectoryでSnowflakeアプリケーションを後で削除すると、通知統合が機能しなくなります。
Event Grid Topics »
topic_name
に移動します。ここで、topic_name
は、イベント通知を受信するために作成したトピックの名前です。Access Control (IAM) » Add role assignment をクリックします。
Snowflakeサービスプリンシパルを検索します。これは DESC NOTIFICATION INTEGRATION 出力(ステップ1)の AZURE_MULTI_TENANT_APP_NAME プロパティにあるIDです。AZURE_MULTI_TENANT_APP_NAME プロパティで、アンダースコアの 前にある 文字列を検索します。
重要
このセクションのMicrosoftリクエストページでリクエストされたSnowflakeサービスプリンシパルをAzureが作成するのに、1時間以上かかる場合があります。サービスプリンシパルがすぐに利用できない場合は、1~2時間待ってから、もう一度検索することをお勧めします。
サービスプリンシパルを削除すると、通知統合が機能しなくなります。
Snowflakeアプリケーションに EventGridデータ送信者 権限を付与します。
ステップ3: タスクでエラー通知を有効にする¶
次に、通知統合の名前に ERROR_INTEGRATION を設定して、スタンドアロンまたはルートタスクでエラー通知を有効にします。プロパティは、タスクの作成時(CREATE TASK を使用)またはそれ以降(ALTER TASK を使用)に設定できます。
詳細については、 エラー通知を送信するタスクの構成 をご参照ください。