我已经使用 Google Cloud 几个星期了,但由于我有限的 GCP 知识,我面临着一个大问题。
我有一个 python 项目,其目标是使用其 API 从网站“抓取”数据。我的项目在执行过程中运行了数万个请求,并且可能需要很长时间(几个小时,也许更多)
我的项目中有 4 个 python 脚本,它们都是由 bash 脚本编排的。
执行如下:
现在我想摆脱那个 bash 脚本,并且我想自动执行这些脚本。一个星期一次。
这里的问题是执行时间。这是我已经测试过的:
Google App Engine:GAE 上的请求超时限制为 10 分钟,而我的函数可以运行几个小时。GAE 在这里不可用。
Google 计算引擎:我的脚本最多可以运行。每周 10-15 小时,在这段时间里保持计算引擎运行的成本太高了。
我可以做什么来在云环境中自动执行脚本?在不更改代码的情况下,我没有想到的解决方案可能是什么?
谢谢
python google-app-engine google-compute-engine google-cloud-platform google-cloud-run
我刚刚部署了一个 Cloud Run REST API 应用程序,该应用程序使用 Google Cloud Storage API 从存储桶以及该存储桶内的文件夹中获取最后一个文件。这是我正在使用的代码:
import os
import logging
from flask import Flask
from flask import request, jsonify, render_template
from google.oauth2 import service_account
from google.cloud import storage
from bson.json_util import dumps
app = Flask(__name__)
storage_client = storage.Client.from_service_account_json('sa.json')
@app.route('/')
# API Version 1.0
def index():
"""Welcome to Last File API Version 1.0."""
button_text = "Add File"
return render_template('main.html', button_text=button_text)
@app.route("/last_file_m_individual/", methods=["GET"])
def list_m_individual_files():
"""List all files in GCP bucket."""
bucketName = request.args.get('bucketname')
bucketFolder = request.args.get('bucketfolder') …Run Code Online (Sandbox Code Playgroud) 我们需要在多个 GCP 项目中部署我们的应用程序,并由 Terraform 配置新项目。我们在每个项目中配置了 Terraform Cloud Build,但是当 Cloud Build 尝试访问集中式项目中的源存储库时,我们会遇到问题。
我们不想克隆存储库,而是指示 Cloud Build 从中央存储库使用和部署。同样重要的是,我们在部署新代码时让 Cloud Build 更新每个项目。
我是 GCP 新手,我正在尝试使用 docker-compose 部署我的 Spring Boot Web 服务。在我的docker-compose.yml文件中,我有 3 个服务:我的应用程序服务、mysql 服务和 Cassandra 服务。在当地,它就像一个魅力。我还添加了一个cloudbuild.yaml文件:
steps:
- name: 'docker/compose:1.28.2'
args: ['up', '-d']
- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'workspace_app:latest', 'gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA']
images: ['gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA']
Run Code Online (Sandbox Code Playgroud)
谷歌云构建成功。但是,当我尝试在 google cloud run 上运行图像时,它不会调用 docker-compose.yml 文件。我必须如何处理才能在生产中使用 docker-compose?
production docker-compose google-cloud-build google-cloud-run
我将Prisma与 Cloud Run 和 Cloud SQL 结合使用。DATABASE_URL提供给它后,prisma.schema它在运行时抛出一个错误。
Can't reach database server at `(/cloudsql/project-name:us-east1:database-id)`:`5432`
Please make sure your database server is running at `(/cloudsql/project-name:us-east1:database-id)`:`5432`."
Run Code Online (Sandbox Code Playgroud)
DATABASE_URL:postgresql://username:password@localhost/databasename?host=(/cloudsql/project-name:us-east1:database-id)连接出了什么问题?我是否未能正确构建DATABASE_URL?
我在这里使用 Go SDK @ cloud.google.com/go/firestore GoDoc来调用 Firestore。它在 App Engine 上运行得很好,但我最近向 Cloud Run 添加了一项新服务。此新服务调用旧服务使用的相同代码,但该代码(适用于 App Engine)在 Cloud Run 上引发错误:rpc error: code = InvalidArgument desc = Invalid resource field value in the request
引发错误的特定代码行是:
snap, err := client.Collection(queryable.CollectionName()).Doc(queryable.GetFirestoreID()).Get(ctx)
if err != nil {
return fmt.Errorf("couldn't read document with id: %v error: %w", queryable.GetFirestoreID(), err)
}
Run Code Online (Sandbox Code Playgroud)
其中 queryable 是一个接口,而 CollectionName() 返回一个常量字符串,因此不可能是问题(此外,如果这是问题,它将返回不同的错误)。
我用更多文本包装错误消息,因此完整的错误消息可以让您了解堆栈:DoTaxDog: allDB.UpdateData: firestoreCRUD.ReadSchema: error in Firestore's ReadSchema: couldn't read document with id: AGPFiyoJdMAmurVNqHYxvKHEb error: rpc error: code = InvalidArgument …
google-cloud-platform google-cloud-firestore google-cloud-run
尝试本地运行“java cloud run hello word example”时 Cloud Run:本地运行
我不断得到
正在启用 GCP 身份验证插件...
无法启用 GCP 身份验证插件。部署将继续,但 GCP 凭据不会添加到 minikube。请通过运行以下命令确保您拥有最新的应用程序默认凭据 (ADC)
gcloud auth login --update-adc
我尝试过但没有解决问题的事情
gcloud auth login --update-adc我缺少什么?
我正在阅读此 Reddit 帖子,其中一位用户提到 540 秒是 Firebase 函数的限制,建议迁移到 Cloud Run。
\n\n\n正如其他人所说,540 秒是最大超时,如果您想增加它而不更改代码的其他内容,请考虑迁移到 Cloud Run。\xe2\x80\x8b- Reddit上的@samtstern
\n
查看Node.JS 快速入门文档\n以及 YouTube 和 Google 上的其他内容后,我没有找到解释如何将 Firebase Function 移至 Cloud Run 的良好指南。
\n我读到的内容没有解决的问题之一,例如:我用什么替换firebase-functions包来定义函数?ETC...
那么,如何将我的 Firebase Function 转移到 Cloud Run 才不会遇到 540 秒的最大超时限制?
\n\xe2\x80\x8bconst functions = require(\'firebase-functions\');\n\xe2\x80\x8bconst runtimeOpts = {timeoutSeconds: 540,memory: \'2GB\'}\n\xe2\x80\x8bexports.hourlyData = functions.runWith(runtimeOpts).pubsub.schedule(\'every 1 hours\')\nRun Code Online (Sandbox Code Playgroud)\n javascript node.js firebase google-cloud-functions google-cloud-run
我用于部署Angular的CI/CD管道管道已关闭,但我发现在更新容器映像后,Google Cloud Run 不会部署新版本。
我已将 Cloud Build 设置为在更新 GitHub 上的分支时触发构建。这工作正常,我看到我得到了一个以提交哈希命名的新图像。我期望 Cloud Run 触发其服务,获取最新的映像并部署它,但它没有运行。我不确定是否需要更改图像名称,以便它们由于SHA-1哈希值而变得不唯一。
continuous-deployment google-cloud-platform google-cloud-build google-cloud-run
我正在尝试在我的 WSL 容器中使用 [适用于 VSCode 的 Google Cloud Code 插件] ( https://marketplace.visualstudio.com/items?itemName=GoogleCloudTools.cloudcode )。
第一次工作时,我修改了 WSL 上的默认用户,现在我无法使用该插件。尝试重新安装gcloud,请使用脚本安装而不是apt-get. 我还尝试了一个新的 WSL 容器(安装或未安装 gcloud),出现同样的错误。重新安装插件,没有任何变化:
[8/4/2021, 11:12:29 AM] Dependency check detected gcloud not installed
[8/4/2021, 11:12:29 AM] Dependency installer starting installation
[8/4/2021, 11:12:30 AM] [warn]ApplicationInsights:CorrelationIdManager[{}]
[8/4/2021, 11:12:33 AM] [error]Dependency installer: gcloud architecture check failed request to https://dl.google.com/dl/cloudsdk/channels/rapid/components-2.json failed, reason: Failed to establish a socket connection to proxies: ["PROXY 127.0.0.1:9000"].
[8/4/2021, 11:12:33 AM] [error]Failed gcloud installation with Error: request to https://dl.google.com/dl/cloudsdk/channels/rapid/components-2.json failed, …Run Code Online (Sandbox Code Playgroud) google-cloud-platform visual-studio-code google-cloud-run google-cloud-code