我愿意在 Google-Cloud-Run 中部署服务。它将是一个(python)Flask 应用程序,将连接到数据存储(数据存储模式下的 firestore)以写入或读取小 blob。
问题是文档中没有解释:访问您的数据库如何在 GCP 内访问数据存储,但不能从 GCE 或 AppEngine 访问数据存储。是否有一种奇特/无缝的方法来实现此目的,或者我应该提供服务帐户凭据,就好像它是外部平台一样?
预先感谢您的帮助和解答。
python-3.x google-client google-cloud-datastore google-cloud-firestore google-cloud-run
容器合约规定,云运行应该监听环境变量定义的端口PORT。环境变量设置为8080. 我的问题是我们可以将此变量更改为不同的端口吗?
我正在使用 Google Cloud Run 和 Pulumi(类似于 Terraform)。我的 Cloud Run 域映射设置是:
new gcp.cloudrun.DomainMapping(
`${prefix}-domain-mapping`,
{
location,
name: 'xxx',
metadata: {
namespace: projectId,
},
spec: {
routeName: appService.name,
},
},
{
dependsOn: [appService],
},
)
Run Code Online (Sandbox Code Playgroud)
其中appService指向 Cloud Run 服务的实例。这成功创建了到 Cloud Run 服务的域映射。
接下来我将设置一个包含记录的 DNS 区域:
const zone = new gcp.dns.ManagedZone(`${prefix}-zone`, {
name: `${prefix}-zone`,
dnsName: 'xxx.',
visibility: 'public',
})
const ips = ['xxx', 'xxx', 'xxx', 'xxx']
new gcp.dns.RecordSet(
`${prefix}-a-records`,
{
name: 'xxx.',
managedZone: zone.name,
type: 'A',
ttl: 3600,
rrdatas: ips,
}, …Run Code Online (Sandbox Code Playgroud) 我可以让 Google 在云运行中向我的服务器发送 http/2 请求吗?
我不确定谷歌如何知道我的服务器支持它,因为谷歌终止负载均衡器上的 SSL 并将 http 发送到云运行中的无状态服务器。
如果可能的话,我正在考虑从 webpieces 中获取一些内容,并为我“知道”只会执行 http/2 的微服务创建一个没有 http1.1 的纯 http/2 服务器。
另外,如果我有一个纯 http/2 服务器,是否有一种方法可以让 google 在需要时将 http1 请求转换为 http/2,以便我也可以托管网站?
我能找到的唯一信息是一个很棒的常见问题解答,它似乎缺少它是否在服务器端(而不是客户端)支持 http/2...
https://github.com/ahmetb/cloud-run-faq
谢谢,迪恩
(我正在学习 Cloud Run,承认这与开发或代码无关,但希望一些 GCP 工程师能够澄清这一点)
我有一个正在运行的 PY 应用程序 - Gunicorn + Flask...现在只是 PoC,这就是为什么需要最小配置。
cloud run deploy有以下标志:
--max-instances 1
--concurrency 5
--memory 128Mi
--platform managed
Run Code Online (Sandbox Code Playgroud)
guniccorn_cfg.py文件具有以下配置:
workers=1
worker_class="gthread"
threads=3
Run Code Online (Sandbox Code Playgroud)
我想知道:
1) max-instances:: 如果我要对此进行调整,这是否意味着在需要时会配置新的物理服务器计算机?或者,该服务是否通过拉取容器映像并简单地docker run ...在同一物理服务器计算机上启动一个新的容器实例()来实现这一点,从而有效地与其他容器实例共享同一物理计算机?
2) concurrency:: 一个正在运行的容器实例是否收到多个并发请求(例如,由 3 个正在运行的容器实例处理 5 个并发请求)?或者每个并发请求都会触发启动新的容器实例(docker run ...)
3)最后,通过调整gunicorn设置我可以有效地达到concurrency> 5吗?thread对于前。在这种情况下 5x3=15.. 例如。15 个并发请求由 3 个正在运行的容器实例提供服务,例如?如果这是真的,调整thread与调整云运行有什么优点/缺点concurrency?
附加信息: - 这是一个 IO 密集型应用程序(不是 CPU 密集型)。只需抓取 HTTP 请求并发布到 pubsub/sub
多谢
我试图了解将服务帐户分配给 Cloud Run 服务实际上会做什么,以提高容器的安全性。我在 Cloud Run 服务中运行多个进程,但并非所有进程都需要访问项目资源。
我想到的一个更具体的问题是: 我是否能够创建多个用户并以无权访问服务帐户的用户身份运行某些进程,或者每个用户都有权访问服务帐户?
我在 VM 实例上运行了一个小实验(我猜这将与 Cloud Run 的情况类似),其中我创建了一个新用户,创建后,它无权使用该实例的服务帐户。但是,我不确定是否有办法对其进行授权,这会使我的方法不安全。
谢谢。
编辑
为了执行测试,我创建了一个新的操作系统用户,并使用新用户帐户中的“gcloud auth list”。但是,我应该发出一个curl请求,并且我将能够检索凭据,如下面的答案所指出的。
security google-compute-engine docker google-cloud-platform google-cloud-run
从事项目的团队将 Docker 映像部署到云运行服务。我没有 docker 映像,但可以访问 Cloud Run 服务。我可以看到日志和详细信息。我想找到该 docker 映像中的文件。我怎样才能访问这个?例如,图像包含一个 main.py 文件,现在我想访问它。
谢谢
我想在 Cloud Run 上使用 Firebase Hosting 前缀的 API /api。以便/api/somethingAPI/something处理程序处理传入请求。看起来很简单,但我无法弄清楚,所以我想知道 Firebase 托管是否可以实现。
我尝试的第一件事是:
"rewrites": [
{
"source": "/api",
"run": {
"serviceId": "my-api",
"region": "us-central1"
}
}
]
Run Code Online (Sandbox Code Playgroud)
这会正确地/api将请求路由到服务 root /,但/api/something仅调用 404。
第二次尝试是使用"source": "/api/**"or "regex": "/api(/.*)?",。这可以正确接收类似的请求/api/something,但将其路由到 API 根/而不是/something.
理想情况下,我希望它去掉/api前缀,或者允许我在路由 URL 上使用提取的正则表达式组。谢谢。
我们有一个monorepo设置,其中每个文件夹都有一个typescript/node服务。还有一个共享/types文件夹,我们使用打字稿项目引用将其拉入每个项目。
由于您无法复制父文件夹,因此我们在本地使用:
docker build -f Dockerfile ..
哪个工作正常,但是使用 docker 构建器尝试相同的操作cloudbuild.yaml会抛出以下错误,关于丢失的文件描述符?
docker.io/library/docker:latest
error checking context: 'file ('/proc/1/fd/5') not found or excluded by .dockerignore'.
ERROR
ERROR: build step 0 "docker" failed: step exited with non-zero status: 1
------------------------------------------------------------------------------------------------------------------------------------------------
ERROR: (gcloud.builds.submit) build dc31344a-b836-4089-87ab-e6ce7c69cab3 completed with status "FAILURE"
Run Code Online (Sandbox Code Playgroud)
那么,我们如何gcloud build在单一存储库中使用云运行服务,同时仍然引入我们的共享类型呢?
typescript docker google-cloud-platform monorepo google-cloud-run
我已经通过谷歌云运行部署了一个应用程序。如何限制用户访问正在访问的URL?我希望只有一组特定的用户能够使用该 URL。有没有办法做到这一点?
google-cloud-run ×10
docker ×3
python-3.x ×2
firebase ×1
gunicorn ×1
http2 ×1
monorepo ×1
pulumi ×1
security ×1
terraform ×1
typescript ×1