项目作者: maxkrivich

项目描述 :
Cloud Run example
高级语言: Go
项目地址: git://github.com/maxkrivich/cloudrun-example.git
创建时间: 2021-01-28T00:11:49Z
项目社区:https://github.com/maxkrivich/cloudrun-example

开源协议:MIT License

下载


Cloud Run example

In this repo, you could find a simple example of a golang microservice that has been deployed on GCP Cloud Run. Cloud Run is built upon Knative and provides a high level of abstraction for deploying a container into either GKE or managed infrastructure by Google.

image
image

How-to

Setup the project on the GCP

  1. $ export PROJECT_ID=project-example
  2. $ export ACCOUNT_NAME:=account-example
  3. $ export SERVICE_NAME:=service-name
  4. $ gcloud auth login
  5. $ gcloud projects create $PROJECT_ID
  6. $ gcloud config set project $PROJECT_ID

Enable Google APIs

  1. $ gcloud services enable cloudbuild.googleapis.com run.googleapis.com containerregistry.googleapis.com

Create Service Accounts

  1. $ gcloud iam service-accounts create dp_$ACCOUNT_NAME \
  2. --description="Cloud Run deploy account" \
  3. --display-name="Cloud-Run-Deploy"
  4. $ gcloud iam service-accounts create rt_$ACCOUNT_NAME \
  5. --description="Cloud Run runtime account" \
  6. --display-name="Cloud-Run-Runtime"
  7. $ gcloud projects add-iam-policy-binding $PROJECT_ID \
  8. --member=serviceAccount:dp_$ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com \
  9. --role=roles/run.admin
  10. $ gcloud projects add-iam-policy-binding $PROJECT_ID \
  11. --member=serviceAccount:dp_$ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com \
  12. --role=roles/storage.admin
  13. $ gcloud projects add-iam-policy-binding $PROJECT_ID \
  14. --member=serviceAccount:dp_$ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com \
  15. --role=roles/iam.serviceAccountUser
  16. $ gcloud projects add-iam-policy-binding $PROJECT_ID \
  17. --member=serviceAccount:rt_$ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com \
  18. --role=roles/run.invoker
  19. $ gcloud iam service-accounts keys create key.json \
  20. --iam-account dp_$ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com

Deploy the container via CloudBuild

  1. $ gcloud builds submit --config cloudbuild.yml --substitutions=_SERVICE_NAME=$SERVICE_NAME,_ACCOUNT_NAME=rt_$ACCOUNT_NAME

Deploy the container with buildpack

  1. $ gcloud beta run deploy $PROJECT_ID --source .

https://github.com/ahmetb/cloud-run-faq
https://github.com/GoogleContainerTools/distroless
https://cloud.google.com/run/docs/how-to