ОШИБКА: (gcloud.auth.activate-service-account) Не удалось активировать данную учетную запись службы. Убедитесь, что предоставленный ключевой файл действителен

Я пытаюсь следовать этому руководству https://cloud.google.com/speech/docs/getting-started, чтобы вызвать речь GAE в текстовое API через curl. Но похоже, что это не работает.

Я настроил проект и включил преобразование речи в текст API. Но затем, когда я пытаюсь активировать учетную запись службы, это не удается. Я проводил диагностику, пробовал разные учетные записи, проверял файл json (есть адрес электронной почты), пробовал gcloud beta init :-(

bash-3.2 $ gcloud auth activate-service-account [email protected] --key-file = project.json ОШИБКА: (gcloud.auth.activate-service-account) Не удалось активировать данную учетную запись службы. Убедитесь, что предоставленный ключевой файл действителен.

На следующем шаге gcloud auth print-access-token возвращает токен.

Но последний шаг (curl) возвращает это -

{"error": {"code": 403, "message": "Google Cloud Speech API ранее не использовался в проекте google.com:cloudsdktool или отключен. Включите его, посетив https://console.developers.google.com/apis/api/speech.googleapis.com/overview?project=google.com:cloudsdktool, затем повторите попытку. Если вы недавно включили этот API, подождите несколько минут, чтобы действие распространялось на наши системы, и повторите попытку. "," status ":" PERMISSION_DENIED "," details ": [{" @type ":" type.googleapis.com/google.rpc.Help "," links ": [{" description ":" Активация API консоли разработчика Google "," url ":" https://console.developers.google.com/apis/api/speech.googleapis.com/overview?project=google.com:cloudsdktool "}]}]}}

Проблема, похоже, кроется в проекте (google.com:cloudsdktool вместо моего), используемом для аутентификации входящего запроса.

Я предполагаю, что это вызвано вызовом активации учетной записи службы?


person user1010373    schedule 25.03.2017    source источник
comment
Сообщить об ошибке здесь? Issuetracker.google.com/issues/   -  person Zachary Newman    schedule 27.03.2017


Ответы (1)


Вы получаете сообщение об ошибке для проекта google.com:cloudsdktool, потому что команда, которую вы выполнили с curl gcloud auth print-access-token, использовала учетные данные вашей учетной записи (созданные gcloud auth login), а не служебную учетную запись (как вы указываете, этот шаг для вас не удался).

для активации учетной записи службы верна (кстати, вы не нужно предоставлять учетную запись, так как будет использоваться одна из файлов)

$ gcloud auth activate-service-account --key-file=project.json

Убедитесь, что ваш project.json - это правильный файл в правильном формате. Вы можете создать этот ключевой файл json либо в

  1. в https://console.cloud.google.com/iam-admin/serviceaccounts/project?project=YOUR_PROJECT_NAME
  2. gcloud iam service-accounts keys create, см. справочное руководство.

Файл будет выглядеть как

{
  "private_key_id": "....",
  "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n",
  "client_email": "...",
  "client_id": "...",
  "type": "service_account"
}

Обратите внимание, что client_email будет использоваться для ACCOUNT в команде activate-service-account.

person cherba    schedule 27.03.2017