다음을 통해 공유


JavaScript용 Azure Event Grid 네임스페이스 클라이언트 라이브러리 - 버전 1.0.0

Azure Event Grid 는 대규모로 안정적인 이벤트 배달을 제공하는 클라우드 기반 서비스입니다.

클라이언트 라이브러리를 사용하여 Event Grid 네임스페이스에 이벤트 보내기

주요 링크:

시작

현재 지원되는 환경

자세한 내용은 지원 정책을 참조하세요.

사전 요구 사항

Azure CLI를 사용하는 경우 및 <your-resource-name> 를 고유한 이름으로 바꿉 <your-resource-group-name> 니다.

Event Grid 토픽 만들기

az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>

Event Grid 도메인 만들기

az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>

@azure/eventgrid-namespaces 패키지를 설치합니다.

를 사용하여 JavaScript용 Azure Event Grid 네임스페이스 클라이언트 라이브러리를 npm설치합니다.

npm install @azure/eventgrid-namespaces

네임스페이스 클라이언트 만들기 및 인증

Event Grid 네임스페이스 API에 액세스하는 클라이언트 개체를 만들려면 Event Grid 토픽 및 credential의 이 필요합니다endpoint. Event Grid 네임스페이스 클라이언트는 액세스 키를 사용할 수 있습니다.

Azure Portal에서 또는 아래 AzureCLI 코드 조각을 사용하여 Event Grid 토픽에 대한 엔드포인트를 찾을 수 있습니다.

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

액세스 키 사용

Azure Portal을 사용하여 Event Grid 리소스를 찾아 액세스 키를 검색하거나 아래 Azure CLI 코드 조각을 사용합니다.

az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>

API 키와 엔드포인트가 있으면 다음과 같이 클래스를 AzureKeyCredential 사용하여 클라이언트를 인증할 수 있습니다.

const { EventGridSenderClient, EventGridReceiverClient, AzureKeyCredential } = require("@azure/eventgrid-namespaces");

const eventGridSenderClient = new EventGridSenderClient(
  "<endpoint>",
  new AzureKeyCredential("<Access Key>")
);

const eventGridReceiverClient = new EventGridReceiverClient(
  "<endpoint>",
  new AzureKeyCredential("<Access Key>")
);

Azure EventGrid는 요청의 ID 기반 인증을 위해 Azure AD(Azure Active Directory)와의 통합을 제공합니다. Azure AD를 사용하면 RBAC(역할 기반 액세스 제어)를 사용하여 사용자, 그룹 또는 애플리케이션에 Azure Event Grid 리소스에 대한 액세스 권한을 부여할 수 있습니다.

를 사용하여 토픽 또는 도메인에 TokenCredential이벤트를 보내려면 인증된 ID에 "EventGrid 데이터 보낸 사람" 역할이 할당되어야 합니다.

@azure/identity 패키지를 사용하면 개발 및 프로덕션 환경 모두에서 요청에 원활하게 권한을 부여할 수 있습니다. Azure Active Directory에 대한 자세한 내용은 추가 정보를 참조@azure/identity하세요.

예를 들어 를 사용하여 DefaultAzureCredential Azure Active Directory를 사용하여 인증할 클라이언트를 생성할 수 있습니다.

const { EventGridSenderClient, EventGridReceiverClient } = require("@azure/eventgrid-namespaces");
const { DefaultAzureCredential } = require("@azure/identity");

const eventGridSenderClient = new EventGridSenderClient(
  "<endpoint>",
  new DefaultAzureCredential(),
  "<topicName>"
);

const eventGridReceiverClient = new EventGridReceiverClient(
  "<endpoint>",
  new DefaultAzureCredential(),
  "<topicName>",
  "<subscriptionName>"
);

주요 개념

이벤트 보내기 및 받기

EventGridSenderClient 은 Event Grid에 이벤트를 보내는 데 사용할 수 있습니다. 다음과 같이 초기화할 수 있습니다.

const eventGridSenderClient = new EventGridSenderClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>"),
  "<topicName>"
);

EventGridReceiverClient 은 Event Grid에서 이벤트를 수신하는 데 사용할 수 있습니다. 다음과 같이 초기화할 수 있습니다.

const eventGridReceiverClient = new EventGridReceiverClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>"),
  "<topicName>",
  "<subscriptionName>"
);

분산 추적 및 클라우드 이벤트

이 라이브러리는 를 사용하여 분산 추적을 지원합니다 @azure/core-tracing. 분산 추적을 사용하는 경우 이 라이브러리는 작업 중에 범위를 만듭니다 send . 또한 클라우드 이벤트 1.0 스키마를 사용하여 이벤트를 보낼 때 SDK는 분산 추적 확장을 사용하여 이벤트에 분산 추적 메타데이터를 추가합니다. 및 tracestate 확장 속성의 traceparent 값은 이벤트를 보내는 HTTP 요청의 및 tracestate 헤더에 해당 traceparent 합니다. 이벤트에 확장 속성이 이미 있는 traceparent 경우 업데이트되지 않습니다.

Kubernetes의 Event Grid

이 라이브러리는 Azure Arc를 사용하여 Kubernetes에서 테스트 및 유효성을 검사했습니다.

예제

Event Grid 토픽에 이벤트 게시

const { EventGridSenderClient, AzureKeyCredential } = require("@azure/eventgrid-namespaces");

const client = new EventGridSenderClient(
  "<endpoint>",
  new AzureKeyCredential("<API key>"),
  "<topicName>"
);

const cloudEvent: CloudEvent = {
  type: "example",
  source: "https://example.com",
  id: `singleEventIdV210001`,
  time: new Date(),
  data: {
    resourceUri: "https://dummyurl.com",
  },
  specversion: "1.0",
};
// Publish the Cloud Event
await client.sendEvents(cloudEvent);

문제 해결

로깅

로깅을 사용하도록 설정하면 실패에 대한 유용한 정보를 파악하는 데 도움이 될 수 있습니다. HTTP 요청 및 응답 로그를 보려면 AZURE_LOG_LEVEL 환경 변수를 info로 설정합니다. 또는 @azure/logger에서 setLogLevel을 호출하여 런타임에 로깅을 사용하도록 설정할 수 있습니다.

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

로그를 사용하도록 설정하는 방법에 대한 자세한 지침은 @azure/로거 패키지 문서를 참조하세요.

다음 단계

이 라이브러리를 사용하는 방법에 대한 자세한 예제는 샘플 디렉터리를 참조하세요.

참여

이 라이브러리에 기여하려면 기여 가이드 를 참조하여 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.

Impressions