我想使用打包程序构建命令创建映像,但是当我这样做时,我遇到了此错误:
googlecompute: * The user does not have access to service account 'service-76100000418@compute-system.iam.gserviceaccount.com'. User: 'farzin-second-test-project@farzin-second-test-project.iam.gserviceaccount.com'. Ask a project owner to grant you the iam.serviceAccountUser role on the service account
我已将服务帐户用户角色、计算管理员和计算实例管理员 (v1( 添加到我的服务帐户。 我也启用了计算 API,但在我的虚拟框中我使用了 centos,在这里我使用了这个无法正常工作的打包程序构建。 在那里,我创建了一个带有名称凭据的文件并将 json 密钥放入其中,并且我还制作了我的打包程序模板,我还应该说我的模板已经过验证。
有人知道吗?奇怪的是它要求我向用户授予此权限,但在添加后它仍然不起作用。
您必须在 GCP 帐户上启用所有休耕 API:
gcloud services enable sourcerepo.googleapis.com
gcloud services enable compute.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable storage-api.googleapis.com
此外,请确保您的服务帐户具有适当的权限(并且您使用的是正确的帐户(:
CLOUD_BUILD_ACCOUNT=$(gcloud projects get-iam-policy $PROJECT --filter="(bindings.role:roles/cloudbuild.builds.builder)" --flatten="bindings[].members" --format="value(bindings.members[])")
gcloud projects add-iam-policy-binding $PROJECT
--member $CLOUD_BUILD_ACCOUNT
--role roles/editor
您还可以查看文档:使用 Packer 构建 VM 映像和使用 Packer 创建云构建映像工厂。