标签: google-cloud-run

打开我的 Cloud Run 服务的 URL 时出现 403“错误:禁止”

我构建了容器映像,然后使用 Cloud Console 部署到 Cloud Run。但是,当我打开服务的端点 URL 时,我会看到一个403 "Error: Forbidden"页面

docker google-cloud-platform google-cloud-repository google-cloud-build google-cloud-run

8
推荐指数
1
解决办法
1万
查看次数

如何检查有多少 Google Cloud Run 容器实例正在运行?

Google Cloud Run 允许我为给定容器设置并发性,即在启动新容器之前它将服务的并发请求数。

我如何实际检查在任何给定时间有多少容器正在运行?Web 界面提到了哪些服务正在运行,但没有提到有多少服务,当我这样做时也是如此gcloud beta run services (list|describe)

google-cloud-platform google-cloud-run

8
推荐指数
1
解决办法
2466
查看次数

从Cloud Run连接到Memorystore

我想在使用Cloud Memorystore作为缓存的Google Cloud Run上运行服务。

我在与Cloud Run相同的区域中创建了一个Memorystore实例,并使用示例代码进行了连接:https : //github.com/GoogleCloudPlatform/golang-samples/blob/master/memorystore/redis/main.go这不起作用。

接下来,我创建了无服务器的VPC访问Connectore,但没有帮助。我在没有GKE群集的情况下使用Cloud Run,因此无法更改任何配置。

有没有办法从Cloud Run连接到Memorystore?

google-cloud-platform google-cloud-run

8
推荐指数
1
解决办法
709
查看次数

Cloud Run 完成,但 Cloud Scheduler 认为作业失败

我有一个 Cloud Run 服务设置,我有一个 Cloud Scheduler 任务,该任务调用该服务上的端点。当任务完成(http 处理程序返回)时,我看到以下错误:

请求失败,因为到实例的 HTTP 连接有错误。

但是,实际处理程序返回 HTTP 200 并成功存在。有谁知道这个错误是什么意思,在什么情况下会出现?

我还附上了日志的屏幕截图。

伊格

google-cloud-platform google-cloud-scheduler google-cloud-run

8
推荐指数
2
解决办法
1081
查看次数

Google Cloud Run 身份验证服务到服务

我在 GCP Cloud Run 上部署了两个服务 (API)。打电话给他们service-one.myDomain.comservice-two.myDomain.com。我希望在调用 service-2 时对 service-one 进行身份验证,而不管任何用户在做什么。

我已阅读并实施了 GCP Cloud Run 文档中关于 Authenticating service-to-service ( https://cloud.google.com/run/docs/authenticating/service-to-service ) 的说明,但service-one.myDomain.com未能成功调用service-two.myDomain.com接收401:未经授权的响应。

关于如何service-one成功拨打电话的任何想法service-two

这是我的设置:

IAM 和服务帐户:

在 google IAM 上,我创建了两个服务帐户并授予它们“Cloud Run Invoker” ( roles/run.invoker) 角色: service-one@myproject.iam.gserviceaccount.com service-two@myproject.iam.gserviceaccount.com

在 Cloud Run 中,我将服务帐户从“默认计算服务帐户”更改为我创建的服务帐户。我service-one@myproject.iam.gserviceaccount.comservice-one.myDomain.comservice-two@myproject.iam.gserviceaccount.comservice-two.myDomain.com

OIDC 身份验证令牌:

service-one.myDomain.com我调用元数据服务器以从以下 url 获取令牌 (jwt): http://metadata/computeMetadata/v1/instance/service-accounts/default/identity?audience=https://service-two.myDomain.com请求标头设置为{'Metadata-Flavor': 'Google'}请求成功并且我收到的令牌被解码为具有以下有效负载:

{
  "alg": "RS256",
  "kid": "9cef5340642b157fa8a4f0d874fe7543872d82db",
  "typ": "JWT" …
Run Code Online (Sandbox Code Playgroud)

google-authentication google-oauth google-cloud-platform google-iam google-cloud-run

8
推荐指数
1
解决办法
2270
查看次数

从云功能调用Cloud Run:IAM认证

我通过 Google Cloud Run 部署了一个小型 HTTP 端点。当我关闭身份验证时它工作正常。

我现在想将其打开,以便只能由我的 Firebase 云函数调用。如果我理解正确的话,我只需在 Cloud Run 的 IAM 设置中添加正确的服务帐户邮件地址作为“Cloud Run 调用者”即可。但哪个地址是正确的呢?

我已尝试在 Firebase 控制台 -> 项目设置 -> 服务帐户中找到的所有地址。

firebase google-cloud-platform google-cloud-functions google-iam google-cloud-run

8
推荐指数
2
解决办法
3889
查看次数

可以在 Google Cloud Run 中部署或使用多个容器作为一项服务吗?

我正在按照官方说明测试 Google Cloud Run:

https://cloud.google.com/run/docs/quickstarts/build-and-deploy

是否可以在 Google Cloud Run 中部署或使用多个容器作为一项服务?例如:DB服务器容器、Web服务器容器等。

deployment containers google-cloud-run

8
推荐指数
1
解决办法
8294
查看次数

GCP 中 AWS 安全组的替代方案?

Google Cloud Platform 中是否有 AWS 安全组的替代方案?

以下是我遇到的情况:

  1. 在 Cloud Run 中作为 docker 映像运行的基本 Node.js 服务器。
  2. GCP 的 Postgres SQL 数据库。
  3. GCP 上的 Redis 实例。

我想做的是创建一个“安全组”,这样我的 Postgres SQL DB 和 Redis 实例只能从我的 Node.js 服务器访问,而不能从其他地方访问。我不希望它们可以通过 IP 公开访问。

我们在 AWS 中所做的是,只有安全组中的服务部分才能相互访问。

我不太确定,但我想在 GCP 中我需要使用防火墙规则(根本不确定)。

如果我是正确的,有人可以指导我如何解决这个问题吗?如果我错了,有人可以建议正确的方法吗?

amazon-web-services google-cloud-platform aws-security-group google-cloud-run

8
推荐指数
2
解决办法
1万
查看次数

Puppeteer 错误:加载共享库时出错:libgobject-2.0.so.0

我在 Google Cloud Run 上部署了一个 NestJS 应用程序,它使用 puppeteer (V7.0.1) 生成 PDF。在本地,一切都工作得很好,但在我的 Cloud Run Service 上,我不断收到以下错误: /usr/app/node_modules/puppeteer/.local-chromium/linux-848005/chrome-linux/chrome: error while loading shared libraries: libgobject-2.0.so.0: cannot open shared object file: No such file or directory

该目录确实存在于 Docker 容器中(使用 检查RUN ls node_modules/.....)。使用puppeteer 故障排除文档中的 Docker 代码或我在网络上发现的类似问题上发现的任何其他代码片段都会给我带来同样的错误。

Dockerfile:

FROM node:12-slim AS base
WORKDIR /usr/app

FROM base AS build
RUN apt-get update \
    && apt-get install -y wget gnupg \
    && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
    && sh …
Run Code Online (Sandbox Code Playgroud)

docker puppeteer nestjs google-cloud-run

8
推荐指数
1
解决办法
2万
查看次数

在 .gcloudignore 中包含排除文件夹中的子文件夹

我正在尝试使用命令将带有 Dockerfile 的 Node 项目部署到 Google Cloud Run gcloud beta run deploy

长话短说,我想在 Dockerfile 中node_modules/my-module运行后复制本地:RUN npm install

COPY node_modules/my-module /app/node_modules/my-module/
Run Code Online (Sandbox Code Playgroud)

(我只在开发过程中这样做,以避免提交和推动my-module测试中的每个更改)。

不幸的是,Docker 无法复制此目录,因为默认情况node_modules下它不会上传到 Cloud Build。

所以我创建了这个.gcloudignore文件来覆盖默认值:

.gcloudignore
.git
.gitignore

node_modules/
!node_modules/my-module/
Run Code Online (Sandbox Code Playgroud)

我尝试了很多其他语法,但没有一个允许我node_modules在包含时排除node_modules/my-module.

node_modules但是,我可以通过从文件中省略整个目录来包含整个目录.gcloudignore,但这显然需要很长时间才能上传。

您知道如何将本地模块上传到 Cloud Build 吗?

gcloud google-cloud-build google-cloud-run

8
推荐指数
1
解决办法
832
查看次数