다음을 통해 공유


네임스페이스 토픽을 사용하여 웹후크에 이벤트 전달 - Azure Portal(미리 보기)

이 문서에서는 CloudEvents JSON 형식 으로 Azure Event Grid에 이벤트를 게시하고 푸시 배달 모델을 사용하여 해당 이벤트를 배달하는 단계별 지침을 제공합니다. 구체적으로 말하면 Event Grid의 네임스페이스 토픽에 이벤트를 게시하고 이벤트 구독에서 웹후크 처리기 대상으로 해당 이벤트를 푸시합니다. 푸시 배달 모델에 대한 자세한 내용은 푸시 배달 개요를 참조하세요.

비고

Azure Event Grid 네임스페이스는 현재 SAS(공유 액세스 서명) 토큰 및 액세스 키 인증을 지원합니다.

Azure 계정이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Event Grid 네임스페이스 만들기

Event Grid 네임스페이스는 이벤트를 게시하는 사용자 정의 엔드포인트를 제공합니다. 다음 예제에서는 Azure Cloud Shell에서 Bash를 사용하여 리소스 그룹에 네임스페이스를 만듭니다. 네임스페이스 이름은 DNS(도메인 이름 시스템) 항목의 일부이므로 고유해야 합니다.

  1. Azure 포털로 이동하십시오.

  2. 주제의 검색 창에 Event Grid Namespaces 을 입력하고, 결과에서 Event Grid Namespaces 을 선택합니다.

    Azure Portal의 검색 창을 보여 주는 스크린샷.

  3. Event Grid 네임스페이스 페이지에서 명령 모음에서 + 만들기를 선택합니다. 명령 모음에서 만들기 단추가 선택된 Event Grid 네임스페이스 페이지를 보여 주는 스크린샷

  4. 네임스페이스 만들기 페이지에서 다음 단계를 수행합니다.

    1. 네임스페이스를 만들려는 Azure 구독을 선택합니다.
    2. 새로 만들기를 선택하여 새 리소스 그룹을 만들 거나 기존 리소스 그룹을 선택합니다.
    3. 네임스페이스의 이름을 입력합니다.
    4. 리소스 그룹을 만들 위치를 선택합니다.
    5. 그런 다음 검토 + 만들기를 선택합니다.
      네임스페이스 만들기 페이지를 보여 주는 스크린샷.
    6. 리뷰 + 생성 페이지에서 생성를 선택합니다.
  5. 배포 페이지에서 성공적인 배포리소스로 이동을 선택합니다.

액세스 키 가져오기

  1. Event Grid 네임스페이스 페이지의 왼쪽 메뉴에서 액세스 키를 선택합니다.
  2. 액세스 키 옆에 있는 복사 단추를 선택합니다. 액세스 키 탭이 선택된 Event Grid 네임스페이스 페이지를 보여 주는 스크린샷
  3. 액세스 키를 어딘가에 저장합니다. 나중에 빠른 시작에서 사용할 예정입니다.

네임스페이스에서 토픽 만들기

네임스페이스 엔드포인트에 게시된 모든 이벤트를 포함하는 토픽을 만듭니다.

  1. 왼쪽 메뉴에서 토픽 을 선택합니다.
  2. 항목 페이지의 명령 모음에서 + 토픽을 선택합니다. 항목 페이지를 보여 주는 스크린샷.
  3. 토픽 만들기 페이지에서 다음 단계를 수행합니다.
    1. 항목의 이름을 입력합니다.
    2. 선택하고생성합니다.
      토픽 만들기 페이지를 보여 주는 스크린샷

메시지 엔드포인트 만들기

이벤트를 구독하기 전에 이벤트 메시지의 엔드포인트를 만들어 보겠습니다. 일반적으로 엔드포인트는 이벤트 데이터를 기반으로 작업을 수행합니다. 이 빠른 시작을 간소화하기 위해 이벤트 메시지를 표시하는 미리 작성된 웹앱을 배포합니다. 배포된 솔루션은 App Service 계획, App Service 웹앱 및 GitHub의 소스 코드를 포함합니다.

  1. Azure에 배포를 선택하여 구독에 솔루션을 배포합니다.

    Resource Manager 템플릿을 Azure에 배포하는 단추

  2. 사용자 지정 배포 페이지에서 다음 단계를 수행합니다.

    1. 리소스 그룹에서 스토리지 계정을 만들 때 생성된 것과 동일한 리소스 그룹을 선택합니다. 자습서를 완료한 후 리소스 그룹을 삭제하면 더 쉽게 정리할 수 있습니다.

    2. 사이트 이름에 웹앱의 이름을 입력합니다.

    3. 호스팅 계획 이름에 웹앱을 호스팅하는 데 사용할 App Service 계획의 이름을 입력합니다.

    4. Review + create를 선택합니다.

      사용자 지정 배포 페이지를 보여주는 스크린샷.

  3. 리뷰 + 생성 페이지에서 생성를 선택합니다.

  4. 배포를 완료하는 데 몇 분이 걸립니다. 배포 페이지에서 리소스 그룹으로 이동을 선택합니다.

    리소스 그룹으로 이동하는 링크가 있는 배포 성공 페이지를 보여 주는 스크린샷.

  5. 리소스 그룹 페이지의 리소스 목록에서 자신이 만든 웹앱을 선택합니다. 이 목록에는 App Service 계획과 스토리지 계정도 표시됩니다.

    리소스 그룹에서 웹앱의 선택을 보여 주는 스크린샷.

  6. 웹앱의 App Service 페이지에서 URL을 선택하여 웹 사이트로 이동합니다. URL은 https://<your-site-name>.azurewebsites.net 형식이어야 합니다.

    웹앱으로 이동하는 링크 선택을 보여 주는 스크린샷.

  7. 사이트가 표시되지만 아직 이벤트가 게시되지 않았는지 확인합니다.

    새 사이트의 스크린샷.

    중요합니다

    이벤트가 게시될 때 볼 수 있도록 Azure Event Grid 뷰어 창을 열어 둡니다.

이벤트 구독 만들기

이벤트 구독을 생성하고 배달 모드를 푸시로 설정하여 푸시 배달을 지원합니다.

  1. Event Grid 네임스페이스 페이지가 열려 있는 탭 또는 창에서 Event Hubs 네임스페이스 페이지가 열려 있는 탭 또는 창으로 전환합니다.
  2. Event Grid 네임스페이스 페이지의 왼쪽 메뉴에서 토픽을 선택합니다.
  3. 토픽 페이지에서 이전 단계에서 만든 항목을 선택합니다.
  4. 명령 모음에서 + 구독 을 선택합니다. 구독 만들기 단추가 선택된 토픽 페이지를 보여 주는 스크린샷
  5. 이벤트 구독 만들기 페이지에서 다음 단계를 수행합니다.
    1. 기본 탭에서 이벤트 구독의 이름을 입력합니다.

    2. 이벤트 배달 모드에 대한 푸시 를 선택합니다.

    3. 엔드포인트 형식으로 웹후크를 선택합니다.

    4. 엔드포인트 구성을 선택합니다.

      배달 모드로 푸시가 선택되고 WebHook이 엔드포인트 유형으로 선택된 구독 만들기 페이지를 보여 주는 스크린샷.

    5. 웹후크 페이지에서 다음 예제와 같이 엔드포인트(예: https://spegridsite0520.azurewebsites.net/api/updates)를 지정하고 선택 확인을 선택합니다.

      구독자 엔드포인트에 대한 값이 있는 웹 후크 페이지를 보여 주는 스크린샷

    6. 구독 만들기 페이지로 돌아간 후, 생성을 선택합니다.

      모든 필드가 채워진 구독 만들기 페이지를 보여 주는 스크린샷

토픽에 이벤트 보내기

이제 이 섹션의 단계에 따라 네임스페이스 토픽에 샘플 이벤트를 보냅니다.

변수 선언

  1. Azure Portal에서 Cloud Shell을 시작합니다. Bash로 전환 합니다.

    Cloud Shell을 보여 주는 스크린샷.

  2. 다음 명령을 실행하여 리소스 그룹 이름을 저장할 변수를 선언합니다. RESOUREGROUPNAME를 Azure 리소스 그룹의 이름으로 바꾸십시오.

    resource_group=RESOURCEGROUPNAME
    
  3. Cloud Shell에서 다음 명령을 실행하여 네임스페이스 이름을 저장할 변수를 선언합니다. Event Grid 네임스페이스의 이름으로 NAMESPACENAME를 대체합니다.

    namespace=NAMESPACENAME
    
  4. 다음 명령을 실행하여 앞에서 적어 두는 액세스 키 값을 보유하는 변수를 선언합니다. ACCESSKEY를 Event Grid 네임스페이스의 액세스 키 값으로 바꾸십시오.

    key=ACCESSKEY
    
  5. Cloud Shell에서 다음 명령을 실행하여 네임스페이스 이름을 저장할 변수를 선언합니다.

    topic=TOPICNAME
    

이벤트 게시

  1. 네임스페이스 호스트 이름을 검색합니다. 이벤트를 보낼 네임스페이스 HTTP 엔드포인트를 구성하는 데 사용합니다. 다음 작업은 API 버전 2023-06-01-preview에서 처음 사용할 수 있었습니다. Azure Portal에서 Event Grid 네임스페이스의 개요 페이지에서 호스트 이름을 가져올 수도 있습니다.

    publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
    
  2. CloudEvents 표준을 준수하는 샘플 이벤트를 생성하십시오.

    event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
    

    data 요소는 이벤트의 페이로드입니다. 모든 잘 구성된(Well-Formed) JSON은 이 필드에 배치될 수 있습니다. 이벤트에 참가할 수 있는 속성(컨텍스트 특성이라고도 함)에 대한 자세한 내용은 CloudEvents 사양을 참조하세요.

  3. CURL을 사용하여 토픽에 이벤트를 보냅니다. CURL은 HTTP 요청을 보내는 유틸리티입니다.

    curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
    

Azure Event Grid 뷰어가 이벤트를 수신했는지 확인합니다.

Azure Event Grid 뷰어 웹앱에 Event Grid에서 받은 이벤트가 표시되는지 확인합니다.

샘플 수신 이벤트가 있는 Azure Event Grid 뷰어를 보여 주는 스크린샷

이 빠른 시작에서는 웹후크를 이벤트 처리기로 사용했습니다. Azure 이벤트 허브를 이벤트 처리기로 사용하는 빠른 시작은 네임스페이스 토픽을 사용하여 Azure Event Hubs에 이벤트 전달을 참조하세요.