이 문서에서는 Terraform에서 Google Cloud 리소스를 사용하여 Eventarc 트리거를 만드는 방법을 설명합니다.
이 문서에서는 Terraform을 사용하여 다음을 수행합니다.
- Cloud Run 및 Eventarc API를 사용 설정합니다.
- 공개적으로 액세스할 수 있는 Cloud Run 서비스를 이벤트 대상으로 배포합니다.
- Cloud Run 서비스의 이벤트 수신자 서비스에 이벤트를 전송하는 Eventarc Pub/Sub 트리거를 만듭니다.
- Eventarc 트리거를 만들어 감사 로그를 필터링하고 Cloud Storage 이벤트를 Cloud Run 서비스로 전송합니다.
Terraform 사용에 대한 리소스와 안내는 Google Cloud에서 Terraform 사용을 참조하세요.
시작하기 전에
- Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
- Google Cloud CLI를 설치합니다.
-
gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.
gcloud init
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
- Google Cloud CLI를 설치합니다.
-
gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.
gcloud init
-
Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.
Google Cloud 콘솔 하단에서 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.
- Git 소스 코드 관리 도구를 다운로드하여 설치합니다.
Cloud Shell은 Terraform이 이미 통합된 셸 환경입니다.
Eventarc 트리거 만들기
Cloud Shell을 사용하여 Terraform으로 리소스를 배포하여 Eventarc 트리거를 만듭니다.
Eventarc 및 Cloud Run API 사용 설정
Eventarc API 및 Cloud Run API를 사용 설정하려면 다음 코드를 사용합니다.
Cloud Run 서비스를 이벤트 대상으로 정의
Cloud Run 서비스를 트리거의 이벤트 대상으로 만듭니다.
google_cloud_run_service
리소스를 사용하여 Cloud Run 서비스를 정의합니다.
Pub/Sub 트리거 정의
Pub/Sub 트리거는 Pub/Sub 주제를 Cloud Run 서비스에 연결합니다. google_eventarc_trigger
리소스를 사용하여 Pub/Sub 트리거 리소스를 정의합니다.
Cloud 감사 로그 트리거 정의
Cloud 감사 로그 트리거는 감사 로그가 있는 Google Cloud 서비스를 Cloud Run 서비스에 연결합니다. 기본 Compute Engine 서비스 계정에 eventarc.eventReceiver
역할을 부여하고 google_eventarc_trigger
리소스를 사용하여 Cloud Storage 이벤트의 Cloud 감사 로그 트리거를 정의합니다.
트리거 생성 확인
Cloud Run 서비스와 두 개의 트리거가 생성되었는지 확인하려면 다음을 실행합니다.
gcloud eventarc triggers list --location DESTINATION-RUN-REGION
출력은 다음과 비슷하게 표시됩니다.
NAME: trigger-auditlog-tf TYPE: google.cloud.audit.log.v1.written DESTINATION: Cloud Run service: cloudrun-hello-tf ACTIVE: By 16:29:08 NAME: trigger-pubsub-tf TYPE: google.cloud.pubsub.topic.v1.messagePublished DESTINATION: Cloud Run service: cloudrun-hello-tf ACTIVE: Yes
삭제
다음을 사용하여 Terraform으로 만든 모든 리소스를 삭제할 수 있습니다.
terraform destroy -var="project_id=PROJECT-ID" -var="region=DESTINATION-RUN-REGION"
비용이 청구되지 않도록 Google Cloud 프로젝트를 삭제할 수도 있습니다. 클라우드 프로젝트를 삭제하면 해당 프로젝트 내에서 사용되는 모든 리소스에 대한 청구가 중단됩니다.
- Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.
- 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
- 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.
다음 단계
- Eventarc를 시작하려면 빠른 시작을 참조하세요.
- Cloud 감사 로그를 사용하여 Cloud Storage에서 이벤트를 수신하는 Cloud Run 서비스를 배포하려면 Cloud 감사 로그 이벤트 수신을 참조하세요.