이 튜토리얼에서는 App Engine 애플리케이션 내에서 Cloud Tasks를 사용하여 Cloud Run 함수를 트리거하고 예약된 이메일을 보내는 방법을 다룹니다.
목표
- 각 구성 요소의 코드 이해하기
- SendGrid 계정 만들기
- 소스 코드 다운로드하기
- Cloud Run 함수를 배포하여 Cloud Tasks 요청을 수신하고 SendGrid API를 통해 이메일 보내기
- Cloud Tasks 큐 만들기
- Cloud Tasks 요청을 인증하기 위한 서비스 계정 만들기
- 사용자가 이메일을 보낼 수 있는 클라이언트 코드 배포하기
비용
Cloud Tasks, Cloud Run 함수, App Engine에는 무료 등급이 제공되므로 지정된 제품의 무료 등급에서 튜토리얼을 실행하는 한 추가 비용은 발생하지 않습니다. 자세한 내용은 가격 책정을 참조하세요.
시작하기 전에
프로젝트를 선택하거나 만듭니다. Google Cloud
프로젝트에서 App Engine 애플리케이션을 초기화하세요.
App Engine 시작하기 페이지에서 애플리케이션 만들기를 클릭합니다.
애플리케이션의 리전을 선택합니다. 이 위치는 Cloud Tasks 요청의
LOCATION_ID매개변수로 사용되므로 기록해두두세요. 두 위치는 App Engine 명령어에서는 europe-west 및 us-central로, Cloud Tasks 명령어에서는 europe-west1 및 us-central1로 각각 호출됩니다.언어는 Node.js를 선택하고 환경은 표준을 선택합니다.
결제 사용 설정 팝업이 나타나면 결제 계정을 선택합니다. 현재 결제 계정이 없는 경우 결제 계정 만들기를 클릭하고 마법사의 안내에 따릅니다.
시작하기 페이지에서 다음을 클릭합니다. 이 부분은 나중에 처리합니다.
Cloud Run 함수 및 Cloud Tasks API를 사용 설정합니다.
gcloud CLI를 설치하고 초기화합니다.
코드 이해하기
이 섹션에서는 앱 코드와 코드의 작동 방식을 살펴봅니다.
태스크 만들기
색인 페이지는 app.yaml의 핸들러를 사용하여 제공됩니다. 태스크 생성에 필요한 변수는 환경 변수로 전달됩니다.
이 코드는 엔드포인트 /send-email을 생성합니다. 이 엔드포인트는 색인 페이지에서 양식 제출을 처리하고 해당 데이터를 태스크 생성 코드에 전달합니다.
이 코드는 실제로 태스크를 만들어 Cloud Tasks 큐로 보냅니다. 코드는 다음과 같이 태스크를 빌드합니다.
대상 유형을
HTTP Request로 지정사용할
HTTP method와 대상의URL지정다운스트림 애플리케이션이 구조화된 페이로드를 파싱할 수 있도록
Content-Type헤더를application/json으로 설정Cloud Tasks가 인증이 필요한 요청 대상에 사용자 인증 정보를 제공할 수 있도록 서비스 계정 이메일 추가. 서비스 계정은 별도로 생성됩니다.
날짜에 대한 사용자 입력이 최대 30일 이내인지 확인하고 이를 필드
scheduleTime으로 요청에 추가