我在https://cloud.google.com/run/docs/how-to的文档中进行了相当广泛的搜索。我还在console.cloud.google.com中找到了YAML,但我无法编辑它。有没有一种方法可以使用我可能遗漏的命令来设置它?
编辑:我在https://cloud.google.com/sdk/gcloud/reference/beta/container/clusters/create上也找不到任何关于它的信息。
EDIT2:
我正在寻找一种让Google云运行的方法,在一个容器中检查我的应用程序是否就绪。和kubernetes一样--这里的例子是:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/。问题是我不想在容器中的应用程序还在旋转的时候让我的服务中断30-60秒。谷歌立即重定向流量,使用户等待了很长时间,当我推动一个新的构建。
EDIT3:在我部署了一个新版本之后,提出第一个初始请求所需的时间如下。

EDIT4:我试图启动的应用程序是用Python编写的。这是一个为tensorflow模型服务的烧瓶应用程序。我需要将几个文件加载到内存中。这在我的计算机上只需要5-10秒,但你可以在云运行时花费更长的时间。
发布于 2019-05-31 16:33:28
云运行除了确认您的服务正在侦听指定的端口之外,没有其他准备就绪的检查。一旦完成,流量就开始路由到新的修订版,而以前的服务修订版在结束正在进行的请求时会被缩小。
如果您的目标是确保服务在部署后尽快就绪,您可能会创建一个更重的入口点来处理更多的设置任务。
像这样的“较重”入口点将有助于部署后响应,而代价是较慢的冷启动。。
您可以在入口点(无论是在BASH脚本中还是在您的服务中打开HTTP服务器之前)进行前端加载的示例:
同样,这将通过惩罚所有冷启动来优化部署后的响应。
发布于 2022-10-04 01:39:25
注意:最近进行了一次更新,情况有所改善。
https://cloud.google.com/run/docs/configuring/healthchecks
“您可以配置HTTP和TCP启动健康检查探针,以及新的和现有的云运行服务的HTTP活性探测。”
奇怪的是,云运行仍然不允许准备探测。
但启动和活性探测是允许的。
启动探测充当初始启动的准备状态探测与正在进行的准备状态探测。也就是说,在大多数情况下,启动+活性探测可能就足够了,如果它失败了,它的活性探测仍然会从负载平衡中删除。启动探针给了替换者足够的时间来完成引导,然后才能接收到流量。
注意,我喜欢验证一些东西,CloudRun使验证启动探针的initialDelaySeconds是否按预期工作变得困难和不直观&它们的API在自动化友好方面受到了令人恼火的限制。
说,这将使您了解它是如何工作的:
# Edit Vars
export CR_SERVICE_NAME=startup-probe-test
export PROJECT=chrism-playground
export REGION=us-central1
# Set defaults
gcloud config set project $PROJECT
gcloud config set run/region $REGION
# Deploy a Hello World App for testing purposes
gcloud run deploy $CR_SERVICE_NAME \
--image=us-docker.pkg.dev/cloudrun/container/hello \
--allow-unauthenticated \
--max-instances=1
# Hacky Automation to workaround CloudRun's lack of good automation
gcloud run services describe $CR_SERVICE_NAME --format export > example.yaml
export TOP=$(cat example.yaml | grep " ports:" -B 1000 | grep -v " ports:")
export BOTTOM=$(cat example.yaml | grep " ports:" -A 1000)
export MIDDLE=$(echo """
startupProbe:
initialDelaySeconds: 60
timeoutSeconds: 2
periodSeconds: 10
failureThreshold: 3
httpGet:
path: /healthy
""" | sed '1d')
export REPLACE_NAME=$(echo "$TOP" | grep "name: $CR_SERVICE_NAME-")
export NEW_TOP=$(echo $TOP | sed s/$REPLACE_NAME/" name: $CR_SERVICE_NAME-new"/)
echo "$NEW_TOP\n$MIDDLE\n$BOTTOM" | tee updated-example1.yaml
export NEW_TOP=$(echo $TOP | sed s/$REPLACE_NAME/" name: $CR_SERVICE_NAME-newest"/)
echo "$NEW_TOP\n$MIDDLE\n$BOTTOM" | tee updated-example2.yaml
# Run these (should take about 3 mins for both to finish)
gcloud beta run services replace updated-example1.yaml
gcloud beta run services replace updated-example2.yaml复制粘贴该bash之后,您应该会看到如下所示:

单击图像中接近1的符号,然后选中框以查看修订URL& Actions,然后按OK。
如图所示,创建原始的修订URL&启动-探测,然后单击每个来测试。

当我点击原始标签链接时,网站立即加载。
https://original---startup-probe-test-pxehf3xjcq-uc.a.run.app/
当我点击标记为“启动探针”的链接时,该站点有一个加载循环60秒,然后按预期工作,这证明该启动探针正常工作。
https://startup-probe---startup-probe-test-pxehf3xjcq-uc.a.run.app/
https://stackoverflow.com/questions/56348839
复制相似问题