Создавайте дополнения Google Workspace в функциях Cloud Run , используя среду выполнения Node.js.
Цели
- Настройте свою среду.
- Создайте и разверните функцию Cloud Run.
- Создайте и разверните дополнение.
- Установите дополнение.
Предварительные требования
Убедитесь, что вы включили выставление счетов для своего облачного проекта. Узнайте, как проверить статус выставления счетов по вашим проектам .
Cloud SDK настраивается совместно с проектом Cloud.
Настройте свою среду
Откройте свой облачный проект в консоли Google Cloud.
- В консоли Google Cloud перейдите на страницу «Выберите проект» .
- Выберите проект Google Cloud, который хотите использовать. Или нажмите «Создать проект» и следуйте инструкциям на экране. Если вы создаете проект Google Cloud, вам может потребоваться включить оплату для этого проекта .
Настройте экран согласия OAuth.
Для работы дополнений Google Workspace требуется настройка экрана согласия. Настройка экрана согласия OAuth для вашего дополнения определяет, что Google отображает пользователям.
- В консоли Google Cloud перейдите в >Google Auth platform > Брендинг .
- Если вы уже настроили Google Auth platformВы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение, в котором говорится... Google Auth platform Если конфигурация еще не выполнена , нажмите «Начать» :
- В разделе «Информация о приложении» , в поле «Название приложения» , введите название для приложения.
- В разделе «Электронная почта службы поддержки пользователей» выберите адрес электронной почты, по которому пользователи смогут связаться с вами, если у них возникнут вопросы относительно их согласия.
- Нажмите «Далее» .
- В разделе «Аудитория» выберите «Внутренняя» .
- Нажмите «Далее» .
- В поле «Контактная информация» укажите адрес электронной почты , на который вы сможете получать уведомления об изменениях в вашем проекте.
- Нажмите «Далее» .
- В разделе «Завершить» ознакомьтесь с Политикой использования пользовательских данных сервисов Google API и, если вы согласны, выберите «Я согласен с Политикой использования пользовательских данных сервисов Google API» .
- Нажмите «Продолжить» .
- Нажмите «Создать» .
- На данный момент добавление областей действия можно пропустить. В будущем, при создании приложения для использования за пределами вашей организации Google Workspace, необходимо изменить тип пользователя на «Внешний» . Затем добавьте необходимые для вашего приложения области авторизации. Для получения дополнительной информации см. полное руководство по настройке согласия OAuth .
Создайте и разверните функцию Cloud Run.
Нажмите «Авторизовать» , чтобы выполнить инициализацию и подключиться к Cloud Shell.
В терминале Cloud Shell включите API функций Cloud Run, API Cloud Build, API надстроек Google Workspace, API Compute Engine и API Cloud Run:
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com \ run.googleapis.comЗапустите редактор Cloud Shell, щелкнув по нему.
Откройте редактор на панели инструментов окна Cloud Shell.Этот встроенный редактор кода обеспечивает удобство просмотра и редактирования файлов в той же среде, где создаются и развертываются проекты.
В пустой директории создайте файл
function.jsсо следующим примером кода:/** * Cloud Run function that loads the homepage for a * Google Workspace add-on. * * @param {Object} req Request sent from Google * @param {Object} res Response to send back */ exports.loadHomePage = function addonsHomePage (req, res) { res.send(createAction()); }; /** Creates a card with two widgets. */ function createAction() { return { "action": { "navigations": [ { "pushCard": { "header": { "title": "Cats!" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Your random cat:" } }, { "image": { "imageUrl": "https://cataas.com/cat" } } ] } ] } } ] } }; }В той же директории создайте файл
package.jsonсо следующим примером кода:{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }Вернуться в терминал Cloud Shell можно, нажав на соответствующую кнопку.
Откройте терминал .
Добавьте роль
Cloud Build Service Account(roles/cloudbuild.builds.builder) к учетной записи службы Compute Engine по умолчанию.Сначала настройте права доступа для учетной записи службы:
export PROJECT_ID=$(gcloud config get project) export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \ --format="value(defaultServiceAccount)")Далее предоставьте отсутствующей учетной записи службы следующие разрешения:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \ --role="roles/cloudbuild.builds.builder"Для развертывания функции выполните следующую команду:
gcloud run deploy loadHomePage --runtime nodejs22 --trigger-httpЕсли появится запрос, укажите, что вы не разрешаете несанкционированные вызовы функции. Развертывание функции может занять несколько минут.
Создайте дополнительное развертывание.
Найдите адрес электронной почты сервисного аккаунта для дополнения:
gcloud workspace-add-ons get-authorizationПредоставьте учетной записи службы роль
cloudfunctions.invoker. Замените SERVICE_ACCOUNT_EMAIL на полеserviceAccountEmailиз предыдущего шага.gcloud run services add-iam-policy-binding loadHomePage \ --role roles/roles/run.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAILПолучите URL-адрес развернутой функции. Для этого выполните следующую команду и найдите поле
urlв разделеhttpsTrigger:gcloud run services describe loadHomePageВернуться в редактор Cloud Shell можно, нажав...
Открытый редактор .В той же директории, где находится файл
package.json, создайте файлdeployment.jsonсо следующим примером кода. Замените URL наurlразвернутой функции из предыдущего шага.{ "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"], "addOns": { "common": { "name": "My HTTP Add-on", "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png", "homepageTrigger": { "runFunction": "URL" } }, "gmail": {}, "drive": {}, "calendar": {}, "docs": {}, "sheets": {}, "slides": {}, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }Вернитесь в терминал Cloud Shell, чтобы создать развертывание:
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
Установите дополнение.
Установите систему развертывания в режиме разработки:
gcloud workspace-add-ons deployments install quickstartЧтобы увидеть дополнение, откройте или перезагрузите Gmail. На панели инструментов справа найдите значок в виде колбы.
Нажмите на значок, чтобы открыть дополнение. При появлении запроса авторизуйте дополнение.
Необязательно: Уборка
Чтобы избежать списания средств с вашего счета, удалите созданные вами ресурсы:
Удалите дополнение из своего аккаунта Google:
gcloud workspace-add-ons deployments uninstall quickstartЧтобы избежать расходов на ресурсы, использованные в этом кратком руководстве, удалите проект Cloud:
gcloud projects delete PROJECT_IDЗамените PROJECT_ID на идентификатор проекта Cloud, который вы использовали для быстрого запуска. Идентификатор проекта Cloud можно найти в консоли Google Cloud на странице «Панель управления» .
Связанные темы
Чтобы добавить дополнительные функции в ваше дополнение Google Workspace, обратитесь к следующей информации:
- Создайте надстройку для Google Workspace, используя HTTP-конечные точки.
- Codelab: Создайте надстройку для Google Workspace с помощью Node.js и Cloud Run.
- Предварительный просмотр соединений со смарт-чипами