Cloud Run 서비스를 로컬에서 개발

Cloud Run에 서비스를 배포하기 전에 Cloud Run 에뮬레이터를 사용하여 로컬에서 서비스를 개발할 수 있습니다.

개발을 위한 서비스 구성

정의한 .vscode/launch.json 파일이 없는 경우 Cloud Run 에뮬레이터에서 실행/디버그 대화상자를 사용하면 실행을 구성한 다음 .vscode/launch.json에 설정을 저장할 수 있습니다. .vscode/launch.json 파일을 구성한 경우에는 파일을 직접 수정할 수 있습니다.

서비스를 로컬로 실행하려면 구성을 지정하세요.

  1. 명령어 팔레트(Ctrl/Cmd+Shift+P 누르기)를 열고 Cloud Run 에뮬레이터에서 실행 명령어를 실행합니다.
  2. Cloud Run 에뮬레이터의 실행/디버그 대화상자에서 구성의 사양을 설정합니다.

    • 로컬에 설치된 빌드 도구만 Cloud Run 에뮬레이터에 사용할 수 있습니다.
    • Docker 또는 Buildpacks를 빌더로 선택한 후 소스를 지정하세요.
    • (선택사항) 실행 중인 컨테이너에 전달할 환경 변수를 지정하려면 고급 빌드 설정을 펼친 다음 키-값 쌍을 클릭하여 지정합니다.
      이름 설명 예시
      PORT 리슨할 HTTP 서버의 포트입니다. 8080
      K_SERVICE 실행되는 Cloud Run 서비스의 이름입니다. hello-world
      K_REVISION 실행되는 Cloud Run 버전의 이름입니다. hello-world.1
      K_CONFIGURATION 버전을 만든 Cloud Run 구성의 이름입니다. hello-world
    • (선택사항) Cloud SQL 연결을 지정하려면 고급 서비스 설정을 펼치고 연결을 클릭한 후 한 줄에 Cloud SQL 연결 하나를 지정합니다.
    • (선택사항) 로컬 네트워크의 다른 기기에서 서비스에 액세스할 수 있도록 설정 옵션을 선택합니다.
    • (선택사항) 변경 시 자동으로 서비스를 다시 빌드하고 실행하는 대신, 수동으로 하려면 변경 시 자동으로 다시 빌드 및 다시 실행 옵션을 선택 해제합니다.

로컬로 서비스 실행

  1. 원하는 설정을 정의한 후 실행을 클릭하여 서비스를 실행합니다.
  2. 출력 창에서 배포 상태를 모니터링합니다.

    배포가 완료된 후 출력 창에 표시된 URL을 열어 실행 중인 서비스를 확인할 수 있습니다.

  3. 상세 로그를 보려면 출력 창에서 자세한 Cloud Run 보기로 전환합니다.

    출력 채널 드롭다운에서 'hello-world-5 - Detailed'가 선택된 출력 창

  4. 세션이 완료되면 다음 컨텍스트 메뉴 명령어를 사용할 수 있습니다.

    • 배포 로그 열기: Cloud Code 로그 탐색기를 사용하여 특정 배포의 애플리케이션 로그를 엽니다.
    • 서비스 URL 열기: 웹브라우저에서 특정 서비스의 애플리케이션 서비스 URL을 엽니다.
  5. 시작 구성에서 감시 모드를 사용 중지한 상태에서 애플리케이션을 변경하고 애플리케이션을 다시 빌드 및 다시 배포하려면 개발 세션 창에서 실행 작업을 일시중지한 다음 다시 빌드 및 다시 배포 아이콘 애플리케이션 다시 빌드 및 다시 배포를 클릭합니다.

  6. 배포를 중지하려면 현재 배포의 작업 모음에서 중지 버튼을 클릭합니다.

    Cloud Run 배포의 작업 모음

보안 비밀 저장

코드에 API 키, 비밀번호, 인증서와 같은 민감한 정보가 포함되어 있는 경우 이를 보안 비밀로 저장하면 보안을 강화할 수 있습니다. Cloud Code Secret Manager 통합을 통해 이러한 보안 비밀을 안전하게 저장하고 프로그래매틱 방식으로 가져올 수 있습니다. Cloud Code를 사용하여 보안 비밀을 만들고 관리하는 방법에 대한 자세한 내용은 Secret Manager 가이드를 참조하세요.

기존 launch.json 구성 맞춤설정

실행 작업을 선택하면 Cloud Code 플러그인이 launch.json 구성 파일을 자동으로 업데이트합니다. 서비스 실행 방법을 추가로 맞춤설정하려면 .vscode/launch.json 파일에서 다음 필드를 지정합니다.

  • watch: 작업공간의 변경사항을 감시하고 서비스를 다시 실행합니다. 기본적으로 true입니다.

    다음 샘플은 true로 설정된 감시를 보여줍니다.

    "watch": true,
    
  • build: 이미지를 빌드할 빌더(Docker, jibMaven, jibGradle, 또는 buildpacks)를 지정합니다.

    Docker 빌더를 보여주는 샘플은 다음과 같습니다.

    "build": {
      "docker": {
        "path": "Dockerfile"
      }
    },
    

    빌드팩 빌더를 보여주는 샘플은 다음과 같습니다.

    "build": {
      "buildpacks": {
        "path": "src/requirements.txt",
        "builder": "gcr.io/buildpacks/builder:v1"
      }
    },
    
  • image: 사용할 이미지의 이름을 지정합니다.

    다음 샘플은 이미지 이름을 지정하는 방법을 보여줍니다.

      "image": "hello-world",
    
  • service: 사용할 Cloud Run 서비스를 지정합니다.

    다음 샘플에서는 서비스 이름, 포트, 리소스 한도를 지정하는 방법을 보여줍니다.

    "service": {
      "name": "hello-world",
      "containerPort": 8080,
      "resources": {
        "limits": {
          "memory": "256Mi"
        }
      }
    },
    
  • debug: 로컬 경로를 원격 컨테이너의 경로에 매핑하는 원격 경로 매핑과 같은 디버그 설정을 지정합니다.

    다음 샘플은 소스 파일의 위치를 나타내는 디버그 섹션을 보여줍니다.

    "debug": {
      "sourceFileMap": {
        "${workspaceFolder}": "/app"
      }
    }
    

지원 받기

의견을 보내려면 GitHub에서 문제를 신고하거나 Stack Overflow에서 질문하세요.