我使用Deployment Manager并尝试在python文件中描述我的资源(Deployment Manager允许使用Python或Jinja创建配置)。其实,
我使用json格式创建主题资源 -
return
{
'name': topic,
'type': 'pubsub.v1.topic',
'properties': {
'topic': topic
},
'accessControl': {
'gcpIamPolicy': {
'bindings': [
{
'role':
'roles/pubsub.publisher',
'members': [ 'service_account = project_name + '@gs-project-accounts.iam.gserviceaccount.com' ]
}
]
}
}
}
格式[project_name]@gs-project-accounts.iam.gserviceaccount.com
几周前工作正常但是对于新创建的项目,找不到这样的服务帐户。
service account ... doesn't exist
?它是 - [project-name]@gs-project-accounts.iam.gserviceaccount.com
,目前是service-[projectId]@gs-project-accounts.iam.gserviceaccount.com
。我通过this API和我得到的特殊新创建的项目检查它 - 这种格式:service-[project_Id]@gs-project-accounts.iam.gserviceaccount.com
。GCS服务帐户格式最近更改为以下格式:
service-[PROJECT_NUMBER]@gs-project-accounts.iam.gserviceaccount.com
现有项目将继续使用以前的格式。
对于新项目,新格式将是前进的方式。
要验证格式,您可以get projects.serviceAccount。