Я только начал получать сообщение об ошибке при попытке развернуть функцию HTTP в облаке Google, используя:
gcloud functions deploy http_function --trigger-http
И теперь я получаю такую ошибку:
ERROR: (gcloud.functions.deploy) ResponseError: status=[400], code=[Bad Request], message=[The request has errors
Problems:
The updateMask field contains event_trigger but it is not present in CloudFunction resource.
]
Функция успешно развернулась раньше, и я только возился с некоторым кодом внутри, ничего, что, как я считаю, не должно вызывать у меня эту ошибку.
Моя облачная функция выглядит так:
exports.http_function = (req, res) => {
if (req.method === 'POST') {
// some code and then
res.json(jsonVariable);
} else {
const error = new Error('Only POST requests are accepted');
error.code = 405;
console.error(error);
res.status(error.code || 500).send(error);
throw error;
}
}
Если у кого-то есть представление о том, что может вызвать эту ошибку, я был бы очень признателен, потому что я изо всех сил пытаюсь найти информацию об этом?
Обновлено: Это только иногда случается, поэтому теперь я определенно считаю, что с gcloud что-то не так.
Это происходит часто, в настоящее время я не могу заставить его работать ни разу. Да, я разрабатываю локально и использую последнюю версию gcloud. Я думаю, вы правы, удаление функции из облачной консоли и последующее повторное развертывание выполняет свою работу, но даже тогда, после первого успешного развертывания, следующее развертывание (точно такая же функция) дает ту же ошибку.
Та же ошибка с одной из моих облачных функций, которую я раньше успешно развертывал из локального кода. Две другие функции (тот же код, отличающиеся только по имени функции) в одном проекте GCP успешно развертываются с использованием одной и той же команды gcloud. Версия gcloud - 215.0.0, а --log-http только показывают, что запрос PATCH не удался с "code": 400, "status": "INVALID_ARGUMENT","details": [{"@type":"type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [{"field": "updateMask", "description": "The updateMask field contains event_trigger but it is not present in CloudFunction resource."}]}]
Для справки: выпуск открыт в общедоступном трекере проблем.
Спасибо за продолжение и ошибку в системе отслеживания проблем. Я собираюсь связаться с некоторыми людьми внутри компании.
OK. Это ошибка. Это было вызвано недавним обновлением. Сейчас выполняется откат, который должен решить эту проблему.
И TIL: повторный запуск gcloud functions deploy...без с указанием --source выполняет повторное развертывание кода нет. Вы должны указать источник для отмены развертывания локально измененных файлов: «Если исходное местоположение не задано явно, новые функции будут развертываться из текущего каталога. Существующие функции сохранят свой старый источник».





Я получаю то же самое, когда пытаюсь развернуть функцию, запускаемую pubsub, ошибка возникает при каждой второй попытке. Я просто повторно выполняю команду CLI, и она работает.
Ошибка исправлена, см .: https://status.cloud.google.com/incident/cloud-functions/18002
"Проблема с Google Cloud Functions, из-за которой возникают ошибки при обновлении функций через gcloud, была решена для всех затронутых пользователей по состоянию на вторник, 11 сентября 2018 г., 09:10 США / Тихоокеанский регион. Мы проведем внутреннее расследование этой проблемы и внесем соответствующие улучшения. в наши системы, чтобы помочь предотвратить или свести к минимуму повторение в будущем ".
Это продолжает происходить? Ошибка должна возникнуть только в том случае, если вы случайно попытаетесь обновить существующую функцию, запускаемую HTTP, с помощью команды для другого типа функции. Это маловероятно, если вы повторяете ту же команду, которую показываете. Правильно ли я предполагаю, что вы разрабатываете локально, а затем выполняете эту команду? Когда это не удается, вы пытаетесь снова, и тогда это удается? Я вынужден подтвердить, что вы используете последнюю версию
gcloud? Вы можете попробовать добавить--log-httpк команде для захвата базовых HTTP-запросов (и, возможно, ошибок).