Cloud Run 샌드박스는 에이전트 코드를 실행하고, 데이터 변환을 수행하고, 기존 작업 내에서 스크립트를 안전하게 실행할 수 있는 빠르고 안전하며 격리된 환경을 제공합니다. 샌드박스는 지연 시간이 매우 최적화되어 있으며 컨테이너와 동일한 인스턴스 내에서 실행되며 할당된 CPU와 메모리를 공유합니다.
이 페이지에서는 컨테이너에서 샌드박스를 구성하는 방법을 설명합니다. CLI를 사용하여 샌드박스와 상호작용하는 코드를 작성하는 방법에 대한 자세한 내용은 Cloud Run의 코드 실행을 참조하세요.
시작하기 전에
- 계정에 로그인합니다. Google Cloud 를 처음 사용하는 경우 Google Cloud, 계정을 만들어 실제 시나리오에서 제품의 성능을 평가하세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- gcloud CLI를 설치하고 초기화합니다.
- Cloud Run 작업을 만듭니다.
필요한 역할
Cloud Run 작업을 구성하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- Cloud Run 작업에 대한 Cloud Run 개발자(
roles/run.developer) 역할 - 서비스 계정 사용자 (
roles/iam.serviceAccountUser) 서비스 ID에 대한
Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할 및 Cloud Run IAM 권한을 참조하세요. Cloud Run 작업이 Cloud 클라이언트 라이브러리와 같은Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
샌드박스 사용 설정
Cloud Run 작업에서 샌드박스를 사용 설정하려면 Google Cloud CLI 또는 YAML 구성을 사용하세요.
gcloud
작업을 만들거나 업데이트하려면 --sandbox-launcher 플래그를 지정합니다.
작업을 만들려면 다음 명령어를 실행합니다.
gcloud beta run jobs create JOB --image IMAGE_URL --sandbox-launcher
다음을 바꿉니다.
- JOB: Cloud Run 작업의 이름
- IMAGE_URL: 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/job:latest)
기존 작업을 업데이트하려면 다음 명령어를 실행합니다.
gcloud beta run jobs update JOB --sandbox-launcher
YAML
새 작업을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업을 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run jobs describe JOB_NAME --format export > job.yaml
컨테이너 구성 내에서
sandboxLauncher속성이true로 설정되도록 YAML 파일을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true다음을 바꿉니다.
- JOB: Cloud Run 작업의 이름
- CONTAINER: 컨테이너의 이름
- IMAGE_URL: 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/job:latest)
다음 명령어를 사용하여 작업을 만들거나 업데이트합니다.
gcloud run jobs replace job.yaml
gcloud run jobs replace명령어는job.yaml파일이 있는 경우 기본적으로 이 파일을 사용합니다.
샌드박스는 호스트 컨테이너에 할당된 CPU와 메모리를 공유합니다. 기본 컨테이너의 CPU 및 메모리 한도가 애플리케이션과 동시에 실행하는 활성 샌드박스를 모두 수용할 수 있는지 확인합니다.
샌드박스 사용 중지
작업에서 샌드박스를 실행하는 기능을 사용 중지하려면 Google Cloud CLI 또는 YAML 구성을 사용하세요.
gcloud
다음 명령어를 실행하여 --no-sandbox-launcher 플래그를 사용하여 작업을 업데이트합니다.
gcloud beta run jobs update JOB --no-sandbox-launcher
JOB을 작업 이름으로 바꿉니다.
YAML
새 작업을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업을 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run jobs describe JOB_NAME --format export > job.yaml
컨테이너 구성 내에서
sandboxLauncher속성을 삭제하도록 YAML 파일을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL다음을 바꿉니다.
- JOB: Cloud Run 작업의 이름
- CONTAINER: 컨테이너의 이름
- IMAGE_URL: 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/job:latest)
다음 명령어를 사용하여 작업을 만들거나 업데이트합니다.
gcloud run jobs replace job.yaml
gcloud run jobs replace명령어는job.yaml파일이 있는 경우 기본적으로 이 파일을 사용합니다.
샌드박스 설정 보기
Cloud Run 작업의 현재 샌드박스 설정을 보려면 다음 안내를 따르세요.
콘솔
콘솔 Google Cloud 에서 Cloud Run 작업 페이지로 이동합니다.
작업을 클릭하여 작업 세부정보 페이지를 엽니다.
기록 탭의 목록에서 실행된 작업의 ID를 클릭합니다.
컨테이너 탭에서 샌드박스 실행기 설정을 찾아 샌드박스 처리된 컨테이너가 사용 설정 또는 사용 중지되었는지 확인합니다.
gcloud
다음 명령어를 사용하세요.
gcloud run jobs executions describe EXECUTION_NAME --format yaml
EXECUTION_NAME을 작업 실행 이름으로 바꿉니다.
샌드박스 처리된 컨테이너가 사용 설정되었는지 확인하려면 반환된 구성에서
sandboxLauncher: true속성을 찾습니다.
작업에서 샌드박스의 신뢰할 수 없는 코드를 실행하려면 Cloud Run의 코드 실행을 참조하세요.