Skip to content

Commit a362540

Browse files
authored
modify to use Cloud Run deploy by source (#2795)
* modify to use artifact registry * enable APIs, use exports * use different service account for build * fix role * deploy from source * change permissions * set build service account for Cloud Run * fix grpc to match * grpc part 2
1 parent c1460bd commit a362540

File tree

6 files changed

+41
-33
lines changed

6 files changed

+41
-33
lines changed

quests/develop-apis-apigee/grpc-backend/deploy.sh

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,20 @@ if [[ -z "${CLOUDRUN_REGION}" ]]; then
1212
exit 1
1313
fi
1414

15-
SERVICE_NAME="simplebank-grpc"
16-
SVCACCT_NAME="simplebank-grpc"
17-
SVCACCT_EMAIL="${SVCACCT_NAME}@${GOOGLE_PROJECT_ID}.iam.gserviceaccount.com"
18-
19-
# build image from code
20-
echo "*** submit build of service ${SERVICE_NAME} to Cloud Build ***"
21-
gcloud builds submit --tag gcr.io/${GOOGLE_PROJECT_ID}/${SERVICE_NAME} \
22-
--project=${GOOGLE_PROJECT_ID}
15+
export SERVICE_NAME="simplebank-grpc"
16+
export SVCACCT_NAME="simplebank-grpc"
17+
export SVCACCT_EMAIL="${SVCACCT_NAME}@${GOOGLE_PROJECT_ID}.iam.gserviceaccount.com"
2318

2419
# deploy service
2520
# NOTE: in a production environment, you would not use max-instances=1
2621
echo "*** deploy ${SERVICE_NAME} service to ${CLOUDRUN_REGION} with service account ${SVCACCT_EMAIL} ***"
2722
gcloud run deploy ${SERVICE_NAME} \
28-
--image=gcr.io/${GOOGLE_PROJECT_ID}/${SERVICE_NAME} \
2923
--platform=managed \
3024
--max-instances=1 \
3125
--region=${CLOUDRUN_REGION} \
3226
--no-allow-unauthenticated \
3327
--service-account=${SVCACCT_EMAIL} \
34-
--project=${GOOGLE_PROJECT_ID}
28+
--build-service-account=projects/${GOOGLE_PROJECT_ID}/serviceAccounts/${SVCACCT_EMAIL} \
29+
--project=${GOOGLE_PROJECT_ID} \
30+
--quiet \
31+
--source .

quests/develop-apis-apigee/grpc-backend/init-project.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ if [[ -z "${FIRESTORE_LOCATION}" ]]; then
77
exit 1
88
fi
99

10-
# enable Cloud Run APIs
11-
echo "*** enable Cloud Run APIs ***"
12-
gcloud services enable run.googleapis.com
10+
# enable APIs
11+
echo "*** enable Cloud Run, Cloud Build, Artifact Registry, Firestore APIs ***"
12+
gcloud services enable run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com firestore.googleapis.com
1313

1414
# create Firestore in Native mode database
1515
echo "*** create Firestore database ***"

quests/develop-apis-apigee/grpc-backend/init-service.sh

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ if [[ -z "${GOOGLE_PROJECT_ID}" ]]; then
77
exit 1
88
fi
99

10-
SVCACCT_NAME="simplebank-grpc"
11-
SVCACCT_EMAIL="${SVCACCT_NAME}@${GOOGLE_PROJECT_ID}.iam.gserviceaccount.com"
12-
SVCACCT_ROLE="roles/datastore.user"
10+
export SVCACCT_NAME="simplebank-grpc"
11+
export SVCACCT_EMAIL="${SVCACCT_NAME}@${GOOGLE_PROJECT_ID}.iam.gserviceaccount.com"
12+
export SVCACCT_ROLE="roles/datastore.user"
13+
export SVCACCT_ROLE2="roles/run.builder"
1314

1415
# create service account for Cloud Run service
1516
echo "*** creating Cloud Run service account: ${SVCACCT_EMAIL} ***"
@@ -21,4 +22,10 @@ gcloud iam service-accounts create ${SVCACCT_NAME} \
2122
echo "*** adding role ${SVCACCT_ROLE} for Firestore access ***"
2223
gcloud projects add-iam-policy-binding ${GOOGLE_PROJECT_ID} \
2324
--member="serviceAccount:${SVCACCT_EMAIL}" \
24-
--role=${SVCACCT_ROLE}
25+
--role=${SVCACCT_ROLE}
26+
27+
# add permission to access Cloud Run
28+
echo "*** adding role ${SVCACCT_ROLE2} for Cloud Run access ***"
29+
gcloud projects add-iam-policy-binding ${GOOGLE_PROJECT_ID} \
30+
--member="serviceAccount:${SVCACCT_EMAIL}" \
31+
--role=${SVCACCT_ROLE2}

quests/develop-apis-apigee/rest-backend/deploy.sh

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,20 @@ if [[ -z "${CLOUDRUN_REGION}" ]]; then
1212
exit 1
1313
fi
1414

15-
SERVICE_NAME="simplebank-rest"
16-
SVCACCT_NAME="simplebank-rest"
17-
SVCACCT_EMAIL="${SVCACCT_NAME}@${GOOGLE_PROJECT_ID}.iam.gserviceaccount.com"
18-
19-
# build image from code
20-
echo "*** submit build of service ${SERVICE_NAME} to Cloud Build ***"
21-
gcloud builds submit --tag gcr.io/${GOOGLE_PROJECT_ID}/${SERVICE_NAME} \
22-
--project=${GOOGLE_PROJECT_ID}
15+
export SERVICE_NAME="simplebank-rest"
16+
export SVCACCT_NAME="simplebank-rest"
17+
export SVCACCT_EMAIL="${SVCACCT_NAME}@${GOOGLE_PROJECT_ID}.iam.gserviceaccount.com"
2318

2419
# deploy service
2520
# NOTE: in a production environment, you would not use max-instances=1
2621
echo "*** deploy ${SERVICE_NAME} service to ${CLOUDRUN_REGION} with service account ${SVCACCT_EMAIL} ***"
2722
gcloud run deploy ${SERVICE_NAME} \
28-
--image=gcr.io/${GOOGLE_PROJECT_ID}/${SERVICE_NAME} \
2923
--platform=managed \
3024
--max-instances=1 \
3125
--region=${CLOUDRUN_REGION} \
3226
--no-allow-unauthenticated \
3327
--service-account=${SVCACCT_EMAIL} \
34-
--project=${GOOGLE_PROJECT_ID}
28+
--build-service-account=projects/${GOOGLE_PROJECT_ID}/serviceAccounts/${SVCACCT_EMAIL} \
29+
--project=${GOOGLE_PROJECT_ID} \
30+
--quiet \
31+
--source .

quests/develop-apis-apigee/rest-backend/init-project.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ if [[ -z "${FIRESTORE_LOCATION}" ]]; then
77
exit 1
88
fi
99

10-
# enable Cloud Run APIs
11-
echo "*** enable Cloud Run APIs ***"
12-
gcloud services enable run.googleapis.com
10+
# enable APIs
11+
echo "*** enable Cloud Run, Cloud Build, Artifact Registry, Firestore APIs ***"
12+
gcloud services enable run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com firestore.googleapis.com
1313

1414
# create Firestore in Native mode database
1515
echo "*** create Firestore database ***"

quests/develop-apis-apigee/rest-backend/init-service.sh

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ if [[ -z "${GOOGLE_PROJECT_ID}" ]]; then
77
exit 1
88
fi
99

10-
SVCACCT_NAME="simplebank-rest"
11-
SVCACCT_EMAIL="${SVCACCT_NAME}@${GOOGLE_PROJECT_ID}.iam.gserviceaccount.com"
12-
SVCACCT_ROLE="roles/datastore.user"
10+
export SVCACCT_NAME="simplebank-rest"
11+
export SVCACCT_EMAIL="${SVCACCT_NAME}@${GOOGLE_PROJECT_ID}.iam.gserviceaccount.com"
12+
export SVCACCT_ROLE="roles/datastore.user"
13+
export SVCACCT_ROLE2="roles/run.builder"
1314

1415
# create service account for Cloud Run service
1516
echo "*** creating Cloud Run service account: ${SVCACCT_EMAIL} ***"
@@ -22,3 +23,9 @@ echo "*** adding role ${SVCACCT_ROLE} for Firestore access ***"
2223
gcloud projects add-iam-policy-binding ${GOOGLE_PROJECT_ID} \
2324
--member="serviceAccount:${SVCACCT_EMAIL}" \
2425
--role=${SVCACCT_ROLE}
26+
27+
# add permission to access Cloud Run
28+
echo "*** adding role ${SVCACCT_ROLE2} for Cloud Run access ***"
29+
gcloud projects add-iam-policy-binding ${GOOGLE_PROJECT_ID} \
30+
--member="serviceAccount:${SVCACCT_EMAIL}" \
31+
--role=${SVCACCT_ROLE2}

0 commit comments

Comments
 (0)