我正在使用托管 CloudRun 部署一个带有concurrency=1. 部署后,我将并行触发四个长时间运行的请求。大多数情况下,一切正常——但偶尔,我会在几秒钟内面对来自其中一个节点的 500 个;日志仅提供主题中提供的错误消息。
使用带指数退避的重试并没有改善这种情况;重试也以 500 秒结束。StackDriver 日志也不提供更多信息。
可能相关的gcloud beta run deploy论点:
--memory 2Gi --concurrency 1 --timeout 8m --platform managed
错误消息的确切含义是什么——我该如何解决这个问题?
到目前为止,Google Cloud Run 支持 CPU。有支持GPU的计划吗?如果 GPU 可用,那就太酷了,然后我可以演示 DL 项目,而无需真正运行超级昂贵的 GPU 实例。
我一直在深入研究 Google Cloud Run 上的 Stackdriver Trace 集成。我可以让它与代理一起工作,但有几个问题困扰着我。
我进入了 Cloud Endpoints ESP 的源代码(Cloud Run 集成处于测试阶段),看看他们是否以不同的方式解决它,但使用了相同的模式:有一个带有跟踪 (1s) 和它会定期清除。
虽然我的跟踪集成似乎在我的测试设置中工作,但我担心在生产环境中运行它时不完整和丢失的跟踪。
这是一个假设的问题还是一个真实的问题?
看起来解决这个问题的正确方法是将遥测数据写入日志,而不是使用代理进程。Stackdriver Trace 支持吗?
我对 GCP 很陌生,主要使用 AWS。我目前正在尝试使用 GCP 并希望使用docker-compose.
我设置了一个非常基本的 docker-compose.yml 文件,如下所示:
# docker-compose.yml
version: '3.3'
services:
git:
image: alpine/git
volumes:
- ${PWD}:/git
command: "clone https://github.com/PHP-DI/demo.git"
composer:
image: composer
volumes:
- ${PWD}/demo:/app
command: "composer install"
depends_on:
- git
web:
image: php:7.4-apache
ports:
- "8080:${PORT:-80}"
- "8000:${PORT:-8000}"
volumes:
- ${PWD}/demo:/var/www/html
command: php -S 0.0.0.0:8000 -t /var/www/html
depends_on:
- composer
Run Code Online (Sandbox Code Playgroud)
因此容器将从 git 获取代码,然后使用 composer 安装依赖项,最后在端口 8000 上可用。
在我的机器上,运行docker-compose up无所不能。但是如何将这个 docker-compose 推送到谷歌云。
我尝试使用docker/compose图像和 Dockerfile构建容器,如下所示:
FROM docker/compose
WORKDIR /opt
COPY docker-compose.yml …Run Code Online (Sandbox Code Playgroud) docker google-cloud-platform google-kubernetes-engine docker-compose google-cloud-run
尝试使用同一组织中另一个项目的映像部署 Cloud Run Service 时出现此错误。
" Google Cloud Run Service Agent 必须具有读取镜像的权限,gcr.io/my-builds/consultoriaweb@sha256:8c655b2bab.....确保提供的容器镜像 URL 正确且上述帐户有访问权限图像。如果您刚刚启用 Cloud Run API,权限可能需要几分钟才能传播。请注意,图像来自项目 [my-builds],与此项目 [my-webapp] 不同。权限必须从此项目授予 Google Cloud Run 服务代理。”
我正在使用 Google Console Web 界面从 my-builds 项目上的容器注册表中选择要部署的映像。
已经在 [my-builds] 项目上添加了 IAM 权限,尝试了以下两种方法:
[my-webapp-project-number]-compute@developer.gserviceaccount.com => 角色计算图像用户
[my-webapp-project-number]@cloudservices.gserviceaccount.com => 角色计算映像用户
谷歌文档说我应该将 Roles/compute.imageUser 角色赋予:
my-builds 项目上的[my-webapp-project-number]@cloudservices.gserviceaccount.com,但我无法让它工作。
Google 文档使用来自其他项目的图像,但我不知道它是否适用于 Cloud Run。 https://cloud.google.com/deployment-manager/docs/configuration/using-images-from-other-projects-for-vm-instances#granting_access_to_images
预先感谢您对此的任何帮助
如何在不将我的凭据文件添加到容器内的情况下连接到Cloud SQL上的数据库?
我按照本指南https://firebase.google.com/docs/hosting/cloud-run来设置云运行 docker。然后我尝试按照本指南https://cloud.google.com/run/docs/logging执行简单的日志。尝试将结构化日志写入 stdout 这是我的代码:
trace_header = request.headers.get('X-Cloud-Trace-Context')
if trace_header:
trace = trace_header.split('/')
global_log_fields['logging.googleapis.com/trace'] = "projects/sp-64d90/traces/" + trace[0]
# Complete a structured log entry.
entry = dict(severity='NOTICE',
message='This is the default display field.',
# Log viewer accesses 'component' as jsonPayload.component'.
component='arbitrary-property',
**global_log_fields)
print(json.dumps(entry))
Run Code Online (Sandbox Code Playgroud)
我在 Cloud Logs Viewer 中看不到此日志。每次调用 docker 时,我都会看到 http Get 日志。我错过了什么吗?我对此很陌生,想知道假设我创建的 docker 完全按照指南中的步骤(https://firebase.google.com/docs/hosting/cloud)记录信息并查看它的简单方法是什么-运行)
谢谢
I\xc2\xb4m 尝试将我的 Angular 应用程序进行 dockerize 以用于 Cloud Run,然后根据环境变量使用生产或开发配置有条件地构建它。
\n云构建命令:
\ngcloud builds submit --tag gcr.io/project-id/image-id --timeout=1200
Dockerfile:
\nFROM node:14\n\nWORKDIR usr/src/app\n\nCOPY package*.json ./\n\nRUN npm install\n\n# Copy local code to the container\nCOPY . .\n\n# Build app\nRUN if [ "$ENV" = "development" ] ; then npm run build-dev:ssr ; else npm run build-prod:ssr ; fi\n\nCMD ["npm", "run", "serve:ssr"]\nRun Code Online (Sandbox Code Playgroud)\n目前,$ENV\xc2\xb4t 不存在,但是有没有办法通过命令传递它gcloud build submit?
假设我运行Cloud RunGoogle 的一项服务。我们还假设有人想要真正伤害您并找出所有 API 路由,或者能够通过向网站发送垃圾邮件来发送大量后期请求。
有一个电子邮件通知,会在您之前设置的某些限制上弹出。
还有没有办法自动切断Cloud Run服务,或者设置暂时离线?我找不到任何好的资源或解决方案。
我正在尝试通过 Google Cloud Run 部署一个基于 Ubuntu 20.04 的简单的基于 Python 的 Docker 容器。我已经成功构建了映像,但是当我尝试部署 Cloud Run 服务时,出现以下错误(省略了项目详细信息):
Cloud Run error: Invalid argument error. Invalid ENTRYPOINT. [name: "gcr.io/{PROJECT_ID}/{SERVICE_NAME}@sha256:{HASH}"
error: "Invalid command \"/bin/sh\": fil
e not found"
e not found"
]....failed
Deployment failed
Run Code Online (Sandbox Code Playgroud)
不过,奇怪的是,如果我在本地拉取并运行映像,它就可以正常工作。
docker run --rm --publish 5000:5000 -e PORT=5000 -it gcr.io/{PROJECT_ID}/{SERVICE_NAME}@sha256:{HASH}
Run Code Online (Sandbox Code Playgroud)
我的 Dockerfile 是最基本的:
FROM ubuntu:20.04
COPY . /app
WORKDIR /app
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y python3 python3-pip \
&& pip3 install gunicorn Flask flask-cors
CMD exec gunicorn …Run Code Online (Sandbox Code Playgroud)