Запуск облачной функции при обновлении до объекта - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть тестовая функция облака (CF), которая запускается при обновлении объекта в облачном хранилище.

exports.test_cf = (event, callback) => {
    console.log("Test CF executed successfully");
    callback();
}

Развертывание вышеуказанной функции с использованием:

gcloud functions deploy --runtime nodejs6 --trigger-resource [BUCKET-NAME] --trigger-event google.storage.object.archive --timeout=540s --verbosity=info

После настройки управления версиями в корзине я копирую файл в корзину с помощью gsutil следующим образом:

gsutil cp <file> gs://[BUCKET-NAME]/

Выше команды срабатывает CF.Это почему?Согласно документации GCP, google.storage.archive запускает CF только при обновлениях.

Другой вопрос: Как обновить объекты в корзинах, используя gsutil?Я вижу gsutil rewrite, но это не то же самое, что обновление.

1 Ответ

0 голосов
/ 26 февраля 2019

Выше команды срабатывает CF.Это почему?

Вы включили управление версиями корзины, а затем использовали команду gsutil для копирования файла в корзину.Это сделало живую копию файла доступной в корзине и создало ее архивную версию, для получения дополнительной информации вы можете посетить документацию Object Versioning .Вы можете проверить это, выполнив команду gsutil ls -a gs://[BUCKET_NAME], для получения дополнительной информации вы можете посетить документацию Использование версий объектов> Список версий заархивированных объектов .Таким образом, используя -trigger-event google.storage.object.archive, как вы использовали, он запустит облачную функцию, как указано в Триггеры облачного хранилища Google> Архив объектов , "This event is sent when a live version of an object is archived or deleted.".

Другойвопрос: как обновить объекты в корзинах с помощью gsutil?

Если вы хотите обновить метаданные объекта, вы можете посетить ссылку документации Objects: update для получения дополнительной информации.Однако, если вы хотите обновить объект самостоятельно, вы можете просто загрузить новую версию объекта либо из Google Cloud Console, либо с помощью команды gsutil cp ..., как указано в cp - Копировать файлы и объекты документация.Это заархивирует старый объект с новым номером ссылки на версию и сделает новую версию объекта активной в корзине.

...