Eventarc를 사용하여 이벤트 기반 아키텍처 만들기

Eventarc 및 Firestore를 사용하여 이벤트 기반 아키텍처를 빌드할 수 있습니다. Eventarc용 Firestore 트리거는 데이터베이스의 특정 문서 변경 시 이벤트를 생성합니다. 트리거는 이벤트를 지원되는 대상으로 라우팅할 수 있습니다.

Eventarc는 분리된 마이크로서비스 간에 상태 변경 흐름(이벤트라고 함)을 관리하는 표준화된 솔루션을 제공합니다. 트리거된 Eventarc는 전송, 보안, 승인, 관측 가능성, 오류 처리를 관리하면서 이러한 이벤트를 다양한 대상으로 라우팅합니다.

제한사항

Eventarc용 Firestore 트리거의 다음 제한사항에 유의하세요.

  • 순서는 보장되지 않습니다. 급격하게 변경하면 예기치 않은 순서로 이벤트가 트리거될 수 있습니다.
  • 이벤트는 최소 한 번은 전송됩니다.

이벤트 핸들러가 멱등성을 갖는지 확인하고 이벤트가 두 번 이상 전송될 때 예기치 않은 결과 또는 부작용이 발생하지 않도록 합니다. 자세한 내용은 멱등 함수 빌드를 참조하세요.

미리보기 제한사항

이 기능의 미리보기에는 다음 제한사항이 적용됩니다.

Eventarc 및 Firestore 위치

Eventarc는 Firestore 이벤트 트리거에 대해 멀티 리전을 지원하지 않지만 멀티 리전 위치에서 Firestore 데이터베이스에 대한 트리거를 만들 수 있습니다. Eventarc는 Firestore 멀티 리전 위치를 다음 Eventarc 리전에 매핑합니다.

Firestore 멀티 리전 Eventarc 리전
nam5 us-central1
eur3 europe-west4

Cloud Functions 2세대와 1세대의 차이점

Cloud Functions(2세대)는 모든 런타임에 Eventarc 이벤트를 사용합니다. 이전에는 Cloud Functions(1세대)에서 일부 런타임에만 Eventarc 이벤트를 사용했습니다. Eventarc 이벤트에서는 Cloud Functions (1세대)와 다음과 같은 차이점이 있습니다.

  • Eventarc용 Firestore 트리거는 Cloud Functions 외의 추가 대상을 지원합니다. CloudEvents는 Cloud Run, GKE, Workflows를 포함하되 이에 국한되지 않는 여러 대상으로 라우팅할 수 있습니다.

  • Eventarc용 Firestore 트리거는 데이터베이스 쓰기 작업 시작 시 트리거 정의를 검색하고 이 정의를 사용하여 Firestore에서 이벤트를 내보내야 하는지 결정합니다. 쓰기 작업은 실행 시 발생할 수 있는 정의를 트리거하는 변경사항을 고려하지 않습니다.

    Cloud Functions(1세대)는 데이터베이스 쓰기 평가 중에 트리거 정의를 검색하고 평가 중에 트리거 변경사항을 실행하면 Firestore에서 이벤트를 내보낼지 여부에 영향을 줄 수 있습니다.

Datastore 모드 및 Native 모드 이벤트 상호 운용성

Eventarc는 Datastore 모드와 Native 모드의 이벤트 트리거를 지원합니다. 이러한 이벤트 트리거를 두 데이터베이스 유형과 상호 운용할 수 있습니다. Native 모드 데이터베이스의 Firestore는 Datastore 이벤트를 수신하고 Datastore 모드의 Firestore 데이터베이스는 Native 모드 이벤트를 수신할 수 있습니다.

이벤트 상호 운용성을 사용하면 서로 다른 유형의 Firestore 데이터베이스에서 Eventarc 코드를 공유할 수 있습니다.

이벤트 전환

Datastore 모드 데이터베이스에 Native 모드 이벤트 트리거를 적용하면 Eventarc에서 다음과 같은 변환을 수행합니다.

  • 항목의 네임스페이스는 이벤트의 PartitionId 속성에 저장됩니다.
  • 삽입된 항목은 Native 모드 map 유형으로 변환됩니다.

다음 단계