云构建通过将 eu.artifacts.<project>.appspot.com 存储桶更改为单区域来避免计费
Posted
技术标签:
【中文标题】云构建通过将 eu.artifacts.<project>.appspot.com 存储桶更改为单区域来避免计费【英文标题】:Cloud build avoid billing by changing eu.artifacts.<project>.appspot.com bucket to single-region 【发布时间】:2020-09-20 20:58:38 【问题描述】:使用适用于 python 3.7 的应用引擎标准环境。
在运行app deploy
命令时,容器图像会上传到存储桶eu.artifacts.<project>.appspot.com
中的谷歌存储。
此消息在app deploy
期间打印
Beginning deployment of service [default]...
#============================================================#
#= Uploading 827 files to Google Cloud Storage =#
#============================================================#
File upload done.
Updating service [default]...
文件上传到多区域 (eu),如何将其更改为上传到单个区域?
猜测它是应该添加到存储库的配置文件,以指示应用引擎、云构建或云存储将文件上传到单个区域。
是否需要eu.artifacts.<project>.appspot.com
存储桶,或者是否可以使用.gcloudignore
文件忽略所有文件?
问题与How can I specify a region for the Cloud Storage buckets used by Cloud Build for a Cloud Run deployment? 类似,但针对应用引擎。
我正在使用服务帐户触发云构建。
尝试在上面的链接中实现解决方案中的更改,但无法摆脱多区域存储桶。
substitutions:
_BUCKET: unused
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy', '--promote', '--stop-previous-version']
artifacts:
objects:
location: 'gs://$_BUCKET/artifacts'
paths: ['*']
命令gcloud builds submit --gcs-log-dir="gs://$BUCKET/logs" --gcs-source-staging-dir="gs://$BUCKET/source" --substitutions=_BUCKET="$BUCKET"
【问题讨论】:
您是否尝试在您想要的区域创建存储桶并添加标志--bucket=BUCKET [1]? cloud.google.com/sdk/gcloud/reference/app/deploy @AndieVanille 尝试使用不同的命名存储桶,但这会导致重复,文件同时上传到--bucket=<name>
和 eu.artifacts.<project>.appspot.com
。如果我想创建一个名为 eu.artifacts.<project>.appspot.com
的存储桶,那么我需要验证 google 为我创建的域名。
【参考方案1】:
我在部署后删除了整个存储桶,这会阻止计费
gsutil -m rm -r gs://us.artifacts.<project-id>.appspot.com
-m
- 多线程/多处理(而不是逐个删除对象,此参数将同时删除对象)
rm
- 删除对象的命令
-r
- 递归
https://cloud.google.com/storage/docs/gsutil/commands/rm
【讨论】:
【参考方案2】:经过稍微调查后,我想提一下这个 当您部署新容器时(部署您的 App Engine 应用程序时)-> 当您使用新主机名将图像推送到注册表时,“容器注册表”产品会创建一种存储桶Registry 在指定的多区域位置创建一个存储桶。这个桶是注册表的底层存储。在一个项目中,具有相同主机名的所有注册表共享一个存储bucket。
基于this,默认情况下无法访问,并且它本身包含在部署新容器时编写的容器镜像。不建议修改它,因为工件存储桶旨在包含部署图像,这可能会影响您的应用。
最后,我发现一些奇怪的事情是,当您创建一个默认存储桶(如前面提到的存储桶的情况)时,您还会获得一个同名的暂存存储桶,除了 staging。您可以将此暂存存储桶用于暂存和测试目的的临时文件;它也有 5 GB 的限制,但每周自动清空basis
【讨论】:
那么您有什么可以做的吗?我似乎也因使用此存储桶而被收费。以上是关于云构建通过将 eu.artifacts.<project>.appspot.com 存储桶更改为单区域来避免计费的主要内容,如果未能解决你的问题,请参考以下文章
阿里云IoT+YF330013.阿里云IoT Studio WEB监控界面构建