이 페이지에서는 Cloud Run 작업의 진입점 명령어 및 인수를 구성하는 방법을 설명합니다.
Cloud Run은 컨테이너를 시작할 때 이미지의 기본 진입점 명령어 및 기본 명령어 인수를 실행합니다. 이미지의 기본 진입점 및 명령어 인수를 재정의하려면 컨테이너 구성에서 command
및 args
필드를 사용하면 됩니다. command
필드는 컨테이너에서 실행하는 실제 명령어를 지정합니다. args
필드는 해당 명령어로 전달되는 인수를 지정합니다.
각 작업에서 컨테이너당 최대 1,000개의 인수를 사용할 수 있습니다.
이 페이지에서는 Cloud Run 작업에서 컨테이너의 명령어, 인수, 시작 순서를 구성하는 방법을 보여줍니다. Google Cloud 콘솔, Google Cloud CLI 또는 YAML을 통해 이러한 설정을 구성할 수 있습니다.
필요한 역할
Cloud Run 작업을 구성하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Cloud Run 작업에 대한 Cloud Run 개발자(
roles/run.developer
) 역할 -
서비스 ID에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
) 역할
Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할 및 Cloud Run IAM 권한을 참조하세요. Cloud Run 작업이 Cloud 클라이언트 라이브러리와 같은Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여 방법에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
진입점 및 인수 구성
작업에 대한 명령어 진입점 및 인수를 구성하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud Run 작업 페이지로 이동합니다.
컨테이너 배포를 클릭하고 작업을 선택하여 초기 작업 설정 페이지를 작성합니다. 기존 작업을 구성하는 경우 작업을 선택한 후 수정을 클릭합니다.
컨테이너, 변수 및 보안 비밀, 연결, 보안을 클릭하여 작업 속성 페이지를 펼칩니다.
일반 탭을 클릭합니다.
- 컨테이너에 정의된 명령어가 아닌 경우 컨테이너를 실행할 명령어를 지정하고, 원할 경우 진입점 명령어에 대한 인수를 지정합니다.
만들기 또는 업데이트를 클릭합니다.
gcloud
새 작업에 대해 시작 명령어 및 인수를 설정하려면 다음 안내를 따르세요.
gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
다음과 같이 바꿉니다.
- JOB_NAME을 작업 이름으로 바꿉니다.
- COMMAND를 기본 명령어를 사용하지 않는 경우 컨테이너를 시작하는 명령어로 바꿉니다.
- ARG1: 컨테이너 명령어로 전송 중인 인수. 인수가 두 개 이상이면 쉼표로 구분된 목록을 사용합니다.
- IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/job:latest
)로 바꿉니다.
기존 작업의 명령어 및 인수를 업데이트하려면 다음 안내를 따르세요.
gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N
YAML
새 작업을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업을 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run jobs describe JOB_NAME --format export > job.yaml
args:
속성과command
속성을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - args: - 'ARG1' - 'ARG-N' command: - COMMAND image: IMAGE
다음과 같이 바꿉니다.
- COMMAND를 기본 명령어를 사용하지 않는 경우 컨테이너를 시작하는 명령어로 바꿉니다.
- ARG1: 컨테이너 명령어로 전송 중인 인수. 필요한 경우 별도의 줄에 추가 인수를 각각 지정합니다.
또한 환경 변수 또는 메모리 제한과 같은 추가 구성을 지정할 수 있습니다.
기존 작업 구성을 업데이트합니다.
gcloud run jobs replace job.yaml
설정한 진입점 명령어 및 인수를 삭제하려면(컨테이너 기본값으로 복원) 다음과 같이 빈 문자열을 제공합니다.
gcloud run jobs update JOB_NAME --command "" --args ""
Terraform
Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.
Terraform 구성에서 다음을 google_cloud_run_v2_job
리소스에 추가합니다.
resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "us-central1"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
command = ["COMMAND"]
args = ["ARG1", "ARG-N"]
}
}
}
}
다음과 같이 바꿉니다.
- JOB_NAME을 Cloud Run 작업 이름으로 바꿉니다.
- COMMAND를 기본 명령어를 사용하지 않는 경우 컨테이너를 시작하는 명령어로 바꿉니다.
- ARG1: 컨테이너 명령어로 전송 중인 인수. 원하는 경우 추가 인수를 지정합니다.
인수에 등호 또는 쉼표 사용
인수에 등호를 사용하는 경우 다음 형식을 사용합니다.
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
인수에 쉼표를 사용하는 경우 쉼표 이스케이프 처리에 대한 자세한 내용은 환경 변수 구성을 참조하세요.
컨테이너 설정 보기
Cloud Run 작업의 현재 컨테이너 설정을 보려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud Run 작업 페이지로 이동합니다.
관심 있는 작업을 클릭하여 작업 세부정보 페이지를 엽니다.
구성 탭을 클릭합니다.
구성 세부정보에서 컨테이너 설정을 찾습니다.
gcloud
다음 명령어를 사용하세요.
gcloud run jobs describe JOB_NAME
반환된 구성에서 컨테이너 설정을 찾습니다.
사이드카를 배포할 수 있도록 컨테이너 시작 순서 구성
사이드카 배포에서 컨테이너 시작 순서를 지정하려면 컨테이너 종속 항목 기능을 사용합니다. 종속 항목이 있는 컨테이너를 지정하고 종속된 컨테이너를 나열합니다. 종속 항목이 없는 컨테이너는 항상 동시에 먼저 시작됩니다.
Google Cloud 콘솔, Google Cloud CLI 또는 YAML을 사용하여 시작 순서를 지정할 수 있습니다.
콘솔
Google Cloud 콘솔에서 Cloud Run 페이지로 이동합니다.
- 기존 작업의 경우 작업을 클릭합니다. 그런 다음 목록에서 작업을 클릭하고 작업 구성 보기 및 수정을 선택하여 작업 수정 양식을 표시합니다.
- 새 작업의 경우 컨테이너 배포를 클릭하고 작업을 선택하여 작업 만들기 양식을 표시합니다.
새 작업의 경우 작업 이름, 작업 컨테이너 URL, 리전, 태스크 수를 지정합니다. 컨테이너, 볼륨, 네트워킹, 보안 탭에서 다음을 수행합니다.
- 기본 작업 컨테이너를 구성합니다.
- 배포 중인 사이드카 컨테이너를 각각 추가하려면 컨테이너 추가를 클릭합니다.
- 컨테이너가 다른 컨테이너에 종속되는 경우 컨테이너 시작 순서 메뉴를 사용하여 Cloud Run에서 현재 컨테이너보다 먼저 시작해야 하는 컨테이너를 선택합니다.
기존 작업의 경우 컨테이너마다 다음 단계를 수행합니다.
- 컨테이너 시작 순서 메뉴에 나열된 컨테이너를 살펴봅니다.
- 컨테이너가 다른 컨테이너에 종속되는 경우 컨테이너 시작 순서 메뉴를 사용하여 해당 컨테이너를 선택합니다.
다른 필수 구성을 모두 완료한 후 새 작업의 경우 만들기를, 기존 작업의 경우 업데이트를 클릭합니다. 배포가 완료될 때까지 기다립니다.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
지정된 시작 순서에 따라 컨테이너 여러 개를 작업에 배포하려면 다음 명령어를 실행합니다.
gcloud beta run create JOB \ --container CONTAINER_1_NAME --image='JOB_IMAGE' \ --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME
다음과 같이 바꿉니다.
- JOB을 배포할 작업의 이름으로 바꿉니다. 이 파라미터를 완전히 생략할 수 있지만 생략하면 작업 이름을 입력하라는 메시지가 표시됩니다.
- CONTAINER_1_NAME을 기본 작업 컨테이너의 이름으로 바꿉니다.
- JOB_IMAGE를 기본 작업 컨테이너 이미지에 대한 참조로 바꿉니다(예:
us-docker.pkg.dev/cloudrun/container/job:latest
). - CONTAINER_2_NAME을 사이드카 컨테이너 이름으로 바꿉니다(예:
sidecar
). - SIDECAR_IMAGE를 사이드카 컨테이너 이미지에 대한 참조로 바꿉니다.
배포 명령어에서 각 컨테이너를 구성하려면 각 컨테이너 구성을
container
매개변수 다음에 제공합니다.
YAML
새 작업을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업을 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run jobs describe JOB_NAME --format export > job.yaml
container-dependencies
속성을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: Job metadata: annotations: run.googleapis.com/launch-stage: BETA name: JOB spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
다음과 같이 바꿉니다.
- CONTAINER1을 하나 이상의 컨테이너에 종속된 첫 번째 컨테이너의 이름으로 바꿉니다. YAML에서 컨테이너 이름을 설정할 수 있습니다. 컨테이너 이름을 지정하지 않으면 Cloud Run이 자동으로 이름을 생성합니다.
- CONTAINER2를 CONTAINER1 전에 시작해야 하는 컨테이너 이름으로 바꿉니다.
- CONTAINER3을 하나 이상의 컨테이너에 종속된 두 번째 컨테이너 이름으로 바꿉니다.
YAML 스니펫에 표시된 예시에서 CONTAINER2가 먼저 시작되고 CONTAINER1가 두 번째로 시작되며, CONTAINER3이 마지막으로 시작됩니다.
다음 명령어를 사용하여 작업을 만들거나 업데이트합니다.
gcloud run jobs replace job.yaml