有人知道Google App Engine Flex和Google Cloud Run之间的区别吗?
谢谢
我正在尝试让 Stackdriver 日志记录适用于在 Google Cloud Run(完全托管)中运行的简单 Go 应用程序,但在 CloudRun 日志中看不到 stackdriver 条目。
我已经基于“官方”stackdriver golang 示例创建了最简单的演示应用程序
Cloud Run 文档指出不应执行其他操作来写入堆栈驱动程序日志
我的服务使用默认服务帐户
我正在使用 Go 1.13 编译代码(Dockerfile 是从Cloud Run 示例“按原样”复制的)
我试图将它部署到不同的地区,但没有成功
在本地运行容器时,使用服务帐户凭据,本地终端或 stackdriver 控制台中不会出现 stackdriver 日志消息
无论如何,在应用程序启动时,我只看到"Before stackdriver logging"后面"After stackdriver logging"没有其他消息\中间有错误
这是日志记录代码的一部分(使用上面的链接获取完整源代码、Dockerfile 以及构建和运行应用程序的说明):
import (
"context"
"log"
"os"
...
"cloud.google.com/go/compute/metadata"
"cloud.google.com/go/logging"
)
func main() {
loggingClient, err := stackdriverClient()
...
log.Println("Before stackdriver logging")
logger.StandardLogger(logging.Info).Println("Stackdriver log")
if err = logger.Flush(); err != nil { …Run Code Online (Sandbox Code Playgroud) 我正在从 BigQuery 读取 1000 万条记录并进行一些转换并创建 .csv 文件,与我使用 Node.JS 上传到 SFTP 服务器的 .csv 流数据相同。
此作业大约需要 5 到 6 小时才能在本地完成请求。
解决方案已在 GCP Cloud run 上部署,但在 2 到 3 秒后,cloud run 关闭容器并出现 503 错误。
请在下面找到 GCP Cloud Run 的配置。
自动缩放:最多 1 个容器实例 CPU 分配:默认内存分配:2Gi 并发:10 请求超时:900 秒
GCP Cloud Run 是长时间运行的后台进程的好选择吗?
node.js google-bigquery google-cloud-platform google-cloud-run
我有一个在 Cloud Run 上运行的服务,以及一个在 Compute Engine 上运行的 MYSQL、MongoDB 数据库。目前,我正在使用公共 IP 在它们之间进行连接,我想使用内部 IP 来提高性能,但我找不到解决此问题的方法,请帮助我一些想法,谢谢。
google-compute-engine google-cloud-platform google-cloud-run google-vpc
我正在使用这个Ghost 插件在 Google Drive 上存储图像数据。最近,图像已停止加载,并下载了此错误页面来代替图像:
该站点在 Google Cloud Run 上的容器化 Ghost 实例中运行,来源在这里
我是否需要在某处打开支持票来解决这个问题?有问题的网站在这里
编辑:这是用于访问保存的内容的代码。
jwtClient.authorize(function(err, tokens) {
if (err) {
return next(err);
}
const drive = google.drive({
version: API_VERSION,
auth: jwtClient
});
drive.files.get(
{
fileId: id
},
function(err, response) {
if (!err) {
const file = response.data;
const newReq = https
.request(
file.downloadUrl + "&access_token=" + tokens.access_token,
function(newRes) {
// Modify google headers here to cache!
const headers = newRes.headers;
headers["content-disposition"] =
"attachment; filename=" + file.originalFilename; …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试获取一个在 Google Cloud 上使用的网络抓取脚本,以将数据导入到 Google Sheets API。我快速浏览了一下,Google Cloud Run 似乎可以做到这一点。不幸的是,该脚本需要 Selenium 和无头浏览来运行该脚本,而我不知道如何正确执行此操作。我对无服务器脚本的想法还很陌生,并且似乎无法在网络上找到足够具体的信息来满足我对 Selenium 的需求。
我已经能够通过无头 Chrome 使用 Selenium 对脚本/依赖项进行 Dockerize。不过我想知道在 Google Cloud 中部署它的最佳方法是什么?
任何想法将不胜感激。
python selenium web-scraping google-cloud-platform google-cloud-run
我有一个 React 微服务(通过 nginx)部署到谷歌云运行上,其后端环境变量设置为另一个运行为后端服务的 Gunicorn 的谷歌云运行实例。
我的 Flask 应用程序是按照我能找到的有关允许 CORS 的所有内容进行设置的:
app = Flask(__name__)
app.config.from_object(config)
CORS(app, resources={r"/*": {"origins": "*"}})
app.config['CORS_HEADERS'] = 'Content-Type'
return app
# Different file, a blueprint's urls:
@blueprint.route('/resources')
@cross_origin()
def get_resources():
...
Run Code Online (Sandbox Code Playgroud)
但我仍然感到害怕Access to XMLHttpRequest at 'https://backend/resources/' from origin 'https://frontend' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
有谁对此有任何见解/知道在解决这个问题时还可以从哪里寻找?我想用我的微服务设置 GKE,但最初选择了阻力最小的路径,在云中建立 POC。我让后端与我的 Cloud SQL 实例对话,我已经很接近了!
谢谢
cors flask google-cloud-platform flask-cors google-cloud-run
我使用 Gunicorn 和工作类型 gthread 在 Cloud Run 上运行 Flask 应用程序。在低级别上,此 API 仅从数据存储区和 Pubsub 写入/检索条目,因此所有操作都很轻。流量为每天 20,000 个请求,最大 QPS 20 个请求,平均 QPS 2
每隔几天/几周,一部分流量 (25%-50%) 就会收到 504 响应,并显示以下错误:
由于已达到最大请求超时时间,请求已终止。要更改此限制,请参阅https://cloud.google.com/run/docs/configuring/request-timeout
几个小时后,问题自行解决(重新部署应用程序或启动新的 CR 实例即可立即解决问题)。这些 504 请求似乎根本没有到达应用程序。此错误似乎与 stderr、stdout 中的任何错误或 QPS 的增加无关。我已经设置了一些高级日志记录和云分析器,但我没有得到任何有用的信息。该应用程序在具有gunicorn同步工作器的App Engine上运行得非常好。唯一的区别是gunicorn 设置。同步工作线程在 CR 上运行速度非常慢,所以我使用了 gthread。
有什么想法下一步该去哪里吗?
Dockerfile
ENTRYPOINT ["gunicorn"]
CMD ["-b", ":8080", "--worker-class", "gthread", "--workers", "5", "--threads", "2", "api.app:app" ]
Run Code Online (Sandbox Code Playgroud)
应用程序.py
def run(**kwargs):
app.run(port=8080, debug=False)
app = connexion.App(__name__, specification_dir='./swagger/')
app.app.json_encoder = encoder.JSONEncoder
app.add_api('swagger.yaml', resolver=connexion.resolver.RestyResolver('api'))
app.app.config.from_object(Config)
if __name__ == '__main__':
run()
Run Code Online (Sandbox Code Playgroud)
gcloud部署命令:
gcloud run …Run Code Online (Sandbox Code Playgroud) 我试图gsutil在构建步骤期间将文件从 GCS 复制到运行容器中。
我尝试过的步骤:
RUN pip install gsutil
RUN gsutil -m cp -r gs://BUCKET_NAME $APP_HOME/artefacts
Run Code Online (Sandbox Code Playgroud)
错误:
ServiceException: 401 Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object.
CommandException: 1 file/object could not be transferred.
The command '/bin/sh -c gsutil -m cp -r gs://BUCKET_NAME $APP_HOME/artefacts' returned a non-zero code: 1
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
Run Code Online (Sandbox Code Playgroud)
服务帐户(默认计算和cloudbuild)确实可以访问GCS,我也尝试过使用gsutil config -a各种其他标志,但没有成功!
我不确定应该如何进行身份验证才能成功访问存储桶。
google-cloud-storage docker google-cloud-platform google-cloud-run
我有一个 API 端点的以下代码,该端点应该使用以下命令触发 Firestore 备份firebase-admin。
这就是我初始化的方式firebase-admin;
import * as admin from "firebase-admin";
admin.initializeApp({
credential: admin.credential.cert(
SERVICE_ACCOUNT as admin.ServiceAccount
)});
Run Code Online (Sandbox Code Playgroud)
服务帐户密钥是我使用默认服务帐户下载的 JSON firebase-admin:
这是backup.tsAPI 请求处理程序。
export const backupData: RequestHandler = async (req, res) => {
try {
const PROJECT_ID = process.env.PROJECT_ID;
const client = new admin.firestore.v1.FirestoreAdminClient();
const DB_NAME = client.databasePath(PROJECT_ID, "(default)");
const BUCKET = `gs://${PROJECT_ID}.appspot.com`;
const FOLDER = `firestore-backup`;
const FULL_PATH = `${BUCKET}/${FOLDER}`;
const responses = await client.exportDocuments({
name: DB_NAME,
outputUriPrefix: FULL_PATH,
collectionIds: [] …Run Code Online (Sandbox Code Playgroud) google-cloud-run ×10
docker ×2
node.js ×2
python ×2
cors ×1
firebase ×1
flask ×1
flask-cors ×1
gcloud ×1
ghost-blog ×1
go ×1
google-vpc ×1
gunicorn ×1
logging ×1
selenium ×1
web-scraping ×1