标签: google-cloud-run

在 Google Cloud Run 中使用默认凭据进行域范围委派

我正在使用自定义服务帐户(使用--service-account部署命令中的参数)。该服务帐户已启用域范围委派,并且安装在 G Apps 管理面板中。

我尝试了这段代码:

app.get('/test', async (req, res) => {
    const auth = new google.auth.GoogleAuth()
    const gmailClient = google.gmail({ version: 'v1' })
    const { data } = await gmailClient.users.labels.list({ auth, userId: 'user@domain.com' })
    return res.json(data).end()
})
Run Code Online (Sandbox Code Playgroud)

如果我在我的计算机上运行它(将GOOGLE_APPLICATION_CREDENTIALS环境变量设置为分配给 Cloud Run 服务的同一服务帐户的路径),它就可以工作,但是当它在 Cloud Run 中运行时,我会收到以下响应:

{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Bad Request",
    "reason" : "failedPrecondition"
  } ],
  "message" : "Bad Request"
}
Run Code Online (Sandbox Code Playgroud)

我看到了针对同一问题的解决方案,但它适用于 Python,我不知道如何使用 Node 库复制该行为

node.js service-accounts google-auth-library-nodejs google-cloud-run

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

自动允许未经身份验证的用户云运行实例

您好,我正在开发一个解决方案,该解决方案使用其 REST API 和 OAuth 作为为此目的创建的服务帐户来创建服务并将其部署到 Google 云运行。

我坚持将创建的服务公开提供。

我无法从 API 中找到--allow-unauthenticatedgcloud相同的相应参数。

我发现的唯一方法是在我想要公开访问的每个服务上手动添加allUsersCloud Run Invoker 。但是,我希望该服务帐户中的所有服务都可以自动公开访问。

我想知道是否有更好的(更自动的)方法来实现这一点。

提前致谢。

google-cloud-run

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

部署到 Google Cloud Run 后不显示静态文件

我有一个 wagtail Web 应用程序,它在本地主机中完美运行,但在生产中,调试设置为 False 并且所有静态文件都不会显示在部署的网站中,我附加了下面的 Dockerfile 代码:

    # Use an official Python runtime as a parent image
FROM python:3.7
LABEL maintainer="hello@wagtail.io"

# Set environment varibles
ENV PYTHONUNBUFFERED 1
ENV DJANGO_ENV production

COPY ./requirements.txt /code/requirements.txt
RUN pip install --upgrade pip
# Install any needed packages specified in requirements.txt
RUN pip install -r /code/requirements.txt
RUN pip install gunicorn

# Copy the current directory contents into the container at /code/
COPY . /code/
# Set the working directory to /code/
WORKDIR /code/ …
Run Code Online (Sandbox Code Playgroud)

django gunicorn google-cloud-platform wagtail google-cloud-run

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

Google Cloud Run 自动重定向到“https”

我有一个 Google Cloud Run 应用。我需要它来支持自定义域上的“http://”和“https://”请求(出于遗留原因)。但似乎所有http请求都会自动重定向到https。(发送状态为 302 的重定向。)重定向响应包含标头“服务器:Google Frontend”,如果我理解正确,则建议在请求到达我的应用程序之前在某些前端中发生重定向。

云运行是否强制要求 https,或者是否有配置允许这两种方案?

(据我所知,Cloud Run 在内部将所有对容器的请求代理为端口 8080 上的 http,无论外部 url 的方案/端口如何。我的问题是是否可以将外部请求作为 http。)

google-cloud-platform google-cloud-run

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

Google Cloud Run 并发限制 + 自动扩展说明

Google Cloud Run 允许每个容器指定指定的请求并发限制。输入字段的潜台词是“当达到这个并发数时,启动一个新的容器实例”两个澄清问题:

  1. 有没有办法设置 Cloud Run 来预测达到并发限制,并在此之前生成一个新容器,以确保超过容器 1 并发限制的请求由容器 2 无缝处理,而冷启动时间不会影响容器 1 的并发限制。要求?

  2. 想象一下,我们将最大实例数设置为10并发性设置为 10 ,并且当前正在处理 100 个请求(即我们已经最大化了容量并且无法再自动扩展)。第 101 个请求会发生什么?会排队一段时间,还是会立刻退回5XX?

google-cloud-platform google-cloud-run

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

为什么应用 API Gateway 后 Cloud Run URL 仍然可以访问?

我使用 openapi yaml 文件作为配置应用了 Google 的 API 网关,并收到了新的网关 URL。

我的问题是,如果原始 Cloud Run URL 仍然可以访问,那么网关还有什么意义?

我可以对网关 URL 和 Cloud Run URL 进行完全相同的 Postman 调用,例如https://gateway.api.url.google.com/ordershttps://cloud.run.url.google.com/orders

我的假设(也是希望)是网关 URL 现在是主 URL,并且对 Cloud Run URL 的任何请求都会路由到 API 网关。任何人都可以阐明这一点吗?

api-gateway google-cloud-run google-api-gateway

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

如何将fastapi部署到google cloud run

我有一个 fastapi 应用程序,我想将其部署到 google cloud run。

对于 gRPC python 项目,我们将其部署为

gcloud beta run deploy countries --source .
Run Code Online (Sandbox Code Playgroud)

但这并没有按预期部署。我观看了一个使用Google cloud buildpacks从源代码部署的视频。

有没有人有办法做到这一点?

我的代码就像


from typing import List
import geopandas as gpd
from fastapi import FastAPI
from geojson_pydantic.geometries import Geometry
from geojson_pydantic.features import Feature
from pydantic import BaseModel
from shapely.geometry.geo import shape
import json
import shapely

class Country(BaseModel):
    name: str
    code: str
    type: str
    geometry: Feature


app = FastAPI(
    title="Natural Earth Countries",
    description="This is a list of endpoints which you …
Run Code Online (Sandbox Code Playgroud)

python buildpack gcloud google-cloud-run fastapi

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

Google Cloud Run - 了解最终用户身份验证

我有一个网络应用程序,到目前为止一直通过云运行运行,但没有访问限制。现在它应该只对某些用户可用。我阅读了https://cloud.google.com/run/docs/authentication/end-users并尝试了两种提到的方法:Google-Sign-In 和“Identity Platform”教程。

如果我理解正确的话,您必须在这两种变体中对实际用户进行编程。例如,确定哪些电子邮件地址可以访问应用程序等。我一直在寻找一种声明性方式,理想情况下,我只维护允许的电子邮件地址列表,并且“云运行应用程序”仅“神奇地”链接到此。结果,只有这些用户才能访问 Web 应用程序。这似乎不可能?

理想情况下,实际应用程序根本不应该改变,上游层将负责身份验证和授权,可能与“身份平台”结合使用。

诚挚的问候,欢迎任何提示托马斯

authentication google-cloud-run

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

Spring Scheduler 无法在 google cloud 中运行且 cpu 节流关闭

大家好,我有一个正在运行的春季调度程序作业,它必须在谷歌云上运行,并按预定的时间间隔运行。

它与 docker-compose 本地部署完美配合。它会毫无问题地触发。

虽然它在谷歌云运行服务中本地工作正常,并且 CPU 节流关闭,使 CPU 始终保持 100% 开启,但它在第一次运行后就无法工作。

我将粘贴 docker 文件以供任何一次参考,但我很确定它工作正常

FROM maven:3-jdk-11-slim AS build-env

# Set the working directory to /app
WORKDIR /app
COPY pom.xml ./
COPY src ./src
COPY css-common ./css-common

RUN echo $(ls -1 css-common/src/main/resources)

# Build and create the common jar
RUN cd css-common && mvn clean install

# Build and the job
RUN mvn package -DskipTests

# It's important to use OpenJDK 8u191 or above that has container support enabled.
# https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds …
Run Code Online (Sandbox Code Playgroud)

spring-batch spring-scheduled spring-boot google-cloud-platform google-cloud-run

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

Cloud Run:gcloud run deploy 不会路由流量

我使用 GCP Cloud Build 和以下命令部署了两个 Cloud Run 服务(暂存和生产):

entrypoint: gcloud
  args: ['run', 'deploy', 'app', '--project', '$PROJECT_ID', '--image', 'image:$COMMIT_SHA', '--region', 'us-central1', '--allow-unauthenticated', '--memory' , '256Mi', '--update-env-vars', 'ENV=production']

Run Code Online (Sandbox Code Playgroud)

我注意到相同的命令在暂存和生产中具有不同的行为。在我的一项服务上,流量不会自动路由到最新版本。

Already have image (with digest): 
Deploying container to Cloud Run service 
Deploying...
Setting IAM Policy..............done
Creating Revision..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................done
Done.

Service [] revision [] has been deployed and is serving 0 percent of traffic.

I am missing this step : 

Routing traffic......done

Run Code Online (Sandbox Code Playgroud)

我检查了云运行service.yaml并设置了流量参数:

 traffic:
  - latestRevision: true
    percent: 100

Run Code Online (Sandbox Code Playgroud)

如果我在 GCP 控制台上运行相同的命令,一切都会按预期运行。

问题: …

google-cloud-platform google-cloud-run

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