#google-cloud-platform #google-cloud-functions #actions-on-google #fulfillment
#google-cloud-platform #google-cloud-функции #действия в Google #выполнение
Вопрос:
Я хотел создать Google assistant с пользовательскими действиями, используя actions-sdk. Поскольку я новичок в этом, я выполнил шаги в руководстве «Создание действий для Google Assistant с использованием Actions SDK (уровень 1)» как есть, чтобы создать образец помощника. Я следовал руководству как есть. Однако на шаге 5 (Выполнение реализации) при попытке проверить выполнение, выполнив команду
gactions deploy preview
Я получаю следующий вывод в терминале с ошибкой
Sending configuration files...
Sending resources...
Waiting for server to respond. It could take up to 1 minute if your cloud function needs to be redeployed.
[ERROR] Server did not return HTTP 200.
{
"error": {
"code": 400,
"message": "Asset 'webhooks/ActionsOnGoogleFulfillment' cannot be deployed. [An operation on function cf-_CcGD8lKs_F_LHmFYfJZsQ-name in region us-central1 in project <my-project-id> is already in progress. Please try again later.]"
}
}
И когда я проверил «Облачную платформу Google -> Консоль облачных функций» для этого проекта, видно следующее.
Изображение 1 (скриншот) Консоль облачных функций облачной платформы
Неудачное развертывание облачной функции с восклицательным знаком. И если я удалю эти функции, то сразу же автоматически будет развернута новая функция. Но вместо восклицательного знака присутствует символ вращающегося колеса (загрузка / все еще развертывание). Я не могу удалить эту облачную функцию, если она все еще загружается / развертывается. Затем через 10-15 минут вращающийся символ меняется на символ восклицания. А затем, если я его удалю, снова автоматически появится новый. И это продолжается так
Изображение 2 (скриншот) Облачная платформа Облачная функциональная консоль
Эта проблема возникает только при реализации webhook / выполнения (шаг 5). Для ответа на статические действия он успешно развертывается для тестирования при вводе команды «gactions deploy preview».(С шага 1 по шаг 4 успешно реализованы)
Я следовал руководству как есть, поэтому структура кода и каталогов такая же, как в руководстве (только идентификатор проекта или имя проекта actions-console будут отличаться).
Поскольку это только для руководства, в настоящее время я не использую учетную запись для выставления счетов, вместо этого я внес следующие изменения в package.json (изменил версию узла с 10 на 8.).
"engines": {
"node": "8"
},
Из-за этого непрерывного автоматического неудачного развертывания, когда я пытаюсь явно развернуть проект, как упоминалось выше, возникает эта ошибка.
"An operation on function cf-_CcGD8lKs_F_LHmFYfJZsQ-name in region us-central1 in project <my-project-id> is already in progress. Please try again later".
Может кто-нибудь, пожалуйста, подсказать, как остановить это непрерывное автоматическое неудачное развертывание облачных функций, чтобы функция, которую я развертываю, была успешно развернута? Был бы очень признателен за вашу помощь.
(Примечание: это первый раз, когда я публикую вопрос в stack overflow, поэтому, пожалуйста, дайте мне знать, если есть какие-либо ошибки или соглашения о вопросах переполнения стека, которые я, возможно, не соблюдал. Я улучшу его.)
Комментарии:
1. Вы «связали платежную учетную запись» на этапе «Настройки»?
2. Нет, в настоящее время я не использую учетную запись для выставления счетов, я изменил версию узла на «8» в package.json, что позволяет использовать облачные функции без выставления счетов на данный момент. Изменив узел на 8, прежде чем я смог использовать облачные функции для простых веб-хуков.
3. Проблема связана с учетной записью для выставления счетов? Потому что раньше, для другого примера, который я пытался, он работал нормально без платежной учетной записи. Единственное отличие состояло в том, что тогда webhook был написан на typescript (index.ts), который работал, а теперь он написан на javascript (index.js ), который не работает.
4. Привет @anonymous_D да, учетная запись для выставления счетов может быть причиной проблемы, поскольку в руководстве упоминается indeed. Хотя на самом деле Node.js 10 требуется выставление счетов, в этом руководстве не упоминается о необходимости Node.js версия 10, но да, платежная учетная запись. Не могли бы вы связать его и проверить, работает ли он? Хотя это работало для ваших простых веб-хуков, это не простые веб-хуки в конце руководства.
5. IIRC, невозможно развернуть облачные функции (webhooks) без учетной записи для выставления счетов. Кроме того, когда я создавал проекты через консоль действий, мне также приходилось вручную включать службу облачной сборки, прежде чем развертывание будет успешным.
Ответ №1:
Публикуем это как Вики сообщества, как это указано в комментариях.
Как уточняется, проблема, по-видимому, связана с учетной записью для выставления счетов, поскольку в руководстве упоминается, что для правильного развертывания облачных функций необходимо иметь один набор. Кроме того, невозможно развернуть облачные функции (webhooks) без учетной записи для выставления счетов, так что да, даже если вы не используете Node.js 10, вам необходимо будет настроить платежную учетную запись для вашего проекта.
Подводя итог, учетная запись для выставления счетов потребуется, чтобы избежать возможного сбоя развертывания, даже если вы не используете Node.js 10, как объяснено в следующем руководстве.