如何获取或生成Google Cloud Run服务的部署URL

时间:2019-12-20 09:56:40

标签: google-cloud-run

如何在CI环境中以编程方式获取已部署服务的URL?成功部署后确实会记录该URL,但是如果我想以编程方式提取和使用URL,这是部署后需求的一部分,例如发布用于接受测试的网址。

3 个答案:

答案 0 :(得分:1)

扩展Steren's answer

使用这些Bash命令,您可以获得URL并将其保存在Secrets Manager中:

首先创建一个空的秘密:

gcloud secrets create "CLOUDRUN_URL" --project $PROJECT_ID --replication-policy=automatic

然后:

gcloud run services describe $APP_NAME --platform managed --region $CLOUD_REGION --format 'value(status.url)' --project $PROJECT_ID | gcloud secrets versions add "CLOUDRUN_URL" --data-file=- --project $PROJECT_ID

或添加了“ / some / address”的版本

CLOUDRUN_URL=$(gcloud run services describe $APP_NAME --platform managed --region $CLOUD_REGION --format 'value(status.url)' --project $PROJECT_ID)   # capture first string.
echo "$CLOUDRUN_URL/some/address/" | gcloud secrets versions add "CLOUDRUN_URL" --data-file=- --project $PROJECT_ID

然后您可以根据需要从Secrets Manager中加载它:

export CLOUDRUN_URL=$(gcloud secrets versions access latest --secret="CLOUDRUN_URL" --project $PROJECT_ID )

答案 1 :(得分:0)

有几种获取所需信息的方法:

  1. 您可以使用Cloud Run API中的namespaces.services.get方法和curl命令。请注意,它将需要一个身份验证标头和一个OAuth范围。
curl -i https://[REGION]-run.googleapis.com/apis/serving.knative.dev/v1/namespaces/[PROJECT_NAME]/services/[CLOUD_RUN_SERVICE_NAME] -H "Authorization: Bearer [YOUR-BEARER-TOKEN]" | tail -n +13 | jq -r ".status.url"
  1. 您可以在构建步骤之一中使用gcloud run services list命令来获得所需的值。例如,如果对服务进行了完全管理,则可以使用以下命令来获取最近更新的Cloud Run服务。
gcloud run services list --platform managed | awk 'NR==2 {print $4}'
  1. 使用Goolge API客户端库(例如Cloud Run Google API Client for Python)构建脚本。

答案 2 :(得分:0)

只需将标志--format='value(status.url)'gcloud run services describe一起使用

这是整个命令:

$ gcloud run services describe SERVICE --platform managed --region REGION --format 'value(status.url)'