이 문서에서는 Pub/Sub 알림을 보내는 일괄 작업을 만드는 방법을 설명합니다. 작업 또는 태스크 상태가 변경되거나 작업 또는 태스크가 특정 상태로 전환되면 Pub/Sub를 사용하여 알림을 받을 수 있습니다. 자세한 내용은 알림을 사용하여 작업 모니터링을 참조하세요.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
-
알림을 보내는 작업을 만들고 실행하는 데 필요한 권한을 얻으려면 관리자에게 다음의 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 일괄 작업 편집자(
roles/batch.jobsEditor
) - 작업의 서비스 계정(기본적으로 기본 Compute Engine 서비스 계정)에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
) -
Pub/Sub 주제 또는 프로젝트에 대한 Pub/Sub 편집자 (
roles/pubsub.editor
)
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
-
프로젝트에 대한 일괄 작업 편집자(
-
작업의 서비스 계정에 Pub/Sub 알림을 게시하는 데 필요한 권한이 있는지 확인하려면 관리자에게 작업의 서비스 계정에 Pub/Sub 주제에 대한 Pub/Sub 게시자(
roles/pubsub.publisher
) IAM 역할을 부여해 달라고 요청하세요.기본적으로 작업의 서비스 계정은 기본 Compute Engine 서비스 계정입니다.
- 작업에 Pub/Sub 상태 알림을 사용 설정합니다.
- 필요한 경우 BigQuery로 알림을 스트리밍하도록 Pub/Sub를 구성합니다.
알림을 보내는 작업 만들기 및 실행
다음을 수행하여 Pub/Sub 알림을 보내는 일괄 작업을 만들 수 있습니다.
Google Cloud CLI 또는 REST API를 사용하여 JSON 파일의 본문에 notifications
필드 및 하나 이상의 jobNotification
객체를 포함하는 작업을 만듭니다.
"notifications": [
{
"pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
"message": {
ATTRIBUTES
}
},
]
다음을 바꿉니다.
PROJECT_ID
: Pub/Sub 주제가 포함된 프로젝트의 프로젝트 IDTOPIC_ID
: Pub/Sub 알림을 사용 설정할 때 만든 주제의 Pub/Sub 주제 IDATTRIBUTES
: 지정한 속성. 이 속성은 작업에 대한 알림을 수신할지 아니면 작업의 모든 태스크에 대해 수신 여부에 따라 다릅니다.모든 작업 상태 변경에 대한 알림의 경우 다음을 지정합니다.
"type": "JOB_STATE_CHANGED"
특정 작업 상태 변경에 대한 알림의 경우 다음을 지정합니다.
"type": "JOB_STATE_CHANGED", "newJobState": "JOB_STATE"
JOB_STATE
를 다음 작업 상태 중 하나로 바꿉니다.QUEUED
SCHEDULED
RUNNING
SUCCEEDED
FAILED
작업 상태에 대한 자세한 내용은 작업 수명 주기를 참조하세요.
모든 태스크 상태 변경에 대한 알림의 경우 다음을 지정합니다.
"type": "TASK_STATE_CHANGED"
특정 태스크 상태 변경에 대한 알림의 경우 다음을 지정합니다.
"type": "TASK_STATE_CHANGED", "newTaskState": "TASK_STATE"
TASK_STATE
를 다음 태스크 상태 중 하나로 바꿉니다.PENDING
ASSIGNED
RUNNING
SUCCEEDED
FAILED
태스크 상태에 대한 자세한 내용은 작업 수명 주기를 참조하세요.
예를 들어 모든 작업 상태 변경사항과 태스크 실패 시 알림을 받을 수 있습니다. 이렇게 하려면 작업의 구성 JSON 파일에 다음을 추가합니다.
"notifications": [
{
"pubsubTopic": "projects/example-projecet/topics/example-topic",
"message": {
"type": "JOB_STATE_CHANGED"
}
},
{
"pubsubTopic": "projects/example-project/topics/example-topic",
"message": {
"type": "TASK_STATE_CHANGED",
"newTaskState": "FAILED"
}
}
]
다음 단계
- 작업을 만들거나 실행하는 데 문제가 있는 경우 문제 해결을 참조하기
- 작업 및 태스크 보기
- 작업 만들기 옵션 자세히 알아보기