标签: google-cloud-run

保护未经身份验证的 Cloud Run 端点

当我创建一个未经身份验证的(公共)Cloud Run 端点来托管 API 时,我有哪些选项可以保护此端点免受发出数十亿 HTTP 请求的恶意用户的攻击?

只需 10 美元,您就可以发起第 7 层HTTP 洪水攻击,每秒可以发送 25 万个请求。让我们假设您的 Cloud Run 端点扩展并处理所有请求。仅就调用而言,您将支付 360 美元/小时(每百万个请求 0.40 美元)。

请注意,如果攻击未分布在多个 Cloud Run 终端节点上,您可能会遇到并发限制最大实例限制。我还有哪些其他控件?

据我了解,Cloud ArmorCloud CDN的常用防御绑定到Global Load Balancer,Cloud Run 不可用,但 Cloud Run on GKE 可用。

google-cloud-platform serverless google-cloud-run

6
推荐指数
1
解决办法
404
查看次数

用于 Cloud Run 的 `gcloud builds submit`

我有这种情况,因为文档不清楚。该gcloud builds submit --tag gcr.io/[PROJECT-ID]/helloworld命令将

  • 归档我的源文件夹的内容,然后在 Google 构建服务器上运行 docker build。
  • 此外,它只查看要存档的内容的 .gitignore 文件。如果它是一个 docker 构建,它应该尊重 .dockerignore 文件。
  • 也没有关于如何编译应用程序的消息。如果在 dockerized 之前它不是预编译的应用程序,则必须对其进行编译。

快速指南只认为应用程序是一个预编译的应用程序,并且需要按照 .gitignore 文件夹的所有内容来运行应用程序。人们不会意识到新技术的所有这些。我只是自己想出来的。

因此,完成所有这些操作的另一种方法是在 docker 文件中包含构建步骤(这将使我的图像变重)或在本地(手动)创建一个 docker 图像,然后将图像提交到存储库(手动)然后发布到云运行(使用记录的或手动的第二个命令)。

我这里有什么遗漏吗?

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

6
推荐指数
2
解决办法
1600
查看次数

如何修复 Docker 意外操作员错误?

我是 Docker 方面的超级新手,最近将一个项目从 App Engine 移至 Cloud Run。很简单,很喜欢。

然而,现在我正在尝试更新图像(因为我添加了一些新代码)。我知道我需要进入实际的容器来更新图像(我认为?),但是当我尝试这样做时docker run,我收到unexpected operator错误。

这让我彻底抓狂。

我无法启动容器。我无法编辑我的图像。我无法在 Cloud Run 上上传新版本。

据我所知,unexpected operator错误必须处理 Dockerfile。这是我的 Dockerfile(由 Google 提供,用于在 Cloud Run 上部署映像)。

Dockerfile

#Use the official Node.js 10 image
#https://hub.docker.com/_/node
FROM node:10

#Create and change to the app directory
WORKDIR /usr/src/app

#Copy application dependency manifests to the container image.
#A wild card is used to ensure both package.json AND package-lock.json are copied.
#Copying this separately prevents re0running npm install on every …
Run Code Online (Sandbox Code Playgroud)

node.js docker google-cloud-run

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

6
推荐指数
0
解决办法
821
查看次数

监控 Google Cloud Run 内存使用情况

是否有任何内置方法可以监控在托管 Google Cloud Run 实例中运行的应用程序的内存使用情况?

在托管的 Cloud Run 服务的“Metrics”页面中,有一个名为“Container Memory Allocation”的项目。但是,据我了解,此图是指实例的最大分配内存(在设置中选择),而不是容器内实际使用的内存。(如果我错了,请纠正我。)

在托管 Cloud Run ( https://cloud.google.com/monitoring/api/metrics_gcp#gcp-run )的可用指标的 Stackdriver Monitoring 列表中,似乎也没有任何与内存使用相关的指标,只分配内存。

先感谢您。

google-cloud-run

6
推荐指数
2
解决办法
1318
查看次数

Terraform:Cloud Run 服务上的云端点?

有没有办法在 Cloud Run 服务上运行 Cloud Endpoints?

假设我有以下内容,main.tf并且我想在定义 Cloud Endpoints 服务时使用 Cloud Run 的 URL。该 URL 应该存储在google_cloud_run_service.cloud-run.status.url. 下面的配置会引发错误。

输出terraform plan

Error: Unsupported attribute

  on main.tf line 411, in resource "google_endpoints_service" "cloud-run":
 411:   service_name = "${google_cloud_run_service.cloud-run.status.url}"

This value does not have any attributes.
Run Code Online (Sandbox Code Playgroud)

主要.tf:

[...]
#############
# Cloud Run #
#############
resource "google_cloud_run_service" "cloud-run" {
  name     = "cloud-run"
  provider = "google-beta"
  location = "europe-west1"
  metadata {
    namespace = "${var.gcp_project[var.env]}"
  }
  spec {
    containers {
      image = …
Run Code Online (Sandbox Code Playgroud)

google-cloud-endpoints google-cloud-platform terraform terraform-provider-gcp google-cloud-run

6
推荐指数
1
解决办法
1176
查看次数

Google Cloud Run 是否支持流式响应数据?

我刚刚将我的应用程序部署到了 Google Cloud Run。它有一个返回流响应的 HTTP 端点,因此客户端可以在数据传入时开始呈现数据,而不是等待响应完成(大约需要 10 秒)。

响应有一个 content-type header application/stream+json,数据作为单独的行写入响应。我已经通过 HTTPS 在其他地方部署了这个应用程序,并且流媒体在那里工作得很好。

但是,当部署在 Google Cloud Run 上时,客户端在响应完成之前不会收到任何数据。

这是 Google Cloud Run 的限制,还是有办法解决这个问题?

google-cloud-platform google-cloud-run

6
推荐指数
1
解决办法
520
查看次数

如何让 puppeteer 在 Google Cloud Run/Cloud Build 中工作?

我有一个包含 puppeteer 网络爬虫的 docker 图像。当我构建和运行它时,它在我的本地机器上运行良好。它还在云构建中构建良好,部署到云运行并启动 http 服务器。但是,当我运行处理 puppeteer 实例的 cron 作业之一时,它超时并显示以下错误消息:

(node:13) UnhandledPromiseRejectionWarning: TimeoutError: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r706915
Run Code Online (Sandbox Code Playgroud)

完整日志:

A 2019-12-03T15:12:27.748625Z (node:13) UnhandledPromiseRejectionWarning: TimeoutError: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r706915 
A 2019-12-03T15:12:27.748692Z     at Timeout.onTimeout (/node_modules/puppeteer/lib/Launcher.js:359:14) 
A 2019-12-03T15:12:27.748705Z     at ontimeout (timers.js:436:11) 
A 2019-12-03T15:12:27.748716Z     at tryOnTimeout (timers.js:300:5) 
A 2019-12-03T15:12:27.748726Z     at listOnTimeout (timers.js:263:5) …
Run Code Online (Sandbox Code Playgroud)

node.js docker google-cloud-platform puppeteer google-cloud-run

6
推荐指数
2
解决办法
4517
查看次数

两个内部 Cloud Run node.js 微服务如何通过 gRPC 成功通信?

刚接触 Google Cloud Run 并尝试让两个 node.js 微服务通过 gRPC 进行内部通信。

客户端界面:

constructor(address: string, credentials: grpc.ChannelCredentials, options?: object);
Run Code Online (Sandbox Code Playgroud)

客户端代码:

const client: MyClient = new MyClient('my-service-abcdefgh3a-ew.a.run.app:443', grpc.credentials.createSsl());
Run Code Online (Sandbox Code Playgroud)

服务器代码:

const server = new grpc.Server();
server.addService<IMyServer>(MyService, new MyServer());
server.bind(`0.0.0.0:${process.env.PORT}`, grpc.ServerCredentials.createInsecure());
server.start();
Run Code Online (Sandbox Code Playgroud)

服务器设置为侦听 443。

当服务对公共请求开放时,上述内容似乎有效,但当您将服务器设置为内部时则无效。有任何想法吗?

node.js google-cloud-platform grpc grpc-node google-cloud-run

6
推荐指数
1
解决办法
80
查看次数

Google Cloud Run部署无法使用`gcloud` SDK CLI进行工作

我在Google Cloud run上创建了一项服务,可以使用Container注册表中的图像通过Google Cloud Console手动进行部署。但是从CLI部署失败。这是我正在使用的命令以及出现的错误。我无法理解我所缺少的内容:

$ gcloud beta run deploy service-name --platform managed --region region-name --image image-url
Deploying container to Cloud Run service [service-name] in project [project-name] region [region-name]
X Deploying...
  . Creating Revision...
  . Routing traffic...
Deployment failed
ERROR: (gcloud.beta.run.deploy) INVALID_ARGUMENT: The request has errors
- '@type': type.googleapis.com/google.rpc.BadRequest
  fieldViolations:
  - description: spec.revisionTemplate.spec.container.ports should be empty
    field: spec.revisionTemplate.spec.container.ports

Run Code Online (Sandbox Code Playgroud)

更新1: 我已使用来更新SDK gcloud components update,但仍然存在相同的问题

这是我的SDK版本

$gcloud version
Google Cloud SDK 270.0.0
beta 2019.05.17
bq 2.0.49
core 2019.11.04
gsutil 4.46
Run Code Online (Sandbox Code Playgroud)

我正在使用多阶段docker构建。这是我的Dockerfile: …

google-cloud-platform knative google-cloud-run

5
推荐指数
1
解决办法
307
查看次数