Google cloud platform 通过SDK在GCP中创建服务帐户时出错

Google cloud platform 通过SDK在GCP中创建服务帐户时出错,google-cloud-platform,service-accounts,Google Cloud Platform,Service Accounts,我一直在使用Google的SDK执行API调用,例如创建服务帐户、创建服务帐户密钥、获取存储桶等。。最近,由于以下错误,我无法创建服务帐户 请求: curl --location --request POST 'https://iam.googleapis.com/v1/projects/myproject/serviceAccounts' \ --header 'Authorization: Bearer <<token>>' \ --header 'Accept-En

我一直在使用Google的SDK执行API调用,例如创建服务帐户、创建服务帐户密钥、获取存储桶等。。最近,由于以下错误,我无法创建服务帐户

请求:

curl --location --request POST 'https://iam.googleapis.com/v1/projects/myproject/serviceAccounts' \
--header 'Authorization: Bearer <<token>>' \
--header 'Accept-Encoding: gzip' \
--header 'User-Agent: my test Google-API-Java-Client'

为什么在创建服务帐户时需要Gaia id?我在哪里可以找到这个id?感谢您的帮助

看来你的请求需要有一个主体

请求正文包含具有以下结构的数据:

{
  "accountId": string,
  "serviceAccount": {
    object (ServiceAccount)
  }
}
你的命令里没有

你可以在这篇文章中获得更多信息

在您的情况下,应该是这样的:

curl --request POST \
  'https://iam.googleapis.com/v1/projects/my-little-project/serviceAccounts?key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"accountId":"sa-test","serviceAccount":{"description":"sa-description-test","displayName":"sa-display-testonly"}}' \
  --compressed
您可以在以下步骤中直接测试此API


此外,我还发现了一个类似的错误,根据这个答案,如果未启用API,则可能会生成此错误。

您是否删除过服务帐户的密码xxxxx@myproject.iam.gserviceaccount.com'这应该是IAM API的默认服务帐户,您可以。或者只是禁用并重新启用它,将为您重新创建默认服务帐户。让我知道它是否解决了问题。

您是否可以包含用于获取此错误的命令?您是否启用了GCS API?@JoseLuisDelgadillo使用curl更新了描述command@ShawnDiWu是的,它已启用。您的gcloud SDK版本是什么?
curl --request POST \
  'https://iam.googleapis.com/v1/projects/my-little-project/serviceAccounts?key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"accountId":"sa-test","serviceAccount":{"description":"sa-description-test","displayName":"sa-display-testonly"}}' \
  --compressed