액세스 키를 사용하여 Azure Event Grid 사용자 지정 토픽에 이벤트 게시

이 문서에서는 액세스 키를 사용하여 사용자 지정 토픽에 이벤트를 게시하는 방법을 설명합니다. 게시 및 이벤트 데이터의 형식을 보여 줍니다. SLA(서비스 수준 계약)는 기대한 형식과 일치하는 게시에만 적용됩니다.

참고 항목

Microsoft Entra 인증은 액세스 키 또는 SAS(공유 액세스 서명) 토큰 인증을 통해 제공되는 것보다 더 뛰어난 인증 지원을 제공합니다. Microsoft Entra 인증을 사용하면 Microsoft Entra ID 공급자에 대해 ID의 유효성이 검사됩니다. 개발자는 Microsoft Entra 인증을 사용하는 경우 코드에서 키를 처리할 필요가 없습니다. 조건부 액세스와 같이 애플리케이션의 보안 상황을 개선하는 데 도움이 되는 모든 보안 기능(Microsoft ID 플랫폼에 기본 제공)을 활용할 수도 있습니다. 자세한 내용은 Microsoft Entra ID를 사용하여 게시 클라이언트 인증을 참조하세요.

엔드포인트

HTTP POST를 사용자 지정 토픽에 보낼 때 URI 형식: https://<topic-endpoint>?api-version=2018-01-01을 사용합니다. 예를 들어 올바른 URI는 https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01입니다. Azure CLI를 사용하여 사용자 지정 토픽에 대한 엔드포인트를 가져오려면 다음을 사용합니다.

az eventgrid topic show --name <topic-name> -g <topic-resource-group> --query "endpoint"

Azure PowerShell을 사용하여 사용자 지정 토픽에 대한 엔드포인트를 가져오려면 다음을 사용합니다.

(Get-AzEventGridTopic -ResourceGroupName <topic-resource-group> -Name <topic-name>).Endpoint

요청에 인증을 위한 키를 포함하며 이름이 aeg-sas-key인 헤더를 포함합니다. 예를 들어 올바른 헤더 값은 aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx입니다. Azure CLI를 사용하여 사용자 지정 토픽에 대한 키를 가져오려면 다음을 사용합니다.

az eventgrid topic key list --name <topic-name> -g <topic-resource-group> --query "key1"

PowerShell을 사용하여 사용자 지정 토픽에 대한 키를 가져오려면 다음을 사용합니다.

(Get-AzEventGridTopicKey -ResourceGroupName <topic-resource-group> -Name <topic-name>).Key1

이벤트 데이터

사용자 지정 토픽에서 최상위 수준 데이터에는 표준 리소스 정의 이벤트와 동일한 필드가 있습니다. 이러한 속성 중 하나는 사용자 지정 토픽에 고유한 속성을 포함하는 data 속성입니다. 이벤트 게시자가 이 데이터 개체에 대한 속성을 결정합니다. 스키마는 다음과 같습니다.

[
  {
    "id": string,    
    "eventType": string,
    "subject": string,
    "eventTime": string-in-date-time-format,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string
  }
]

이 속성에 대한 설명은 Azure Event Grid 이벤트 스키마를 참조하세요. 이벤트를 Event Grid 토픽에 게시할 때 배열은 최대 1MB의 전체 크기를 가질 수 있습니다. 이벤트에 허용되는 최대 크기는 1MB입니다. 64KB를 초과하는 이벤트는 64KB 단위로 요금이 부과됩니다. 일괄 처리로 이벤트를 수신할 때 허용되는 최대 이벤트 수는 일괄 처리당 5,000개입니다.

예를 들어 올바른 이벤트 데이터 스키마는 다음과 같습니다.

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0"
}]

응답

항목 엔드포인트에 게시한 후 응답을 수신합니다. 응답은 표준 HTTP 응답 코드입니다. 몇 가지 일반적인 응답은 다음과 같습니다.

결과 응답
Success 200 OK
이벤트 데이터의 형식이 잘못되었습니다. 400 잘못된 요청
잘못된 액세스 키 401 권한 없음
잘못된 엔드포인트 404 찾을 수 없음
배열 또는 이벤트가 크기 제한을 초과합니다. 413 페이로드가 너무 큼

오류의 경우 메시지 본문에 다음과 같은 형식이 있습니다.

{
    "error": {
        "code": "<HTTP status code>",
        "message": "<description>",
        "details": [{
            "code": "<HTTP status code>",
            "message": "<description>"
    }]
  }
}

다음 단계