我正在使用自定义服务帐户(使用--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
您好,我正在开发一个解决方案,该解决方案使用其 REST API 和 OAuth 作为为此目的创建的服务帐户来创建服务并将其部署到 Google 云运行。
我坚持将创建的服务公开提供。
我无法从 API 中找到--allow-unauthenticated与gcloud相同的相应参数。
我发现的唯一方法是在我想要公开访问的每个服务上手动添加allUsers为Cloud Run Invoker 。但是,我希望该服务帐户中的所有服务都可以自动公开访问。
我想知道是否有更好的(更自动的)方法来实现这一点。
提前致谢。
我有一个 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
我有一个 Google Cloud Run 应用。我需要它来支持自定义域上的“http://”和“https://”请求(出于遗留原因)。但似乎所有http请求都会自动重定向到https。(发送状态为 302 的重定向。)重定向响应包含标头“服务器:Google Frontend”,如果我理解正确,则建议在请求到达我的应用程序之前在某些前端中发生重定向。
云运行是否强制要求 https,或者是否有配置允许这两种方案?
(据我所知,Cloud Run 在内部将所有对容器的请求代理为端口 8080 上的 http,无论外部 url 的方案/端口如何。我的问题是是否可以将外部请求作为 http。)
Google Cloud Run 允许每个容器指定指定的请求并发限制。输入字段的潜台词是“当达到这个并发数时,启动一个新的容器实例”两个澄清问题:
有没有办法设置 Cloud Run 来预测达到并发限制,并在此之前生成一个新容器,以确保超过容器 1 并发限制的请求由容器 2 无缝处理,而冷启动时间不会影响容器 1 的并发限制。要求?
想象一下,我们将最大实例数设置为10,并发性设置为 10 ,并且当前正在处理 100 个请求(即我们已经最大化了容量并且无法再自动扩展)。第 101 个请求会发生什么?会排队一段时间,还是会立刻退回5XX?
我使用 openapi yaml 文件作为配置应用了 Google 的 API 网关,并收到了新的网关 URL。
我的问题是,如果原始 Cloud Run URL 仍然可以访问,那么网关还有什么意义?
我可以对网关 URL 和 Cloud Run URL 进行完全相同的 Postman 调用,例如https://gateway.api.url.google.com/orders和 https://cloud.run.url.google.com/orders。
我的假设(也是希望)是网关 URL 现在是主 URL,并且对 Cloud Run URL 的任何请求都会路由到 API 网关。任何人都可以阐明这一点吗?
我有一个 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) 我有一个网络应用程序,到目前为止一直通过云运行运行,但没有访问限制。现在它应该只对某些用户可用。我阅读了https://cloud.google.com/run/docs/authentication/end-users并尝试了两种提到的方法:Google-Sign-In 和“Identity Platform”教程。
如果我理解正确的话,您必须在这两种变体中对实际用户进行编程。例如,确定哪些电子邮件地址可以访问应用程序等。我一直在寻找一种声明性方式,理想情况下,我只维护允许的电子邮件地址列表,并且“云运行应用程序”仅“神奇地”链接到此。结果,只有这些用户才能访问 Web 应用程序。这似乎不可能?
理想情况下,实际应用程序根本不应该改变,上游层将负责身份验证和授权,可能与“身份平台”结合使用。
诚挚的问候,欢迎任何提示托马斯
大家好,我有一个正在运行的春季调度程序作业,它必须在谷歌云上运行,并按预定的时间间隔运行。
它与 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
我使用 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-run ×10
api-gateway ×1
buildpack ×1
django ×1
fastapi ×1
gcloud ×1
gunicorn ×1
node.js ×1
python ×1
spring-batch ×1
spring-boot ×1
wagtail ×1