Azure Event Grid と CLI でイベント駆動オートメーションを構成する

Event Grid のカスタムトピックと Storage キューへのサブスクリプションを作り、CLI でイベントを発行して配信を確認する。さらに System Topic で Blob 作成イベントを購読し、疎結合なイベント駆動の流れを体験する。

中級約 75 分Azure 実環境

ラボ概要

「Blob がアップロードされたら処理を走らせたい」「在庫が変わったら通知したい」——こうした要求をコードのポーリングで解こうとすると、コンポーネントが互いを直接知る密結合な設計に陥りやすい。Event Grid は発行側と受信側の間にイベントのルーティング層を挟み、両者を疎結合に保つためのフルマネージドなサービスだ。

このラボでは二つの入口からその仕組みに触れる。前半は自分でスキーマを決められるカスタムトピックを作り、Storage キューをサブスクライバーにして、CLI から発行したイベントが実際にキューへ届くまでを目で追う。後半は Storage アカウントを発生源とするシステムトピックを構成し、Blob を一つ置くだけで Microsoft.Storage.BlobCreated イベントが自動で流れることを確認する。

発行・サブスクリプション・配信・フィルターという Event Grid の四つの基本概念を、画面とコマンドの両方から動かして理解するのが狙いだ。操作はすべて japaneast リージョンの単一リソースグループ内で完結し、追加コストの大きいリソースは使わない。Cloud Shell が使えるので、ローカル環境の準備は不要だ。

ラボの構成

  1. 1カスタムトピックを作成する
  2. 2サブスクライバー用の Storage キューを用意する
  3. 3キューへのイベントサブスクリプションを作る
  4. 4CLI からイベントを発行して配信を確認する
  5. 5システムトピックで Blob 作成イベントを購読する
  6. 6動作確認
  7. 7後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

手順のプレビュー(最初のステップ)

> リージョンはすべて japaneast、操作は割り当て済みの単一リソースグループ内で行ってください。新しいリソースグループは作成できません。

このラボの作業はほぼ Azure CLI で進めます。画面右上の Cloud Shell(>_ アイコン)を開き、Bash を選択してください。初回はストレージのマウントを尋ねられる場合がありますが、本ラボでは「マウントなしで続行」を選んで構いません。

まず共通で使う変数を定義します。<リソースグループ名> は画面に表示されている割り当て済みの名前に置き換えてください。Storage アカウント名は世界で一意かつ小文字英数字のみのため、ランダム文字列を付けています。

RG="<リソースグループ名>"
LOC="japaneast"
RAND=$RANDOM
TOPIC="clouddo-topic-$RAND"
SA="clouddo${RAND}sa"
QUEUE="eventqueue"
echo "RG=$RG TOPIC=$TOPIC SA=$SA"

後半のシステムトピック(ステップ 5)では、サブスクリプションで Event Grid リソースプロバイダーが登録されている必要があります。未登録だと MissingRegistrationForResourceProvider(Microsoft.EventGrid not registered)で作成に失敗するため、ここで一度登録しておきます。すでに登録済みなら即座に完了します。

az provider register --namespace Microsoft.EventGrid
az provider show --namespace Microsoft.EventGrid --query "registrationState" -o tsv

Registered と表示されれば準備完了です。Registering のままなら数十秒後にもう一度 az provider show を実行して Registered を確認してから先へ進んでください。

ステップ 1: カスタムトピックを作成する

カスタムトピックは、自分のアプリケーションが任意のイベントを発行できる入口です。リージョンを japaneast に固定して作成します。

az eventgrid topic create \
  --name "$TOPIC" \
  --resource-group "$RG" \
  --location "$LOC"

作成が終わったら、発行に必要なエンドポイントとアクセスキーを取り出して変数に入れます。

TOPIC_ENDPOINT=$(az eventgrid topic show --name "$TOPIC" -g "$RG" --query "endpoint" -o tsv)
TOPIC_KEY=$(az eventgrid topic key list --name "$TOPIC" -g "$RG" --query "key1" -o tsv)
echo "$TOPIC_ENDPOINT"

エンドポイント URL が表示されれば成功です。このキーは発行時の認証に使うため、外部に出さないよう扱います。

残り 6 セクションの手順は、ラボを開始すると画面内に表示されます

構成図

構成図

参考リソース

このラボが対応する試験の模擬問題集

本番形式の問題で理解度を確認できます。各試験とも先頭 15 問は無料です。

AZ-104Azure Administrator練習テスト 2 回・全 160 問