Azure CLI を使用した Event Grid による Media Services イベントの作成と監視Create and monitor Media Services events with Event Grid using the Azure CLI

Azure Event Grid は、クラウドのイベント処理サービスです。Azure Event Grid is an eventing service for the cloud. このサービスは、イベント サブスクリプションを使って、イベント メッセージをサブスクライバーにルーティングします。This service uses event subscriptions to route event messages to subscribers. Media Services イベントには、データの変更に対応するために必要なすべての情報が含まれます。Media Services events contain all the information you need to respond to changes in your data. Media Services イベントは、eventType プロパティが "Microsoft.Media" で始まっていることで識別できます。You can identify a Media Services event because the eventType property starts with "Microsoft.Media.". 詳細については、「Media Services イベントのスキーマ」を参照してください。For more information, see Media Services event schemas.

この記事では、Azure CLI を使用して、Azure Media Services アカウントのイベントをサブスクライブします。In this article, you use the Azure CLI to subscribe to events for your Azure Media Services account. 次に、イベントをトリガーして結果を表示します。Then, you trigger events to view the result. 通常は、イベント データを処理し、アクションを実行するエンドポイントにイベントを送信します。Typically, you send events to an endpoint that processes the event data and takes actions. この記事では、メッセージを収集して表示する Web アプリにイベントを送信します。In this article, you send the events to a web app that collects and displays the messages.

前提条件Prerequisites

  • 有効な Azure サブスクリプションAn active Azure subscription. Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

  • CLI をローカルにインストールして使用します。この記事では、Azure CLI バージョン 2.0 以降が必要です。Install and use the CLI locally, this article requires the Azure CLI version 2.0 or later. お使いのバージョンを確認するには、az --version を実行します。Run az --version to find the version you have. インストールまたはアップグレードが必要な場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install the Azure CLI.

    現在、一部の Media Services v3 CLI コマンドが Azure Cloud Shell では正常に動作しません。Currently, not all Media Services v3 CLI commands work in the Azure Cloud Shell. CLI はローカルで使用することをお勧めします。It is recommended to use the CLI locally.

  • Media Services アカウントを作成するCreate a Media Services account.

    Media Services アカウント名、ストレージ名、およびリソース名として使用した値を覚えておいてください。Make sure to remember the values that you used for the resource group name and Media Services account name.

メッセージ エンドポイントの作成Create a message endpoint

Media Services アカウントのイベントをサブスクライブする前に、イベント メッセージのエンドポイントを作成しましょう。Before subscribing to the events for the Media Services account, let's create the endpoint for the event message. 通常、エンドポイントは、イベント データに基づくアクションを実行します。Typically, the endpoint takes actions based on the event data. この記事では、イベント メッセージを表示する構築済みの Web アプリをデプロしします。In this article, you deploy a pre-built web app that displays the event messages. デプロイされたソリューションには、App Service プラン、App Service Web アプリ、および GitHub からのソース コードが含まれています。The deployed solution includes an App Service plan, an App Service web app, and source code from GitHub.

  1. [Deploy to Azure](Azure にデプロイ) を選択して、ソリューションをサブスクリプションにデプロイします。Select Deploy to Azure to deploy the solution to your subscription. Azure portal で、パラメーターの値を指定します。In the Azure portal, provide values for the parameters.

  2. デプロイが完了するまでに数分かかる場合があります。The deployment may take a few minutes to complete. デプロイが成功した後で、Web アプリを表示して、実行されていることを確認します。After the deployment has succeeded, view your web app to make sure it's running. Web ブラウザーで https://<your-site-name>.azurewebsites.net にアクセスしますIn a web browser, navigate to: https://<your-site-name>.azurewebsites.net

"Azure Event Grid ビューアー" サイトに切り替えると、まだイベントがないことがわかります。If you switch to the "Azure Event Grid Viewer" site, you see it has no events yet.

Event Grid リソース プロバイダーを有効にするEnable Event Grid resource provider

Azure サブスクリプションで Event Grid を使用したことがない場合は、Event Grid リソース プロバイダーを登録する必要がある可能性があります。If you haven't previously used Event Grid in your Azure subscription, you may need to register the Event Grid resource provider.

Azure Portal で次の操作を行います。In the Azure portal:

  1. [サブスクリプション] を選択します。Select Subscriptions.
  2. Event Grid に使用するサブスクリプションを選択します。Select the subscription you're using for Event Grid.
  3. [設定] で、 [リソース プロバイダー] を選択します。Under Settings, select Resource providers.
  4. Microsoft.EventGrid を探します。Find Microsoft.EventGrid.
  5. 登録されていない場合は、 [登録] を選択します。If not registered, select Register.

登録完了まで少し時間がかかることがあります。It may take a moment for the registration to finish. [最新の情報に更新] を選択して、状態を更新します。Select Refresh to update the status. [状態][登録済み] に になったら、次に進めることができます。When Status is Registered, you're ready to continue.

Azure サブスクリプションを設定するSet the Azure subscription

次のコマンドで、Media Services アカウントで使用する Azure サブスクリプション ID を指定します。In the following command, provide the Azure subscription ID that you want to use for the Media Services account. [サブスクリプション] に移動することで、アクセス権があるサブスクリプションの一覧を表示できます。You can see a list of subscriptions that you have access to by navigating to Subscriptions.

az account set --subscription mySubscriptionId

Media Services イベントのサブスクライブSubscribe to Media Services events

どのイベントを追跡するかを Event Grid に通知するアーティクルをサブスクライブします。次の例では、作成した Media Services アカウントをサブスクライブし、イベント通知のエンドポイントとして作成した Web サイトの URL を渡します。You subscribe to an article to tell Event Grid which events you want to track. The following example subscribes to the Media Services account you created, and passes the URL from the website you created as the endpoint for event notification.

<event_subscription_name> をイベント サブスクリプションの一意の名前に置き換えます。Replace <event_subscription_name> with a unique name for your event subscription. <resource_group_name><ams_account_name>、Media Services アカウントを作成するときに使用した値を使用します。For <resource_group_name> and <ams_account_name>, use the values you used when creating the Media Services account. <endpoint_URL> に対して、Web アプリの URL を入力し、ホーム ページの URL に api/updates を追加します。For the <endpoint_URL>, provide the URL of your web app and add api/updates to the home page URL. サブスクライブ時にエンドポイントを指定することによって、そのエンドポイントに対するイベントのルーティングが Event Grid によって行われます。By specifying the endpoint when subscribing, Event Grid handles the routing of events to that endpoint.

  1. リソース ID を取得するGet the resource id

    amsResourceId=$(az ams account show --name <ams_account_name> --resource-group <resource_group_name> --query id --output tsv)
    

    例:For example:

    amsResourceId=$(az ams account show --name amsaccount --resource-group amsResourceGroup --query id --output tsv)
    
  2. イベントをサブスクライブするSubscribe to the events

    az eventgrid event-subscription create \
    --resource-id $amsResourceId \
    --name <event_subscription_name> \
    --endpoint <endpoint_URL>
    

    例:For example:

    az eventgrid event-subscription create --resource-id $amsResourceId --name amsTestEventSubscription --endpoint https://amstesteventgrid.azurewebsites.net/api/updates/
    

    ヒント

    検証ハンドシェイク警告が表示されることがあります。You might get validation handshake warning. 数分待つと、ハンドシェイクが検証されます。Give it a few minutes and the handshake should validate.

では、イベントをトリガーして、Event Grid がメッセージをエンドポイントに配信するようすを見てみましょう。Now, let's trigger events to see how Event Grid distributes the message to your endpoint.

エンドポイントへのイベントの送信Send an event to your endpoint

エンコード ジョブを実行して、Media Services アカウントのイベントをトリガーできます。You can trigger events for the Media Services account by running an encoding job. このクイック スタートに従って、ファイルをエンコードし、イベントの送信を開始できます。You can follow this quickstart to encode a file and start sending events.

Web アプリをもう一度表示し、その Web アプリにサブスクリプションの検証イベントが送信されたことに注目します。View your web app again, and notice that a subscription validation event has been sent to it. Event Grid は検証イベントを送信するので、エンドポイントはイベント データを受信することを確認できます。Event Grid sends the validation event so the endpoint can verify that it wants to receive event data. エンドポイントは、validationResponse から validationCode を設定する必要があります。The endpoint has to set validationResponse to validationCode. 詳細については、「Event Grid security and authentication」(Event Grid のセキュリティと認証) を参照してください。For more information, see Event Grid security and authentication. Web アプリ コードを表示して、サブスクリプションがどのように検証されるかを確認できます。You can view the web app code to see how it validates the subscription.

ヒント

目のアイコンを選択してイベント データを展開します。Select the eye icon to expand the event data. すべてのイベントを表示したい場合は、ページを最新の情報に更新しないでください。Do not refresh the page, if you want to view all the events.

サブスクリプション イベントの表示

次の手順Next steps

アップロード、エンコード、およびストリーミングUpload, encode, and stream