目前,Cloud Run 的每个请求的请求限制为32 Mb,这使得无法上传视频等文件(未对 GCP 存储进行任何更改)。同时,“所有配额”页面并未将此限制列为您可以向支持人员请求增加的限制。所以问题是 - 有谁知道如何增加此限制或如何使其成为可能(上传视频和更大的文件)到具有给定限制的 Cloud Run?
我正在努力为服务帐户启用部署到云运行。我的逻辑看起来是这样的:
gcloud auth activate-service-account \
cloud-run-deployer@my-project.iam.gserviceaccount.com \
--key-file=my-project-123123213.json
gcloud run deploy my-project-action \
--image "gcr.io/my-project/my-project-action:dev" \
--project my-project \
--verbosity debug \
--region us-central1 \
--allow-unauthenticated \
--platform managed
Run Code Online (Sandbox Code Playgroud)
这失败了:
HttpForbiddenError: HttpError accessing <https://us-central1-run.googleapis.com/apis/serving.knative.dev/v1/namespaces/my-project/services/my-project-action?alt=json>: response: <{'status': '403', 'content-length': '126', 'x-xss-protection': '0', 'x-content-type-options': 'nosniff', 'transfer-encoding': 'chunked', 'vary': 'Origin, X-Origin, Referer', 'server': 'ESF', '-content-encoding': 'gzip', 'cache-control': 'private', 'date': 'Wed, 01 Jan 2020 23:08:29 GMT', 'x-frame-options': 'SAMEORIGIN', 'alt-svc': 'quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000', 'content-type': 'application/json; charset=UTF-8'}>, content <{
"error": { …Run Code Online (Sandbox Code Playgroud) 我正在寻找将应用部署到 GCP 的最佳方法。该应用程序需要使用微服务(在Cloud Run或Cloud Function上运行)在远程数据库上执行SQL代码。
基本上,微服务接收一段 SQL 代码,并需要在远程数据库上执行它。出于安全原因,远程数据库必须将应用程序用于连接它的 IP 地址列入白名单。
在 GCP 上,拥有固定的公共 IP 地址(远程数据库可以将其列入白名单)的最佳方式是什么?考虑到我想使用Cloud Run或Cloud Function。
注意:我知道使用 GKE 的解决方案。或者在 AWS 上,使用 Lambda + NAT 实例。
谢谢 !
google-app-engine google-cloud-platform google-cloud-functions google-cloud-run
有没有办法通过控制台或 API 更改服务?至少从控制台看来这是不可能的。
所以,我真的很喜欢无服务器的想法。我遇到了 Google Cloud Functions 和 Google Cloud Run。
所以谷歌云功能是单独的功能,这是一个广阔的视角,我假设谷歌必须安全地运行在一个巨大的nodejs服务器上。它包含所有 google 消费者的所有功能,并使用唯一的 URL 满足请求。现在,谷歌负责这台大型服务器的成本,并向用户收取其功能的每次点击费用。所以它是付费使用的。并且有道理。
但说到云跑。我不明白它是如何工作的。显然,容器不能总是运行,因为这样它们只会按月收费,而不是按点击收费,就像部署 docker 映像的普通虚拟机一样。但事实并非如此,实际上,他们按每次点击收费,这意味着当请求到达时他们会启动容器。所以我不明白它是如何旋转得这么快的?用户可以灵活地运行任何类型的环境,这意味着 docker 容器实际上可以包含任何内容。也许是一个成熟的 Linux 操作系统。它如何快速加载环境操作系统并满足请求?好吧,也许它会维护机器的状态并在不使用时将其关闭,但即便如此,也需要相当长的时间来恢复状态。
那么谷歌到底是如何做到的呢?它如何能够在短时间内启动客户的容器?
我在云运行中有一个前端,我想映射到在 DoDaddy (breadfree.es) 中购买的域进行演示,但在域映射中配置它后,它花费了长达 16 个小时,但仍然无法工作。你能给我什么建议吗?我读到 dns 需要 4 到 8 小时才能传播,而且对于某些人来说,它可以删除记录并重新放置它们(在下面的链接中)。还有其他适用于 GoDaddy 的解决方案吗?
另外,这对我来说很奇怪,因为我发现虽然域没有映射,但如果我将此服务映射到子域,它的传播速度会更快。我用 tienda.breadfree.es 映射它,它可以工作,尽管我更喜欢它映射到 breadfree.es(tienda 在西班牙语中是商店的意思)。
预先非常感谢您的帮助!
我使用 Google Cloud Run 来容器化 node.js 应用程序。我按照本指南向运行的谷歌云添加了环境变量,并希望在我的应用程序代码中使用它们。但。每当我运行构建(云运行构建)时,它都会向我显示process.env.NODE_ENV其他环境变量是undefined.
您能帮我找到问题的根源吗?
Dockerfile
FROM node:14.16.0
WORKDIR /usr/src/app
COPY package.json yarn.lock ./
# Copy local code to the container image.
COPY . ./
RUN yarn install
RUN yarn build
RUN npx knex --knexfile=./src/infrastructure/knex/knex.config.ts migrate:latest --env production
# Use the official lightweight Node.js 14 image.
# https://hub.docker.com/_/node
FROM node:14.16.0
# Create and change to the app directory.
WORKDIR /usr/src/app
# Copy application dependency manifests to the container image.
# Copying …Run Code Online (Sandbox Code Playgroud) 这是我的 Dockerfile:
# Use lightweight Python image
FROM python:3.9-slim
ARG DOCKER_ENV
# PYTHONFAULTHANDLER=1 - Display trace if a sefault occurs.
# PYTHONUNBUFFERED=1 - Allow statements and log messages to immediately appear in the Knative logs
# PIP_NO_CACHE_DIR=off - Disable pip cache for smaller Docker images.
# PIP_DISABLE_PIP_VERSION_CHECK=on - Ignore pip new version warning.
# PIP_DEFAULT_TIMEOUT=100 - Give pip longer than the 15 second timeout.
ENV DOCKER_ENV=${DOCKER_ENV} \
PYTHONFAULTHANDLER=1 \
PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=off \
PIP_DISABLE_PIP_VERSION_CHECK=on \
PIP_DEFAULT_TIMEOUT=100
# Install poetry
RUN …Run Code Online (Sandbox Code Playgroud) 我是 Dart 函数框架的新手。我的目标是使用这个包创建多个函数并将它们部署到 Cloud Run(与 Firebase 结合使用,但我想这与这个问题无关)。
我已经运行了快速启动,并且已经阅读了文档中的所有内容。
快速入门一次只提到一个函数(例如Hello World、Cloud Events等),如下所示:
import 'package:functions_framework/functions_framework.dart';
import 'package:shelf/shelf.dart';
@CloudFunction()
Response function(Request request) {
return Response.ok('Hello, World!');
}
Run Code Online (Sandbox Code Playgroud)
但正如您在快速入门中看到的那样,项目中一次仅处理一个功能。我想部署多个功能怎么样?我是不是该:
或者
functions_framework让我说得更具体一些。我应该执行以下操作(选项 1 - 这对我来说更有意义):
import 'dart:math';
import 'package:functions_framework/functions_framework.dart';
import 'package:shelf/shelf.dart';
@CloudFunction()
Response function(Request request) {
return Response.ok('Hello, World!');
}
@CloudFunction()
Response function2(Request request) {
if (Random().nextBool()) {
return Response.ok('Hello, World!');
} else {
return Response.internalServerError();
}
}
Run Code Online (Sandbox Code Playgroud)
build_runner或者我应该通过为项目中需要的 …
dart google-cloud-functions google-cloud-run functions-framework