我有一个使用 docker 在谷歌云中运行的小型 python 应用程序。该应用程序由 http 请求触发,在大查询中执行查询并返回结果。不幸的是,我收到以下权限错误:
Reason: 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/XXXX/jobs: Access Denied: Project XXXX: User does not have bigquery.jobs.create permission in project XXXX.\n\n(job ID: XXXX-XX-XX-XX-XXXX)\n\n
Run Code Online (Sandbox Code Playgroud)
我知道我需要提供从云运行到大查询的访问权限。我该怎么做?给哪个用户?我怎么知道?
google-bigquery google-cloud-platform google-iam google-cloud-iam google-cloud-run
我正在尝试使用以下命令将我的 nodejs 应用程序部署到云运行
gcloud run deploy --image gcr.io/[project-id]/helloworld --platform managed
Run Code Online (Sandbox Code Playgroud)
在运行此命令之前,我构建了两个云构建映像并尝试使用上述命令部署最新构建。但是得到以下错误
ERROR: (gcloud.run.deploy) Error parsing [service].
The [service] resource is not properly specified.
Failed to find attribute [service]. The attribute can be set in the following ways:
- provide the argument [SERVICE] on the command line
- specify the service name from an interactive prompt
Run Code Online (Sandbox Code Playgroud)
我不知道是哪个导致错误。有人可以帮我解决这个问题吗?谢谢
我希望将 Cloud Run 连接到在 Compute Engine(而不是 Cloud SQL)的端口 5432 中运行的 Postgres 数据库。我从文档中假设这是无法完成的。真的是这样吗?
我看到文档中的所有示例都使用某种形式的简单 Web 应用程序(例如,Python 中的 Flask)。是否可以将云运行用作非 Web 应用程序?例如,部署 cloud run 使用 python 脚本,然后使用 GCP Scheduler 每小时调用 cloud run 来运行该脚本?基本上,我对此的想法是避免部署 Compute Engine 并为其付费,并且仅在通过调度程序调用云运行容器时付费。
我正在尝试将 Cloud Run 服务连接到 MongoDB Atlas 服务器,而不必将所有 IP 列入白名单,但我无法做到。我已经尝试过本教程,但它不适用于 mongo。我尝试了 SSH 隧道,但也没有奏效。
python mongodb google-cloud-platform mongodb-atlas google-cloud-run
我正在为我的后端使用以下堆栈:
现在,附加到该 pubsub 主题,我有一个推送订阅,它使用服务帐户和指定的受众触发 Cloud Run 方法。
现在,我需要配置 Cloud Run Gateway 以验证 pubsub 为指定服务帐户生成的 JWT。这是api_config.yaml按照此处的文档完成的:https : //cloud.google.com/pubsub/docs/push#jwt_format
发行者https://accounts.google.com和我在 pubsub 订阅中指定的受众。
authentication:
providers:
- id: gcloud
jwks_uri: https://www.googleapis.com/robot/v1/metadata/x509/875517523825-compute@developer.gserviceaccount.com
issuer: https://accounts.google.com
audiences: project.clounrun.admin
rules:
- selector: project.v2.Events.*
requirements:
- provider_id: gcloud
Run Code Online (Sandbox Code Playgroud)
可以在此处找到此服务帐户的 jwks:
https://www.googleapis.com/robot/v1/metadata/x509/SERVICE-ACCOUNT-ID
就我而言:
https://www.googleapis.com/robot/v1/metadata/x509/875517523825-compute@developer.gserviceaccount.com
我已经激活了 ESPv2 的调试日志,这是我在尝试验证 JWT 时得到的信息:
13:07:37.027 request headers complete (end_stream=false):\n\':authority\', …Run Code Online (Sandbox Code Playgroud) jwt google-cloud-platform google-cloud-pubsub google-cloud-endpoints-v2 google-cloud-run
我将一个简单的 java spring boot 部署到 google cloud run 中。我通过邮递员测试了 api 并且它起作用了。
但是,如果我停止发送请求 10 或 15 分钟,之后的第一个请求会导致重新启动/启动容器。
因此,不确定 cloud run 是如何工作的,但似乎在空闲超时后它会关闭容器。
这是预期的还是这里有问题?
我正在尝试验证从 Cloud Scheduler cron 作业对我的服务器(在 Cloud Run 上)进行的 API 调用。
我正在尝试使用服务帐户来实现此目的。
注意:这一切都发生在同一个项目内。
参考:
这就是我正在做的:
第 1 步- 创建服务帐户
我访问https://console.cloud.google.com/apis/credentials并创建了一个新的服务帐户。我已将角色指定为owner。
第 2 步- 创建 cron 作业。
我像往常一样访问https://console.cloud.google.com/cloudscheduler创建 cron 作业。
在该service account字段中,我输入了我的服务帐户电子邮件。在该Audience字段中,我输入了我的项目 id,因为在某些时候我收到一条错误,指出它期望它是我的项目 id 的名称。
这是错误:
Firebase ID 令牌的“aud”(受众)声明不正确。预期的
"PROJECT_ID"
第 3 步- 运行作业并识别解码令牌:
这是我服务器上的代码:
import * as admin from "firebase-admin";
admin.initializeApp({
credential: admin.credential.cert(
// THIS IS THE DEFAULT FIREBASE-ADMIN SERVICE ACCOUNT
// THAT IS AUTOMATICALLY CREATED BY …Run Code Online (Sandbox Code Playgroud) firebase service-accounts google-iam google-cloud-scheduler google-cloud-run
我知道cloud run和appengine是不同的服务。我需要通过 ssh 连接到应用程序引擎或云运行实例以手动执行某些流程。
使用其中一项服务的原因是它们仅在我使用时收费,而不是 24x7 小时
有办法做到这一点吗?谢谢
为什么当我使用 Visual Studio Code 扩展“Cloud Code”来部署 Cloud Run 服务时,它似乎将图像内容存储在 Cloud Storage(通过 Container Registry)中。
我可以让它将图像存储在 Google Cloud Artifact Registry 中吗?
google-cloud-platform google-cloud-run google-cloud-code google-artifact-registry
google-cloud-run ×10
google-iam ×2
firebase ×1
jwt ×1
mongodb ×1
node.js ×1
postgresql ×1
python ×1
spring-boot ×1