对于概念验证项目,我尝试连接在完全托管的存储层上运行的 LaravelCloud Run项目Cloud SQL。
我已经设法使用该命令通过 Google App Engine 获得正常运行的服务gcloud app engine(该服务可以连接到存储层)。我还通过cloud_sql_proxy我的服务的本地 docker 容器成功连接了存储层。但我无法通过 Cloud Run 进行远程设置。
我正在部署 docker 映像,如下所示:
gcloud run deploy --image eu.gcr.io/demo/customerservice --add-cloudsql-instances demo:europe-west1:dps-demo --update-env-vars INSTANCE_CONNECTION_NAME="demo:europe-west1:dps-demo
Run Code Online (Sandbox Code Playgroud)
我的服务针对请求返回的错误是:
could not find driver (SQL: select * from `cache` where `key` = laravel_cachefa9d927c88ff8ebffd06913d97f9d59e limit 1)
Run Code Online (Sandbox Code Playgroud)
(任何类型的数据库查询都会发生此错误,如果我使用本地缓存,则类似)
这是我的.env文件(我删除了一些与问题无关的混乱内容):
APP_NAME=Laravel
APP_ENV=local
APP_KEY=***
APP_DEBUG=true
APP_URL=http://CustomerService.test
APP_STORAGE=/tmp
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=***
DB_SOCKET=/cloudsql/demo:europe-west1:dps-demo
BROADCAST_DRIVER=log
CACHE_DRIVER=database
QUEUE_CONNECTION=sync
SESSION_DRIVER=database
SESSION_LIFETIME=120
VIEW_COMPILED_PATH=/tmp
Run Code Online (Sandbox Code Playgroud) 我想知道部署在云运行上的容器是否可以以某种方式获取自己的服务 url 还是不可能?
我想知道这一点,因为我想要一个云运行工作人员为自己创建谷歌云任务。
如果可以的话,怎样才能做到呢?
我有一个通过 Google Cloud Run 运行的 Flask 应用程序,我需要知道用户的 IP 地址。我正在使用 Gunicorn 作为我的服务器。我尝试过以下代码:
request.remote_addr
request.environ['REMOTE_ADDR']
request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
Run Code Online (Sandbox Code Playgroud)
它返回这个 IP 地址:169.254.8.129这不是我的。这可能是应用程序和用户之间负载均衡器的 IP 吗?
有没有一种方法可以获得正确的 IP 地址而无需使用额外的服务?
我有一个 Django 项目与 google cloud 一起运行在“us-west1”区域。我想将该区域切换到“asia-south1”,这怎么可能?
项目应贯穿“asia-south1”区域,以便减少响应时间。(我不需要多区域设施,因为我的所有客户仅属于该区域)
我在以下链接的计算引擎中看到了这样的功能
但我正在寻找云运行服务的解决方案。
提前致谢!
我有一个 docker 容器,需要使用 --privileged 运行,以便在启动后建立 VPN 连接
我正在使用 Cloud Build 将其迁移到 Cloud Run
我尝试了 --container-privileged 但这似乎只适用于 GCE,我还在cloudbuild.yaml 中的调用中添加了以下内容,但它args抱怨gcloud run deployerror: "Invalid command \"docker run --privileged\": file not found anywhere in PATH
- --command
- docker run --privileged
Run Code Online (Sandbox Code Playgroud) docker google-cloud-platform google-cloud-build google-cloud-run docker-privileged
我正在尝试使用 Cloud Run 来运行容器作为 Airflow 的 DAG 的任务。
似乎没有像 CloudRunOperator 或类似的东西,我在文档中找不到任何内容(Cloud Run 和 Airflow 都可以)。
有人处理过这个问题吗?如果是,我如何使用 Cloud Run 运行容器并处理 xcom?
提前致谢!!
google-cloud-platform airflow google-cloud-composer google-cloud-run
我正在尝试使用以下Terraform代码在Cloud Run上运行 docker 映像:
provider "google" {
credentials = file("myCredentials.json")
project = "myproject-214771"
region = "asia-northeast1"
}
resource "google_cloud_run_service" "default" {
name = "hello-world"
location = "asia-northeast1"
template {
spec {
containers {
image = "gcr.io/myproject-214771/hello-world:latest"
}
}
}
traffic {
percent = 100
latest_revision = true
}
}
Run Code Online (Sandbox Code Playgroud)
然后,docker镜像运行成功:
但是当我访问该 URL 时,它显示:
错误:禁止 您的客户端无权从该服务器获取 URL /
我的Terraform代码中有任何错误吗?
google-cloud-platform terraform devops terraform-provider-gcp google-cloud-run
我正在为涉及 Cloud Run 的 GCP 项目设置 CI&CD 环境。虽然通过 Terraform 设置一切都非常简单,但我不知道如何在代码更改时更新环境。
文档说:
- 更改配置文件。
但这将应用程序部署与 terraform 配置耦合在一起,而 terraform 配置应该只负责基础设施部署。
理想情况下,我使用 terraform 来配置基础设施,并使用另一个 CI 步骤来构建和部署容器。
这里有最佳实践吗?
相关来源:1。
google-cloud-platform terraform terraform-provider-gcp google-cloud-run
我一直在使用 Google Cloud 免费试用帐户。
我能够从我的 Github 存储库部署 Cloud Run 版本。但是,自从我开始使用 Google Cloud Kubernetes 集群和作业(在 Google Compute Engine 中使用 2 个虚拟机)后,Cloud Run 部署开始失败:
Step #2 - "Deploy": gcr.io/google.com/cloudsdktool/cloud-sdk:slim
Step #2 - "Deploy": Deploying...
Step #2 - "Deploy": failed
Step #2 - "Deploy": Deployment failed
Step #2 - "Deploy": ERROR: (gcloud.run.services.update) spec.template.spec.containers[0].resources.limits.cpu: Invalid value specified for cpu. For the specified value, maxScale may not exceed 30.
Step #2 - "Deploy": Consider running your workload in a region with greater capacity, decreasing your …Run Code Online (Sandbox Code Playgroud) google-compute-engine google-cloud-platform google-kubernetes-engine google-cloud-build google-cloud-run
我尝试使用以下命令安装 GCSFuse:
gcsFuseRepo=gcsfuse-`lsb_release -c -s`; \
echo "deb http://packages.cloud.google.com/apt $gcsFuseRepo main" | \
tee /etc/apt/sources.list.d/gcsfuse.list; \
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
apt-key add -; \
apt-get update; \
apt-get install -y gcsfuse \
&& apt-get clean
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
E: Failed to fetch http://packages.cloud.google.com/apt/pool/gcsfuse-buster/gcsfuse_1.2.0_amd64_0e91d38c68c91349633d37c17e1586e6.deb 502 Bad Gateway [IP: xxx.xxx.xx.xxx 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Run Code Online (Sandbox Code Playgroud)
错误日志表明由于 502 Bad Gateway 错误,导致获取 gcsfuse 包失败。我尝试按照错误消息的建议运行 apt-get update 和 --fix-missing ,但问题仍然存在。
我期待 GCSFuse 成功安装。任何解决此问题的帮助将不胜感激。