クイックスタート: Azure Event Grid を使用して Azure Kubernetes Service (AKS) イベントにサブスクライブする

Azure Event Grid は、パブリッシュ/サブスクライブ モデルを使用した画一的なイベント使用を提供する、完全に管理されたイベント ルーティング サービスです。

このクイックスタートでは、AKS クラスターを作成し、AKS イベントをサブスクライブします。

前提条件

注

AKS 操作は Azure Event Grid の可用性に依存せず、Event Grid サービスの停止中に影響を受けません。

AKS クラスターを作成する

az aks create コマンドを使用して、AKS クラスターを作成します。 次の例では、リソース グループ MyResourceGroup と、1 つのノードを持つ MyResourceGroup リソース グループ内の MyAKS という名前のクラスターを作成します。

az group create --name MyResourceGroup --location eastus
az aks create --resource-group MyResourceGroup --name MyAKS --location eastus  --node-count 1 --generate-ssh-keys

AKS のイベントを購読する

az eventhubs namespace create と az eventhubs eventhub create を使用して、名前空間とイベント ハブを作成します。 次の例では、名前空間 MyNamespace と、MyNamespace 内のイベント ハブ MyEventGridHub を、いずれも MyResourceGroup リソース グループ内に作成します。

az eventhubs namespace create --location eastus --name MyNamespace --resource-group MyResourceGroup
az eventhubs eventhub create --name MyEventGridHub --namespace-name MyNamespace --resource-group MyResourceGroup

注

名前空間の名前は一意である必要があります。

az eventgrid event-subscription create を使用して AKS イベントをサブスクライブします。

SOURCE_RESOURCE_ID=$(az aks show --resource-group MyResourceGroup --name MyAKS --query id --output tsv)
ENDPOINT=$(az eventhubs eventhub show --resource-group MyResourceGroup --name MyEventGridHub --namespace-name MyNamespace --query id --output tsv)
az eventgrid event-subscription create --name MyEventGridSubscription \
--source-resource-id $SOURCE_RESOURCE_ID \
--endpoint-type eventhub \
--endpoint $ENDPOINT

az eventgrid event-subscription list を使用して AKS イベントへのサブスクリプションを確認します。

az eventgrid event-subscription list --source-resource-id $SOURCE_RESOURCE_ID

次の出力例は、MyAKS クラスターからのイベントをサブスクライブし、それらのイベントが MyEventGridHub イベント ハブに配信されるのを示しています。

[
  {
    "deadLetterDestination": null,
    "deadLetterWithResourceIdentity": null,
    "deliveryWithResourceIdentity": null,
    "destination": {
      "deliveryAttributeMappings": null,
      "endpointType": "EventHub",
      "resourceId": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/MyResourceGroup/providers/Microsoft.EventHub/namespaces/MyNamespace/eventhubs/MyEventGridHub"
    },
    "eventDeliverySchema": "EventGridSchema",
    "expirationTimeUtc": null,
    "filter": {
      "advancedFilters": null,
      "enableAdvancedFilteringOnArrays": null,
      "includedEventTypes": [
        "Microsoft.ContainerService.NewKubernetesVersionAvailable","Microsoft.ContainerService.ClusterSupportEnded","Microsoft.ContainerService.ClusterSupportEnding","Microsoft.ContainerService.NodePoolRollingFailed","Microsoft.ContainerService.NodePoolRollingStarted","Microsoft.ContainerService.NodePoolRollingSucceeded"
      ],
      "isSubjectCaseSensitive": null,
      "subjectBeginsWith": "",
      "subjectEndsWith": ""
    },
    "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/MyResourceGroup/providers/Microsoft.ContainerService/managedClusters/MyAKS/providers/Microsoft.EventGrid/eventSubscriptions/MyEventGridSubscription",
    "labels": null,
    "name": "MyEventGridSubscription",
    "provisioningState": "Succeeded",
    "resourceGroup": "MyResourceGroup",
    "retryPolicy": {
      "eventTimeToLiveInMinutes": 1440,
      "maxDeliveryAttempts": 30
    },
    "systemData": null,
    "topic": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/MyResourceGroup/providers/microsoft.containerservice/managedclusters/MyAKS",
    "type": "Microsoft.EventGrid/eventSubscriptions"
  }
]

AKS イベントが発生すると、イベント ハブにそれらのイベントが表示されます。 たとえば、クラスターに対して利用できる Kubernetes バージョンの一覧が変更された場合、Microsoft.ContainerService.NewKubernetesVersionAvailable イベントが表示されます。 また、サポート内ではアップグレードとクラスターで利用できる新しいイベントも示されるようにもなっています。 AKS によって出力されるイベントの詳細については、「Event Grid ソースとしての Azure Kubernetes Service (AKS)」を参照してください。

クラスターとサブスクリプションを削除する

az group delete コマンドを使用して、リソース グループ、AKS クラスター、名前空間、イベント ハブ、およびすべての関連リソースを削除します。

az group delete --name MyResourceGroup --yes --no-wait

注

クラスターを削除しても、AKS クラスターで使用される Azure Active Directory サービス プリンシパルは削除されません。 サービス プリンシパルを削除する手順については、AKS のサービス プリンシパルに関する考慮事項と削除に関するページを参照してください。

マネージド ID を使用した場合、ID はプラットフォームによって管理されるため、削除する必要はありません。

次のステップ

このクイックスタートでは、Kubernetes クラスターをデプロイし、Azure Event Hubs で AKS イベントをサブスクライブしました。

AKS の詳細を参照し、デプロイの例の完全なコードを確認するには、Kubernetes クラスター チュートリアルに進んでください。