Kubernetes의 Event Grid의 이벤트 처리기 대상

이벤트 처리기는 엔드포인트를 노출하는 시스템으로, Event Grid에서 이벤트를 보내는 대상입니다. 이벤트를 수신하는 이벤트 처리기는 이에 따라 작동하고 이벤트 페이로드를 사용하여 일부 논리를 실행하므로 새 이벤트가 발생할 수 있습니다.

이벤트를 대상으로 전송하도록 Event Grid를 구성하려면 이벤트 구독을 만듭니다. Azure CLI, 관리 SDK 또는 2020-10-15-preview API 버전을 사용하는 직접 HTTPS 호출을 통해 이 작업을 수행할 수 있습니다.

일반적으로 Kubernetes의 Event Grid는 웹후크를 통해 모든 대상에 이벤트를 보낼 수 있습니다. 웹후크는 Event Grid가 액세스할 수 있는 서비스 또는 워크로드에서 노출하는 HTTP(s) 엔드포인트입니다. Webhook는 클라우드, 온-프레미스 또는 Event Grid가 도달할 수 있는 모든 위치의 동일한 클러스터, 동일한 네트워크 공간에서 호스트되는 워크로드일 수 있습니다.

Important

Azure Arc를 사용하는 Kubernetes의 Event Grid는 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 사용하지 않는 것이 좋습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

Event Grid는 웹후크를 통해 Kubernetes 클러스터에서 호스트되는 다음 대상을 지원합니다.

  • Azure Arc를 사용하는 Kubernetes의 Azure App Service.
  • Azure Arc를 사용하는 Kubernetes의 Azure Functions.
  • Azure Arc를 사용하는 Kubernetes의 Azure Logic Apps.

Kubernetes의 Event Grid는 웹후크 외에 Azure에서 호스트되는 다음 대상에 이벤트를 보낼 수 있습니다.

  • 웹후크를 사용하는 Azure Event Grid
  • 웹후크만 사용하는 Azure Functions
  • Azure Resource Manager 리소스 ID를 사용하는 Azure Event Hubs
  • Azure Resource Manager 리소스 ID를 사용하는 Azure Service Bus 토픽 또는 큐
  • Azure Resource Manager 리소스 ID를 사용하는 Azure Storage 큐

기능 패리티

Kubernetes의 Event Grid는 이벤트 구독에 대한 Azure Event Grid 지원과 함께 훌륭한 수준의 기능 패리티를 제공합니다. 다음 목록에서는 이벤트 구독 기능의 주요 차이점을 열거합니다. 이러한 차이점 외에도 Kubernetes의 Event Grid에서 이벤트 구독을 관리할 때 Azure Event Grid의 REST API 버전 2020-10-15-preview를 참조로 사용할 수 있습니다.

  1. REST API 버전 2020-10-15-preview를 사용합니다.
  2. Azure Functions용 Azure Event Grid 트리거는 지원되지 않습니다. WebHook 대상 유형을 사용하여 Azure Functions에 이벤트를 전달할 수 있습니다.
  3. 배달 못한 편지 위치 지원은 없습니다. 즉, 이벤트 구독 페이로드에서 properties.deadLetterDestination을 사용할 수 없습니다.
  4. Azure Relay의 하이브리드 연결은 아직 지원되지 않습니다.
  5. CloudEvents 스키마만 지원됩니다. 지원되는 스키마 값은 "CloudEventSchemaV1_0"입니다. 클라우드 이벤트 스키마는 확장 가능하며 개방형 표준을 기반으로 합니다.
  6. 레이블(properties.labels)은 Kubernetes의 Event Grid에 적용할 수 없습니다. 따라서 사용할 수 없습니다.
  7. 리소스 ID를 사용한 배달은 지원되지 않습니다. 따라서 이벤트 구독 ID에 대한 모든 속성이 지원되지 않습니다.
  8. 대상 엔드포인트 유효성 검사는 아직 지원되지 않습니다.

이벤트 구독의 이벤트 필터링

이벤트 구독을 구성할 때 또 다른 중요한 부분은 대상에 배달해야 할 이벤트를 선택하는 것입니다. 자세한 내용은 이벤트 필터링을 참조하세요.

샘플 대상 구성

다음은 원하는 대상에 따른 몇 가지 기본적인 샘플 구성입니다.

웹후크

WebHook 엔드포인트에 게시하려면 endpointTypeWebHook으로 설정하고 다음을 입력합니다.

  • endpointUrl: 웹후크 엔드포인트 URL

        {
          "properties": {
            "destination": {
              "endpointType": "WebHook",
              "properties": {
                "endpointUrl": "<your-webhook-endpoint>"
              }
            }
          }
        }
    

Azure Event Grid

Azure Event Grid 클라우드 엔드포인트에 게시하려면 endpointTypeWebHook로 설정하고 다음을 입력합니다.

  • endpointUrl: API 버전 매개 변수가 2018-01-01로 설정되고 aeg-sas-key가 URL 인코딩 SAS 키로 설정된 클라우드의 Azure Event Grid 토픽 URL입니다.

      {
        "properties": {
          "destination": {
            "endpointType": "WebHook",
            "properties": {
              "endpointUrl": "<your-event-grid-cloud-topic-endpoint-url>?api-version=2018-01-01&aeg-sas-key=urlencoded(sas-key-value)"
            }
          }
        }
      }
    

Event Hubs

Event Hubs에 게시하려면 endpointTypeeventHub로 설정하고 다음을 입력합니다.

  • resourceId: 특정 이벤트 허브의 리소스 ID

        {
          "properties": {
            "destination": {
              "endpointType": "eventHub",
              "properties": {
                "resourceId": "<Azure Resource ID of your event hub>"
              }
            }
          }
        }
    

Service Bus 큐

Service Bus 큐에 게시하려면 endpointTypeserviceBusQueue로 설정하고 다음을 입력합니다.

  • resourceId: 특정 Service Bus 큐의 리소스 ID

        {
          "properties": {
            "destination": {
              "endpointType": "serviceBusQueue",
              "properties": {
                "resourceId": "<Azure Resource ID of your Service Bus queue>"
              }
            }
          }
        }
    

Service Bus 토픽

Service Bus 토픽을 게시하려면 endpointTypeserviceBusTopic으로 설정하고 다음을 입력합니다.

  • resourceId: 특정 Service Bus 토픽의 리소스 ID

    {
      "properties": {
        "destination": {
          "endpointType": "serviceBusTopic",
          "properties": {
            "resourceId": "<Azure Resource ID of your Service Bus topic>"
          }
        }
      }
    }
    

스토리지 큐

스토리지 큐를 게시하려면 endpointTypestorageQueue로 설정하고 다음을 입력합니다.

  • queueName: 게시할 Azure Storage의 이름

  • resourceID: 큐가 포함된 스토리지 계정의 Azure 리소스 ID

    {
      "properties": {
        "destination": {
          "endpointType": "storageQueue",
          "properties": {
            "queueName": "<your-storage-queue-name>",
            "resourceId": "<Azure Resource ID of your Storage account>"
          }
        }
      }
    }
    

다음 단계