Вызов API из проекта Google Cloud

1. Прежде чем начать

В этой лаборатории кода показано, как создать проект Google Cloud, а затем вызвать API Google Cloud из этого проекта.

Предварительные условия

  • Возможность навигации по Google Cloud Console.

Что вы узнаете

  • Как создать проект Google Cloud.
  • Как настроить платежный аккаунт.
  • Как настроить Cloud Shell.
  • Как включить API.
  • Как авторизовать API с помощью ключа API.
  • Как авторизовать API с помощью сервисной учетной записи.

Что вам понадобится

2. Настройте

В этом разделе показано, как создать проект Google Cloud, настроить учетную запись для выставления счетов и настроить Cloud Shell.

Создайте проект Google Cloud и настройте платежный аккаунт.

  1. Войдите в Cloud Console и выберите или создайте проект.

Google Cloud

Новая панель проекта

Панель «Новый проект» с полями «Имя проекта», «Организация» и «Местоположение».

Запомните идентификатор проекта, который отображается в поле «Имя проекта» . Идентификатор — это уникальное имя для всех проектов Google Cloud (имя, указанное выше, уже занято), и далее в этой кодовой лаборатории он упоминается как PROJECT_ID .

  1. Затем включите биллинг в Cloud Console, чтобы использовать ресурсы Google Cloud.

Хотя эта лаборатория кода не должна стоить много, во всяком случае следуйте инструкциям в разделе «Очистка» , чтобы отключить ресурсы и избежать затрат, выходящих за рамки этой лаборатории кода. Обратите внимание, что новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .

Настройте Cloud Shell

В этой лаборатории кода вы используете Cloud Shell — среду командной строки, работающую в Google Cloud. Cloud Shell — это виртуальная машина на базе Debian, оснащенная всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог размером 5 ГБ, что значительно повышает производительность сети и аутентификацию. Это означает, что все, что вам нужно для этой лаборатории кода, — это браузер.

Чтобы активировать Cloud Shell из Cloud Console:

  1. Нажмите a8460e837e9f5fda.png Активируйте Cloud Shell .

Подготовка среды и подключение к ней может занять несколько минут.

Активируйте опцию Cloud Shell.

Cloud Shell показывает приглашение командной строки.

После подключения к Cloud Shell вы увидите, что вы уже прошли аутентификацию и что для проекта уже установлен ваш PROJECT_ID .

  1. Создайте список проверенных учетных записей:
gcloud auth list

Вы должны увидеть этот вывод:

Credentialed accounts:
 - <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
  1. Чтобы просмотреть список ваших проектов, введите эту команду.
gcloud config list project

Вы должны увидеть этот вывод:

[core]
project = <PROJECT_ID>

Если по какой-то причине проект не настроен, запустите эту команду, чтобы настроить проект.

gcloud config set project <PROJECT_ID>

PROJECT_ID — это идентификатор, который вы использовали на этапах настройки. Вы также можете посмотреть его на панели управления Cloud Console:

Панель информации о проекте, показывающая идентификатор проекта.

Cloud Shell также устанавливает некоторые переменные среды по умолчанию, что может быть полезно при выполнении будущих команд.

  1. Чтобы увидеть идентификатор вашего проекта, введите следующую команду.
echo $GOOGLE_CLOUD_PROJECT

Вы должны увидеть следующий вывод:

<PROJECT_ID>
  1. Наконец, установите зону по умолчанию и конфигурацию проекта.
gcloud config set compute/zone us-central1-f

Вы можете выбрать множество различных зон. Дополнительные сведения см. в разделе Регионы и зоны .

3. Вызов API из проекта

В этой лаборатории кода показано, как использовать пример API ( API естественного языка ) для поиска объектов (например, людей, мест и событий) в тексте и как приблизительно определить тональность (уровень предпочтительности) этого текста. Вы узнаете, как:

  • Включите Google Cloud API.
  • Получите авторизацию для API с помощью ключей API и сервисных учетных записей.
  • Вызовите API с помощью curl и клиентских библиотек.

Включить API

  1. Выберите API и сервисы в главном меню Cloud Console.

Главное меню Cloud Console с пунктом «API и службы».

  1. Выберите + ВКЛЮЧИТЬ APIS И СЕРВИСЫ в верхней части экрана.

ВКЛЮЧИТЬ опцию APIS И СЕРВИСОВ.

  1. На этом этапе вы можете фильтровать и просматривать API или перейти непосредственно к API с помощью поля поиска . Найдите Natural Language и выберите Cloud Natural Language API .

Панель Cloud Natural Language API с кнопками ВКЛЮЧИТЬ и ПОПРОБУЙТЕ ЭТОТ API.

  1. Нажмите ПОПРОБУЙТЕ ЭТОТ API .

Если кнопка ПОПРОБУЙТЕ ЭТОТ API не отображается, щелкните один из перечисленных методов, чтобы попробовать этот метод.

Создать ключ API

Поскольку вы используете curl для отправки запроса к API естественного языка, вам необходимо создать ключ API для передачи URL-адреса запроса.

  1. В Cloud Console выберите Меню навигации > API и службы > Учетные данные .

Меню навигации, показывающее параметры API, служб и учетных данных.

  1. Нажмите CREATE CREDENTIALS и затем выберите ключ API :

Панель «Учетные данные», показывающая параметры CREATE CREDENTIALS и API-ключа.

  1. Скопируйте сгенерированный ключ API и нажмите «Закрыть» .

Используйте ключ API для вызова API

  1. В командной строке Cloud Shell экспортируйте ключ API.
export API_KEY=<YOUR_API_KEY>

Замените <YOUR_API_KEY> ключом, который вы сгенерировали ранее.

  1. Создайте запрос API в редакторе Cloud Shell или в редакторе Linux, например Vim или Emacs. Подробную информацию о параметрах можно найти в методе: document.analyzeEntities . Сохраните вывод в файле с именем request.json :
{
  "document":{
    "type":"PLAIN_TEXT",
    "content":"Google, headquartered in Mountain View (1600 Amphitheatre Pkwy, Mountain View, CA 940430), unveiled the new Android phone for $799 at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."
  },
  "encodingType":"UTF8"
}
  1. Вызовите API с информацией запроса.
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json
  1. Повторно запустите команду, перенаправьте вывод в файл и проверьте результат. Подробности вывода файла JSON также приведены в методе: document.analyzeEntities .
  2. Чтобы изменить текст для анализа в файле request.json , замените значение content текстом по вашему выбору.

4. Авторизуйтесь с помощью сервисного аккаунта.

Учетные записи служб часто предпочтительнее ключей API, поскольку они обеспечивают как аутентификацию, так и авторизацию. Вы можете рассматривать учетные записи служб как адреса электронной почты вашего приложения.

  1. Вернитесь в раздел «Учетные данные» меню «API и службы» .
  2. Выберите «Создать учетные данные» , но на этот раз выберите « Учетная запись службы» .

Панель сведений об учетной записи службы.

  1. Укажите имя учетной записи службы , описывающее ее назначение, например « Natural Language Service Account ». Система предлагает идентификатор. Вы также можете добавить описание. По мере того, как вы узнаете больше об учетных записях служб, вы предоставляете учетной записи службы доступ к проектам и предоставляете пользователям доступ к учетной записи службы, но сейчас просто нажмите «Готово», чтобы создать учетную запись службы.
  2. Чтобы создать пару ключей для использования сервисной учетной записью, нажмите d489bd059474ae59.png для редактирования учетной записи службы.

Панель учетных записей служб, показывающая список учетных записей.

Отобразятся сведения о вашей учетной записи службы.

Панель сведений об учетной записи службы, показывающая сведения об учетной записи службы естественного языка.

  1. Скопируйте адрес электронной почты сервисного аккаунта и вернитесь в Cloud Shell.
  2. В Cloud Shell создайте пару ключей для своей сервисной учетной записи и задайте переменную среды, указывающую на нее:
gcloud iam service-accounts keys create ~/key.json \
  --iam-account <your service account email>
export GOOGLE_APPLICATION_CREDENTIALS="/home/$USER/key.json"

Google Cloud использует эту переменную среды для поиска учетных данных, поэтому их не нужно включать в вызов API.

  1. Теперь вы можете вызвать API с помощью команды:
gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'." 

Результат должен быть таким же, как и раньше.

Многие API имеют обширные клиентские библиотеки, из которых можно извлечь эти сведения. Дополнительные сведения о клиентских библиотеках см. в разделе Облачные клиентские библиотеки . Вы также можете прочитать документацию по используемым вами API, чтобы узнать, какие клиентские библиотеки для них доступны.

5. Очистка

Иметь неограниченный ключ API для проектов — плохая практика . Если кто-то получит к нему доступ, этот человек сможет использовать его без дополнительной аутентификации.

Чтобы удалить этот ключ API:

  1. Нажмите f6b6844bf5688982.png Меню навигации > API и услуги > Учетные данные .
  2. В разделе «Ключи API» выберите ключ, который нужно удалить, и нажмите кнопку 247adf2e1d1eae4b.png Удалить .
  3. Аналогичным образом, вместо того, чтобы беспокоиться о том, что закрытый ключ вашей учетной записи службы незащищен, в разделе «Учетные записи служб» выберите учетную запись службы, которую нужно удалить, а затем нажмите 247adf2e1d1eae4b.png Удалить .

6. Поздравления

Поздравляем! Вы узнали, как создать проект Google Cloud и как вызвать API из проекта.