이 페이지에서는 서비스를 만들고 서비스에 대한 정보를 확인하는 방법을 설명합니다.
서비스마다 시간이 지나 새 버전이 배포될 때도 변경되지 않는 고유한 영구 run.app
URL이 있습니다. Cloud Run에 배포된 함수도 서비스로 취급되며 run.app
주소가 할당됩니다. 서비스의 영구 도메인은 서비스 이름과 해시로 구성됩니다.
필요한 역할
Cloud Run 서비스와 버전을 관리하는 데 필요한 권한을 얻으려면 관리자에게 Cloud Run 서비스에 대한 Cloud Run 개발자(roles/run.developer
) IAM 역할을 부여해 달라고 요청하세요.
Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할 및 Cloud Run IAM 권한을 참조하세요. Cloud Run 서비스가 Cloud 클라이언트 라이브러리와 같은 Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
서비스 만들기
컨테이너 이미지를 처음으로 배포하여 새 서비스를 만듭니다. 자세한 내용은 새 서비스 배포를 참조하세요.
프로젝트의 서비스 목록 보기
Google Cloud 콘솔 또는 gcloud 명령줄을 사용하여 프로젝트에서 사용 가능한 서비스 목록을 볼 수 있습니다.
콘솔
서비스 목록을 보려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
프로젝트에 대해 표시된 서비스 목록을 검토합니다.
gcloud
프로젝트의 서비스 목록을 표시하려면 다음 명령어를 사용하세요.
gcloud run services list
각 서비스에는 연결된 URL이 있습니다.
이 목록을 할당된 라벨과 같은 서비스 정의 속성별로 필터링할 수 있습니다.
Cloud Code
Cloud Code를 사용하여 서비스 목록을 보려면 IntelliJ 및 Visual Studio Code용 Cloud Run 탐색기 가이드를 참조하세요.
클라이언트 라이브러리
코드에서 서비스 목록을 확인하려면 다음 안내를 따르세요.
REST API
프로젝트의 서비스 목록을 보려면 GET
HTTP 요청을 Cloud Run Admin API service
엔드포인트로 보냅니다.
예를 들어 다음과 같이 curl
을 사용합니다.
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services
다음과 같이 바꿉니다.
- ACCESS_TOKEN을 서비스를 볼 수 있는 IAM 권한이 있는 계정의 유효한 액세스 토큰으로 바꿉니다.
예를 들어 gcloud에 로그인한 경우
gcloud auth print-access-token
을 사용하여 액세스 토큰을 검색할 수 있습니다. Cloud Run 컨테이너 인스턴스 내에서 컨테이너 인스턴스 메타데이터 서버를 사용하여 액세스 토큰을 검색할 수 있습니다. - REGION을 서비스의 Google Cloud 리전으로 바꿉니다.
- PROJECT-ID를 Google Cloud 프로젝트 ID로 바꿉니다.
프로젝트의 함수 목록 보기
Google Cloud 콘솔을 사용하여 프로젝트에서 사용 가능한 함수 목록을 볼 수 있습니다.
콘솔
서비스 목록에서 함수를 필터링하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
프로젝트에 대해 표시된 서비스 목록을 검토합니다.
서비스 필터링 > 배포 유형 > 함수를 선택합니다.
이전에 Cloud Functions(2세대 API)를 사용하여 함수를 배포한 경우 배포자 열에서 Cloud Functions가 표시됩니다.
서비스 복사
Google Cloud 콘솔 또는 YAML을 사용하여 기존 서비스의 사본을 만들 수 있습니다. 이름과 리전을 포함하여 사본에서 원하는 사항을 변경할 수 있습니다.
콘솔
서비스를 복사하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
표시된 프로젝트의 서비스 목록에서 복사할 서비스를 선택합니다.
복사를 클릭합니다.
서비스 사본 페이지에서 리전 등 변경할 값을 설정하거나 변경합니다. 동일한 리전을 유지할 경우 서비스에 새 이름을 제공해야 합니다.
만들기를 클릭하여 사본을 만들고 새 서비스 이름을 사용하여 배포합니다.
YAML
새 서비스를 만드는 경우에는 이 단계를 건너뜁니다. 기존 서비스를 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run services describe SERVICE --format export > service.yaml
서비스 구성을 원하는 대로 변경합니다.
apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: ... name: SERVICE ... spec: template: metadata: annotations: ... name: REVISION
- 사본을 다른 리전에 배포하지 않는 경우 SERVICE를 사본에 사용할 이름으로 바꿉니다. 사본을 다른 리전에 배포하는 경우에는 이전 이름을 사용하면 됩니다.
- REVISION을 새 버전 이름으로 바꾸거나 있는 경우 삭제합니다. 새 버전 이름을 제공할 경우 다음 기준을 반드시 충족해야 합니다.
SERVICE-
로 시작해야 합니다.- 소문자, 숫자,
-
만 포함합니다. -
로 끝나면 안 됩니다.- 63자(영문 기준) 이하여야 합니다.
다음 명령어를 사용하여 서비스를 복사합니다.
gcloud run services replace service.yaml
--region
플래그를 사용하여 다른 리전에 사본을 배포합니다.
서비스 세부정보 보기
서비스에 대한 세부정보를 보는 방법은 다음과 같습니다.
콘솔
서비스 세부정보를 보려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
프로젝트에 대해 표시된 서비스 목록에서 원하는 서비스를 클릭하여 서비스 세부정보 뷰를 엽니다.
gcloud
서비스에 대한 세부정보를 보려면 다음 명령어를 실행하세요.
gcloud run services describe SERVICE
--format
플래그를 사용하여 출력 형식을 지정할 수 있습니다. YAML 형식의 예시는 다음과 같습니다.
gcloud run services describe SERVICE --region REGION --format yaml
다음과 같이 바꿉니다.
- SERVICE: 서비스 이름
- REGION: 서비스의 Google Cloud 리전
--format export
를 사용하면 자동으로 생성된 라벨이나 상태 없이 YAML로 내보낼 수 있습니다.
gcloud run services describe SERVICE --region REGION --format export
--format
플래그를 사용하여 서비스의 URL을 가져올 수도 있습니다.
gcloud run services describe SERVICE --region REGION --format='value(status.url)'
Cloud Code
Cloud Code를 사용하여 서비스 세부정보를 보려면 IntelliJ 및 Visual Studio Code용 Cloud Run 탐색기 가이드를 참조하세요.
서비스 버전에 대한 자세한 내용은 버전 관리를 참조하세요.
클라이언트 라이브러리
코드에서 서비스에 대한 세부정보를 확인하려면 다음 안내를 따르세요.
REST API
서비스에 대한 세부정보를 보려면 GET
HTTP 요청을 Cloud Run Admin API service
엔드포인트로 보냅니다.
예를 들어 다음과 같이 curl
을 사용합니다.
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
다음과 같이 바꿉니다.
- ACCESS_TOKEN을 서비스 세부정보를 볼 수 있는 IAM 권한이 있는 계정의 유효한 액세스 토큰으로 바꿉니다.
예를 들어 gcloud에 로그인한 경우
gcloud auth print-access-token
을 사용하여 액세스 토큰을 검색할 수 있습니다. Cloud Run 컨테이너 인스턴스 내에서 컨테이너 인스턴스 메타데이터 서버를 사용하여 액세스 토큰을 검색할 수 있습니다. - SERVICE-NAME: 서비스 이름
- REGION: 서비스의 Google Cloud 리전
- PROJECT-ID를 Google Cloud 프로젝트 ID로 바꿉니다.
기존 서비스 중지
기존 Cloud Run 서비스와 버전을 중지하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Cloud Run 관리자(roles/run.admin
) IAM 역할을 부여해 달라고 요청하세요.
Cloud Run은 서비스에서 트래픽 제공을 중지하는 직접적인 방법을 제공하지 않습니다. 하지만 서비스를 호출하는 ID에 대한 서비스 호출 권한을 취소하면 비슷한 결과를 얻을 수 있습니다. 특히 서비스가 'public'인 경우 Cloud Run 호출자 역할(roles/run.invoker
)에서 allUsers
를 삭제합니다.
기존 서비스 삭제
서비스를 삭제할 때 다음을 고려해야 합니다.
- 서비스를 삭제하면 트래픽 제공 여부에 관계없이 해당 서비스의 모든 버전을 포함하여 서비스와 관련된 모든 리소스가 삭제됩니다.
- 서비스를 삭제해도 컨테이너 이미지가 Container Registry에서 자동으로 삭제되지 않습니다. Container Registry에서 삭제된 버전에서 사용한 컨테이너 이미지를 삭제하려면 이미지 삭제를 참조하세요.
- Eventarc 트리거가 하나 이상 포함된 서비스를 삭제해도 이러한 트리거는 자동으로 삭제되지 않습니다. 트리거를 삭제하려면 트리거 관리를 참조하세요.
- 삭제 후에는 삭제가 완전히 완료될 때까지 서비스가 Google Cloud 콘솔 및 명령줄 인터페이스에 계속 표시되어 있습니다. 하지만 서비스를 업데이트할 수는 없습니다.
서비스 삭제는 영구적이므로 실행취소하거나 복원할 수 없습니다. 하지만 서비스를 삭제한 후 동일한 리전에 동일한 이름으로 새 서비스를 배포하면 엔드포인트 URL이 동일하게 지정됩니다.
Console
서비스를 삭제하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
서비스 목록에서 삭제할 서비스를 찾은 다음 체크박스를 클릭하여 선택합니다.
삭제를 클릭합니다. 이렇게 하면 서비스의 모든 버전이 삭제됩니다.
gcloud
서비스를 삭제하려면 다음 명령어를 사용하세요.
gcloud run services delete SERVICE --region REGION
다음과 같이 바꿉니다.
- SERVICE: 서비스 이름
- REGION: 서비스의 Google Cloud 리전
클라이언트 라이브러리
코드에서 서비스를 삭제하려면 다음 안내를 따르세요.
REST API
서비스를 삭제하려면 DELETE
HTTP 요청을 Cloud Run Admin API service
엔드포인트로 보냅니다.
예를 들어 다음과 같이 curl
을 사용합니다.
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X DELETE \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
다음과 같이 바꿉니다.
- ACCESS_TOKEN을 서비스를 삭제할 수 있는 IAM 권한이 있는 계정의 유효한 액세스 토큰으로 바꿉니다.
예를 들어 gcloud에 로그인한 경우
gcloud auth print-access-token
을 사용하여 액세스 토큰을 검색할 수 있습니다. Cloud Run 컨테이너 인스턴스 내에서 컨테이너 인스턴스 메타데이터 서버를 사용하여 액세스 토큰을 검색할 수 있습니다. - SERVICE-NAME: 서비스 이름
- REGION: 서비스의 Google Cloud 리전
- PROJECT-ID를 Google Cloud 프로젝트 ID로 바꿉니다.