Управляйте проектами с помощью Google Chat, Vertex AI и Firestore.

В этом руководстве показано, как создать приложение Google Chat, которое команда сможет использовать для управления проектами в режиме реального времени. Приложение Chat использует Vertex AI, чтобы помочь командам писать пользовательские истории (которые представляют функции программной системы с точки зрения пользователя, разрабатываемые командой) и сохранять эти истории в базе данных Firestore.

  • Упоминание приложения для управления проектами побуждает приложение предложить помощь.
    Рисунок 1. Чарли обсуждает разработку функций в чате со своей командой. Упоминание приложения чата для управления проектами побуждает приложение чата предложить помощь.
  • Использование команды /createUserStory для создания истории.
    Рисунок 2. Используя команду /createUserStory , Чарли создает историю.
  • Приложение «Чат для управления проектами» использует Vertex AI для написания описания истории.
    Рисунок 3. Приложение «Чат» для управления проектами использует Vertex AI для написания описания истории, а затем делится ею в пространстве.
  • Чарли дорабатывает детали истории.
    Рисунок 4. Чарли нажимает кнопку «Изменить» , чтобы завершить детализацию истории. Описание ИИ точное, но Чарли хочет больше подробностей, поэтому он нажимает кнопку «Развернуть» , чтобы Vertex AI добавил требования к описанию истории. Чарли назначает историю себе, устанавливает статус «Начато», выбирает подходящий приоритет и размер, а затем нажимает кнопку « Сохранить» .
  • Управление всеми пользовательскими историями команды.
    Рисунок 5. В любой момент Чарли может просматривать и управлять всеми пользовательскими историями команды с помощью команды /manageUserStories .

Предпосылки

Цели

  • Создайте чат-приложение для управления гибкими программными проектами.
  • Помогите пользователям писать истории с помощью генеративных инструментов написания историй на основе искусственного интеллекта на базе Vertex AI:
    • Создавайте и пересоздавайте описания историй.
    • Расширьте описания историй от примечаний до полных требований.
    • Исправьте грамматику, чтобы исправить опечатки.
  • Поддерживайте актуальность работы, записывая данные в базу данных Firestore и считывая их из нее.
  • Облегчите совместную работу в чате, предоставив пользователям возможность создавать, редактировать, назначать и начинать истории непосредственно из беседы.

Использованные продукты

Приложение для управления проектами использует следующие продукты Google Workspace и Google Cloud:

  • API чата : API для разработки приложений Google Chat, которые получают и реагируют на события взаимодействия в чате, например, сообщения. Приложение Google Chat для управления проектами использует API чата для получения и реагирования на события взаимодействия, отправляемые чатом, а также для настройки атрибутов, определяющих его внешний вид в чате, таких как имя и аватар.
  • API Vertex AI : платформа для генеративного ИИ. Приложение Google Chat для управления проектами использует API Vertex AI для создания заголовков и описаний пользовательских историй.
  • Firestore : бессерверная база данных документов. Приложение Google Chat для управления проектами использует Firebase для хранения данных о пользовательских историях.
  • Cloud Functions : лёгкий бессерверный вычислительный сервис, позволяющий создавать специализированные автономные функции, реагирующие на события взаимодействия в чате, без необходимости управления сервером или средой выполнения. Приложение Google Chat для управления проектами использует Cloud Functions для размещения конечной точки HTTP, куда Chat отправляет события взаимодействия, а также в качестве вычислительной платформы для запуска логики, обрабатывающей эти события и реагирующей на них.

    Cloud Functions использует следующие продукты Google Cloud для создания, обработки событий взаимодействия и размещения вычислительных ресурсов:

    • Cloud Build : полностью управляемая платформа непрерывной интеграции, доставки и развертывания, которая выполняет автоматизированные сборки.
    • Pub/Sub : асинхронная и масштабируемая служба обмена сообщениями, которая разделяет службы, создающие сообщения, и службы, обрабатывающие эти сообщения.
    • Cloud Run Admin API : полностью управляемая среда для запуска контейнерных приложений.

Архитектура

Архитектура приложения Google Chat для управления проектами принимает и обрабатывает события взаимодействия в чате через конечную точку HTTP, использует Vertex AI для написания пользовательских историй и сохраняет информацию о них в базе данных Firestore. На следующей диаграмме показана архитектура используемых ресурсов Google Workspace и Google Cloud.

Архитектурная схема приложения Google Chat для управления проектами

Приложение Google Chat для управления проектами работает следующим образом:

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

  2. Чат отправляет синхронный HTTP-запрос на конечную точку HTTP облачной функции.

  3. Приложение Google Chat для управления проектами обрабатывает HTTP-запрос:

    1. Vertex AI помогает писать или обновлять пользовательскую историю.

    2. База данных Firestore хранит, извлекает, обновляет или удаляет данные пользовательских историй.

  4. Cloud Functions возвращает HTTP-ответ в Chat, который отображает его пользователю в виде сообщения или диалога.

Подготовьте окружающую среду

В этом разделе показано, как создать и настроить проект Google Cloud для приложения Chat.

Создайте проект Google Cloud

Консоль Google Cloud

  1. В консоли Google Cloud перейдите в > IAM и администрирование > Создать проект .

    Перейти к созданию проекта

  2. В поле «Название проекта» введите описательное название вашего проекта.

    Необязательно: чтобы изменить идентификатор проекта , нажмите «Изменить» . Идентификатор проекта нельзя изменить после его создания, поэтому выберите идентификатор, который будет соответствовать вашим потребностям на протяжении всего жизненного цикла проекта.

  3. В поле «Местоположение» нажмите «Обзор» , чтобы отобразить возможные местоположения для вашего проекта. Затем нажмите « Выбрать» .
  4. Нажмите «Создать» . Консоль Google Cloud перейдет на страницу панели управления, и ваш проект будет создан в течение нескольких минут.

gcloud CLI

В одной из следующих сред разработки получите доступ к Google Cloud CLI ( gcloud ):

  • Cloud Shell : чтобы использовать онлайн-терминал с уже настроенным интерфейсом командной строки gcloud, активируйте Cloud Shell.
    Активировать Cloud Shell
  • Локальная оболочка : чтобы использовать локальную среду разработки, установите и инициализируйте gcloud CLI.
    Чтобы создать облачный проект, используйте команду gcloud projects create :
    gcloud projects create PROJECT_ID
    Замените PROJECT_ID , указав идентификатор проекта, который вы хотите создать.

Включить выставление счетов для облачного проекта

Консоль Google Cloud

  1. В консоли Google Cloud перейдите в раздел «Оплата» . Нажмите «Меню» « Оплата» > «Мои проекты» .

    Перейти к выставлению счетов за мои проекты

  2. В разделе Выберите организацию выберите организацию, связанную с вашим проектом Google Cloud.
  3. В строке проекта откройте меню Действия ( ), нажмите Изменить выставление счетов и выберите учетную запись Cloud Billing.
  4. Нажмите «Настроить учетную запись» .

gcloud CLI

  1. Чтобы вывести список доступных платежных аккаунтов, выполните:
    gcloud billing accounts list
  2. Свяжите платежный аккаунт с проектом Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Заменить следующее:

    • PROJECT_ID — это идентификатор облачного проекта, для которого вы хотите включить выставление счетов.
    • BILLING_ACCOUNT_IDидентификатор платежного аккаунта для связи с проектом Google Cloud.

Включить API

Консоль Google Cloud

  1. В консоли Google Cloud включите API Google Chat, API Vertex AI, API Cloud Functions, API Firestore, API Cloud Build, API Pub/Sub и API Cloud Run Admin.

    Включить API

  2. Подтвердите, что вы включаете API в правильном облачном проекте, затем нажмите Далее .

  3. Подтвердите, что вы включаете правильные API, затем нажмите Включить .

gcloud CLI

  1. При необходимости установите текущий проект Cloud на тот, который вы создали с помощью команды gcloud config set project :

    gcloud config set project PROJECT_ID

    Замените PROJECT_ID на идентификатор созданного вами облачного проекта.

  2. Включите API Google Chat, API Vertex AI, API Cloud Functions, API Firestore, API Cloud Build, API Pub/Sub и API Cloud Run Admin с помощью команды gcloud services enable :

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    run.googleapis.com

    API-интерфейсы Cloud Build, Pub/Sub и Cloud Run Admin являются необходимыми условиями для работы Cloud Functions.

Аутентификация и авторизация

Для выполнения этого руководства не требуется настройка аутентификации и авторизации.

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

Создайте и разверните приложение Google Chat

Теперь, когда ваш проект Google Cloud создан и настроен, вы готовы к сборке и развертыванию приложения Google Chat. В этом разделе вы выполните следующие действия:

  1. Создайте базу данных Firestore, в которой будут сохраняться и извлекаться истории пользователей.
  2. При желании просмотрите пример кода.
  3. Создайте облачную функцию для размещения и запуска кода приложения чата в ответ на события, полученные от чата в виде HTTP-запросов.
  4. Создайте и разверните приложение Google Chat на странице конфигурации API Google Chat.

Создать базу данных Firestore

В этом разделе мы создадим базу данных Firestore для хранения и извлечения пользовательских историй, но не определим модель данных. Модель данных неявно задаётся в примере кода файлами model/user-story.js и model/user.js .

База данных приложения «Чат для управления проектами» использует модель данных NoSQL, основанную на документах , организованных в коллекции . Подробнее см. в разделе «Модель данных Firestore» .

На следующей диаграмме представлен обзор модели данных приложения Google Chat для управления проектами:

Модель данных базы данных Firestore.

Корневая коллекция — это spaces , где каждый документ представляет пространство, в котором приложение Chat создало истории. Каждая пользовательская история представлена ​​документом в подколлекции userStories , а каждый пользователь представлен документом в подколлекции users .

Просмотр коллекций, документов и определений полей

spaces

Пространства, в которых приложение Chat создает истории.

Поля
Document ID String
Уникальный идентификатор конкретного пространства, где создаются истории. Соответствует названию ресурса пространства в Chat API.
userStories Subcollection of Documents ( userStories )
Истории, созданные приложением Chat и его пользователями. Соответствует Document ID userStories в Firebase.
users Subcollection of Documents ( user )
Пользователи, которые создали или которым назначены истории.
displayName String
Отображаемое имя чат-пространства в API чата. Не устанавливается для прямых сообщений пользователям.

userStories

Истории, созданные приложением Chat и его пользователями.

Поля
Document ID String
Уникальный идентификатор конкретной пользовательской истории, созданной приложением Chat и его пользователями.
assignee Document ( user )
Имя ресурса пользователя, назначенного для завершения истории. Соответствует Document ID документа users и имени ресурса пользователя в Chat API.
description String
Описание функций программного обеспечения с точки зрения пользователя.
priority Enum
Срочность выполнения работы. Возможные значения: Low , Medium или High .
size Enum
Объём работы. Возможные значения: Small , Medium или Large .
status Enum
Фаза работы. Возможные значения: OPEN , STARTED или COMPLETED .
title String
Название рассказа; краткое содержание.

users

Пользователи, которые создали или которым назначены истории.

Поля
Document ID String
Уникальный идентификатор конкретного пользователя. Соответствует assignee userStories в Firebase и имени ресурса пользователя в Chat API.
avatarUrl String
URL-адрес, на котором размещено изображение аватара пользователя в чате.
displayName String
Отображаемое имя пользователя в чате.

Вот как создать базу данных Firestore:

Консоль Google Cloud

  1. В консоли Google Cloud перейдите в раздел Firestore. Нажмите « Меню > «Firestore» .

    Перейти в Firestore

  2. Нажмите Создать базу данных .

  3. В разделе «Выберите режим Firestore» нажмите «Основной режим» .

  4. Нажмите «Продолжить» .

  5. Настройте базу данных:

    1. В поле Имя базы данных оставьте идентификатор базы данных (default) .

    2. В поле «Тип местоположения » укажите регион для базы данных, например, us-central1 . Для оптимальной производительности выберите то же или близлежащее местоположение, что и облачная функция приложения «Чат».

  6. Нажмите Создать базу данных .

gcloud CLI

  • Создайте базу данных Firestore в собственном режиме с помощью команды gcloud firestore databases create :

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    Замените LOCATION на имя региона Firestore , например us-central1 .

Ознакомьтесь с примером кода

При желании перед созданием облачной функции выделите немного времени на просмотр и ознакомление с примером кода, размещенным на GitHub.

Посмотреть на GitHub

Вот обзор каждого файла:

env.js
Переменные конфигурации среды для развертывания приложения Chat в указанном проекте Google Cloud и регионе. Необходимо обновить переменные конфигурации в этом файле.
package.json и package-lock.json
Настройки и зависимости проекта Node.js.
index.js
Точка входа для облачной функции приложения «Чат». Она считывает событие «Чат» из HTTP-запроса, вызывает обработчик приложения и публикует HTTP-ответ в виде JSON-объекта.
controllers/app.js
Основная логика приложения. Обрабатывает события взаимодействия , обрабатывая упоминания в приложении чата и команды слэша. Для реагирования на нажатия карточек вызывается app-action-handler.js .
controllers/app-action-handler.js
Логика приложения для обработки событий взаимодействия чата с нажатием карты.
services/space-service.js , services/user-service.js и services/user-story-service.js
Эти файлы содержат части логики приложения, специфичные для работы с чат-группами, пользователями и пользовательскими историями. Функции в этих файлах вызываются из app.js или app-action-handler.js . Для выполнения операций с базой данных функции в этих файлах вызывают функции из firestore-service.js .
services/firestore-service.js
Обрабатывает операции с базой данных. Функции в этом файле вызываются файлами services/space-service.js , services/user-service.js и services/user-story-service.js .
services/aip-service.js
Вызывает API Vertex AI для генеративного прогнозирования текста с помощью ИИ.
model/*.js
Эти файлы содержат определения классов и перечислений, которые службы приложения используют для хранения и передачи данных между функциями. Они задают модель данных для базы данных Firestore.
views/*.js
Каждый файл в этом каталоге создает экземпляр объекта карточки , который приложение Chat затем отправляет обратно в Chat в виде сообщения карточки или ответа на действие диалога .
views/widgets/*.js
Каждый файл создает экземпляр типа виджетного объекта, который приложение использует для создания карточек в каталоге views/ .
test/**/*.test.js
Каждый файл в этом каталоге и его подкаталогах содержит модульные тесты для соответствующей функции, контроллера, сервиса, представления или виджета. Вы можете выполнить все модульные тесты, выполнив npm run test в корневом каталоге проекта.

Создание и развертывание облачной функции

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

Функция Cloud Function запускается в ответ на HTTP-запрос от Chat, содержащий событие взаимодействия с Chat. При запуске код функции Cloud Function обрабатывает событие и возвращает ответ Chat, который Chat отображает в виде сообщения, диалога или другого типа взаимодействия с пользователем. При необходимости функция Cloud Function также считывает данные из базы данных Firestore или записывает их в неё.

Вот как создать облачную функцию:

Консоль Google Cloud

  1. Загрузите код с GitHub в виде zip-файла.

    Загрузить zip-файл

  2. Распакуйте загруженный zip-файл.

    Извлеченная папка содержит весь репозиторий примеров Google Workspace.

  3. В извлеченной папке перейдите к google-chat-samples-main/node/project-management-app/ , затем сожмите папку project-management-app в zip-файл.

    Корневой каталог zip-файла должен содержать следующие файлы и папки:

    • env.js
    • README.md
    • gcloudignore.text
    • package-lock.json
    • package.json
    • index.js
    • model/
    • controllers/
    • views/
    • services/
  4. В консоли Google Cloud перейдите на страницу Cloud Functions:

    Перейти к облачным функциям

    Убедитесь, что выбран проект Google Cloud для вашего приложения Chat.

  5. Нажмите Создать функцию .

  6. На странице «Создать функцию» настройте свою функцию:

    1. В разделе Окружающая среда выберите Функция запуска облака .
    2. В поле Имя функции введите project-management-tutorial .
    3. В разделе Регион выберите регион.
    4. В разделе «Аутентификация» выберите Разрешить неаутентифицированные вызовы .
    5. Нажмите «Далее» .
  7. В Runtime выберите Node.js 20 .

  8. В поле «Точка входа » удалите текст по умолчанию и введите projectManagementChatApp .

  9. В Исходном коде выберите Загрузка Zip .

  10. В поле «Целевой контейнер» создайте или выберите контейнер:

    1. Нажмите кнопку «Обзор» .
    2. Выберите ведро.
    3. Нажмите Выбрать .

    Google Cloud загружает ZIP-архив в этот контейнер и извлекает из него файлы компонентов. Затем Cloud Functions копирует файлы компонентов в Cloud Function.

  11. В Zip file загрузите zip-файл, который вы скачали с GitHub, распаковали и повторно сжали:

    1. Нажмите кнопку «Обзор» .
    2. Перейдите к zip-файлу и выберите его.
    3. Нажмите «Открыть» .
  12. Нажмите Развернуть .

    Откроется страница сведений о функциях Cloud Functions , на которой ваша функция будет отображаться с двумя индикаторами выполнения: один для сборки, а другой для сервиса. Когда оба индикатора выполнения исчезнут и вместо них появится галочка, ваша функция будет развернута и готова к работе.

  13. Отредактируйте пример кода, чтобы задать константы:

    1. На странице сведений о функции облака нажмите кнопку Изменить .
    2. Нажмите «Далее» .
    3. В Исходном коде выберите Встроенный редактор .
    4. Во встроенном редакторе откройте файл env.js
    5. Замените project-id на идентификатор вашего облачного проекта.
    6. Необязательно: обновите us-central1 , указав поддерживаемое местоположение для вашей облачной функции.
  14. Нажмите Развернуть .

  15. После завершения развертывания функции скопируйте URL-адрес триггера:

    1. На странице сведений о функции нажмите Триггер .
    2. Скопируйте URL-адрес. Он понадобится вам для настройки приложения «Чат» в следующем разделе.

gcloud CLI

  1. Клонируйте код с GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Перейдите в каталог, в котором находится код этого приложения чата для управления проектами:

    cd google-chat-samples/node/project-management-app
  3. Отредактируйте файл env.js , чтобы задать переменные среды:

    1. Замените project-id на идентификатор вашего проекта Google Cloud.
    2. Замените us-central1 на местоположение вашего проекта Google Cloud.
  4. Развертывание облачной функции в Google Cloud:

    gcloud functions deploy project-management-tutorial \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=projectManagementChatApp \
    --trigger-http \
    --allow-unauthenticated

    Замените REGION на местоположение облачной функции , где размещена ее инфраструктура, например, us-central1 .

  1. После завершения развёртывания функции скопируйте свойство url из ответа. Это URL-адрес триггера, который вы будете использовать в следующем разделе для настройки приложения Google Chat.

Настройте приложение Google Chat в консоли Google Cloud

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

  1. В консоли Google Cloud выберите Меню Дополнительные продукты > Google Workspace > Библиотека продуктов > Google Chat API > Управление > Конфигурация .

    Перейти к настройке API чата

  2. В поле Имя приложения введите Project Manager .

  3. В поле URL аватара введите https://developers.google.com/chat/images/quickstart-app-avatar.png .

  4. В поле Описание введите Manages projects with user stories.

  5. Установите переключатель «Включить интерактивные функции» в положение «Вкл.».

  6. В разделе «Функциональность» выберите Присоединяйтесь к пространствам и групповым беседам .

  7. В разделе «Параметры подключения» выберите URL-адрес конечной точки HTTP .

  8. В поле URL конечной точки HTTP вставьте URL-адрес триггера, скопированный из развёртывания Cloud Functions, в формате https:// REGION - PROJECT_ID .cloudfunctions.net/project-management-tutorial . Если вы развернули Cloud Function с помощью интерфейса командной строки gcloud, это свойство url .

  9. Зарегистрируйте слэш-команды в приложении «Чат». Чтобы зарегистрировать слэш-команду:

    1. В разделе «Команды» нажмите «Добавить команду» .
    2. Для каждой команды с косой чертой, описанной в следующей таблице, введите Имя , Идентификатор команды , Описание и выберите, будет ли команда с косой чертой открывать диалоговое окно , затем нажмите Готово :

      Имя Идентификатор команды Описание Тип команды Имя команды слэш Открывает диалоговое окно
      Создайте историю пользователя 1 Создайте историю с указанным заголовком. Команда «слэш» /createUserStory Не выбрано
      Мои истории пользователей 2 Перечисляет все истории, назначенные пользователю. Команда «слэш» /myUserStories Не выбрано
      История пользователя 3 Отображает текущий статус указанной истории. Команда «слэш» /userStory Не выбрано
      Управление историями пользователей 4 Открывает диалоговое окно, в котором можно редактировать истории. Команда «слэш» /manageUserStories Выбранный
      Очистка пользовательских историй 5 Удаляет все истории в разделе. Команда «слэш» /cleanupUserStories Не выбрано
  10. В разделе «Видимость» выберите «Сделать это приложение чата доступным для определенных людей и групп в вашем домене Workspace» и введите свой адрес электронной почты.

  11. При желании в разделе Журналы выберите Записывать ошибки в Журнал .

  12. Нажмите «Сохранить» . Появится сообщение о сохранении конфигурации, означающее, что приложение чата готово к тестированию.

Протестируйте приложение чата

Протестируйте приложение чата для управления проектами, отправив ему сообщение и используя его слэш-команды для создания, редактирования и удаления пользовательских историй.

  1. Откройте Google Chat, используя учетную запись Google Workspace, которую вы указали при добавлении себя в качестве доверенного тестировщика.

    Перейти в Google Чат

  2. Нажмите новый чат» .
  3. В поле Добавить 1 или более человек введите название вашего чат-приложения.
  4. Выберите приложение чата из результатов. Откроется личное сообщение.

  5. В новом личном сообщении с приложением введите Hello и нажмите enter . Приложение чата для управления проектами ответит меню с подробным описанием своих возможностей.
  6. Чтобы создать историю, введите /createUserStory Test story в строке сообщений и отправьте её. Приложение чата для управления проектами ответит карточкой с подробным описанием истории пользователя, созданной для вас с помощью генеративного ИИ от Vertex AI.
  7. В консоли проверьте базу данных Firestore, чтобы просмотреть созданные ею записи о пространстве, в которое вы добавили приложение Chat, о пользователях, которые с ним взаимодействовали, и о созданной вами пользовательской истории.

    Перейти в Firestore

  8. Вернуться в Google Чат.

    Перейти в Google Чат

  9. При желании вы можете отредактировать историю, нажав «Изменить» . Когда будете довольны результатом, нажмите «Сохранить» .
  10. Проверьте все слэш-команды, поддерживаемые приложением. Чтобы увидеть их, введите / или упомяните приложение Chat.
  11. Удалите тестовую пользовательскую историю, выполнив команду /cleanupUserStories . Также можно удалить приложение . При удалении приложение удалит все пользовательские истории, созданные в этой области.

Устранение неполадок

Когда приложение или карточка Google Chat возвращает ошибку, в интерфейсе Chat отображается сообщение «Что-то пошло не так» или «Не удалось обработать ваш запрос». Иногда в интерфейсе Chat не отображается сообщение об ошибке, но приложение или карточка Chat выдаёт неожиданный результат; например, сообщение может не появиться.

Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, при включенном ведении журнала ошибок для приложений чата доступны описательные сообщения об ошибках и данные журнала, которые помогут вам исправить ошибки. Сведения о просмотре, отладке и исправлении ошибок см. в статье «Устранение неполадок и исправление ошибок Google Chat» .

Уборка

Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, используемые в этом руководстве, мы рекомендуем вам удалить проект Cloud.

  1. В консоли Google Cloud перейдите на страницу «Управление ресурсами» . Выберите « Меню > «IAM и администрирование» > «Управление ресурсами» .

    Перейти к диспетчеру ресурсов

  2. В списке проектов выберите проект .
  3. В диалоговом окне введите идентификатор проекта, а затем нажмите кнопку «Завершить» , чтобы удалить проект.