Cloud Scheduler 작업에 attributes 설정
2018년 11월에 발매된 Google Cloud Scheduler
GCP에서 정기적으로 실행하려는 작업을 구현하는 데 매우 유용한 기능입니다.
하지만 2019년 3월 현재 Cloud Console에서는
attributes
그 외 몇개의 항목의 입력 폼이 제공되어 있지 않기 때문에gcloud를 사용하여 API를 통해 설정하는 것이 더 좋았습니다.
검증 사전 준비
Pub/Sub 주제 만들기
scheduler_test라는 이름으로만 만들 수 있습니다.
Cloud Functions 만들기
Cloud Functions에서 Pub/Sub 주제를 구독하는 함수를 만듭니다.
Node.js 8의 기본 코드에
attributes
를 출력하는 프로세스를 추가했습니다.scheduler_test
/**
* Triggered from a message on a Cloud Pub/Sub topic.
*
* @param {!Object} event Event payload.
* @param {!Object} context Metadata for the event.
*/
exports.helloPubSub = (event, context) => {
const pubsubMessage = event.data;
console.log(Buffer.from(pubsubMessage, 'base64').toString());
console.log(event.attributes); // <- 追加
};
주제를 수동으로 게시
속성 (
attributes
)을 설정하는 양식이 있습니다.이 상태에서 게시해 보면 아래와 같이 출력됩니다.
CloudFunction 출력 로그
test message from topic
{ foo: 'bar' }
Cloud Console을 통해 작업 만들기
Pub/Sub 주제를 통해 Cloud Function에 전달할 수 있는 정보는 페이로드 정도입니다.
이 상태에서 작성한 작업을 실행합니다.
CloudFunction 출력 로그
test message from scheduler
null
불행히도
attributes
는 null
입니다.gcloud 명령을 통해 작업 만들기
Cloud Scheduler는 베타 버전이므로
gcloud beta
에서 실행 명령을 사용합니다.문서: gcloud beta scheduler
문서: gcloud beta scheduler jobs create pubsub
attributes
뿐만 아니라 재시도 관련 옵션 및메시지를 파일에서 읽는 옵션 등이 숨겨져 있습니다.
이번에는 다음 명령 작업을 만듭니다.
Pub/Sub 주제를 게시하는 작업 만들기
gcloud beta scheduler jobs create pubsub scheduler_test_gcloud \
--description 'for scheduler test' \
--schedule '0 */3 * * *' \
--time-zone 'Asia/Tokyo' \
--topic 'projects/xxxxxxxxxx/topics/scheduler_test' \
--message-body 'test message from scheduler' \
--attributes 'foo=bar'
Cloud Console과는 주제 이름을 지정하는 방법이 다릅니다.
프로젝트를 식별할 수 있는 형식으로 작성해야 하는 것 같습니다.
위의 명령으로 작성한 작업을 실행해보십시오.
CloudFunction 출력 로그
test message from scheduler
{ foo: 'bar' }
무사히
attributes
를 얻을 수 있었습니다.무스비
이제 CloudFunctions에 전달할 수 있는 값의 자유도가 높아졌습니다.
지금 잠시 동안 gcloud를 통해 작업을 만드는 것이 열심히 보입니다.
아직 베타판이므로, 아무것도 불평은 말할 수 없습니다만.
Reference
이 문제에 관하여(Cloud Scheduler 작업에 attributes 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nanakenashi/items/bec9b1b47fe51b4b3981텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)