【发布时间】:2022-09-06 22:10:04
【问题描述】:
我正在从 CloudBuild 运行 bash 脚本。 bash 脚本会将 DNS 记录导出到文件中。
gcloud dns record-sets export zonedump-$i.tmp --zone-file-format --project $projectname --zone=$i
cloudbuild的serviceaccount有roles/dns.reader
运行 cloudbuild 时出现此错误:
ERROR: (gcloud.dns.record-sets.export) HTTPError 403: Forbidden
Finished Step #3
ERROR
ERROR: build step 3 \"gcr.io/google.com/cloudsdktool/cloud-sdk\" failed: step exited with non-zero status: 1
cloudbuild.yaml
steps:
- name: \'bash\'
args: [\'echo\', \'Backing up DNS zone to Storage!\']
- name: \'bash\'
args: [\'ls\']
- name: \'bash\'
args: [\'chmod\', \'+x\', \'scripts/dnszone_backup.bash\']
- name: \'gcr.io/google.com/cloudsdktool/cloud-sdk\'
entrypoint: \"bash\"
args:
- \"-c\"
- |
echo \"calling script\"
ls -la
gcloud version
scripts/dnszone_backup.bash
如果有人可以帮助我,我将不胜感激。
-
我怀疑
gcloud没有经过身份验证。gcloud dns record-sets export是唯一需要身份验证的命令,但我认为任何其他命令也会失败。也许尝试删除scripts/dnszone_backup.bash,这应该可以工作。然后尝试添加gcloud auth list或gcloud projects list或其他需要身份验证的命令。您还显示了 2 个不同的容器图像。在错误gcr.io/cloud-builders/gcloud中,但在您的脚本中gcr.io/google.com/cloudsdktool/cloud-sdk。 -
documentation 建议前者自动使用 Cloud Build 服务帐户,但后者需要身份验证。见Usage
标签: google-cloud-platform google-cloud-build google-iam google-cloud-iam google-cloud-dns