Rosanova: Azure Event Gridは最初からユーザ向けでしたが、それだけではなく、AzureやMicrosoft全体の社内ニーズにも応えるようにデザインされています。これはつまり、Azureと当社ユーザに共通するシナリオを念頭に開発されたということです。規模、信頼性、相互運用性、そしてコストが、私たちの検討すべき重要なテーマでした。
Rosanova: 現時点で利用可能なリージョンは、West US 2とWest Central USです。Azure Resource Manager、Event Hubs Capture、Storage Blobサービスがパブリッシャをローンチしています。Azureの全リージョンにこのサービスのデプロイを続けるとともに、最終的にはすべてのAzureサービスを対象にする予定です。
Rosanova: Azure Event Gridでは、すべてのイベントがトピックから生成されます。トピックには、ストレージアカウントのようなAzure固有のものもあります。ストレージアカウントを使用するとイベントが発生するのです。カスタムトピックを独自に作成することも可能です。これによって自分自身のイベントをトピックに公開することが可能になり、あなたや他の人たちがそのトピックを購読すれば、関心のあるイベントを受信することができます。イベントの公開はHTTP POST経由で、ヘッダ内のキーあるいはトークンを認証に使用して行います。Event Gridへの送信に私がよく使うのは、curlとbash変数を利用する方法です: curl -X POST -H "aeg-sas-key: $key" -d "$body" $topicEndpoint
Rosanova: Azure Event GridはAzureのExtension Resourceです。つまり、ストーレジなど他のリソースに紐付けられているのです。あるストレージアカウントにイベントサブスクリプションを作成する場合、実際にそのストレージアカウントのUXに移動します。イベントはこのように、現在Azureですでに使用されているリソースを自然に拡張したものなのです。Azure Event Grid独自のUXを介して操作することも可能ですが、できる限りイベントパブリッシャのUXを使用してほしいと思っています。カスタムトピックの場合、アンカーはカスタムトピック自体なので、トピックに移動して、そのイベントを購読すればよいのです。当社が内部的に使用しているものと同じモデルと技術が使用されて、ユーザに直接提供されます。
Rosanova:aeg-sas-key: <Key From My Azure Event Grid custom topic>["id": "'"$RANDOM"'","eventType": "recordInserted","subject": "myapp/vehicles/motorcycles","eventTime": "'`date --iso-8601=seconds`'","data":{"make": "Ducati","model": "Monster"}}]上の例では、ヘッダのaeg-sas-keyを指定するか、あるいはヘッダのSASトークンがaeg-sas-tokenとして使用されます。ボディ部に目を移すと、id、event type、subject、event time(ISO 8601形式)、その他データオブジェクト内の有効なJSONすべてが必須です。イベントタイプやサブジェクトを事前に登録しなくても、イベント購読者用のフィルタとして使用することができます。イベントのモデリングでは、これらのことを考慮しておく必要があります。
Rosanova: Event Gridは少なくとも1回のイベント配信を保証します。エンドポイントがリクエストを200/202しない限り、指数関数バックオフで再送を行います。この再送インターバルが最終的に1時間になり、24時間後に配信されなかったイベントがドロップされます。少なくとも1回というのはつまり、信頼性はありますが、特に受信応答を行なわない場合には、同じイベントを複数回受信する可能性があるということです。
Rosanova: それらすべてです。イベントの行き先による区別は行なっていませんし、リージョンやクラウドも限定していません。コンシューマはAzure Event Gridの直接UX統合されたLogic AppsやFunctionなどのAzureサービスでも構いませんが、Azure内やその他の場所にあるHTTPエンドポイントでも可能です。
Rosanova: Azure Event Gridは、Azureだけでなく、すべてのクラウドプロバイダを対象とするという意味において、現行のメッセージングサービスのギャップを埋めるものです。当社にはメッセージングやキューイング、テレメトリのサービスがありますが、特にクロスサービスやクロスクラウドなシナリオに対応できる、包括的なイベントのサービスがありません。一般的な電子商取引アプリケーションを検討しているのであれば、セールストランザクションやその他の物的ないし金融的な取引のためにService Busのようなものが、“在庫引き当て”など各部分の状態をレポートするためにEvent Gridのようなサービスが、さまざまなコンポーネントすべてにわたってテレメトリを追跡するためにEvent Hub的なものが、それぞれ必要になるはずです。Azure Event Gridにとって重要と思われる3つの領域として、サーバレス、運用、統合が挙げられます。それぞれが独自の理由によって、領域の多少異なるユーザを対象としているのです。
この記事を評価
- 編集者評
- 編集長アクション