Я хочу развернуть облачную функцию, которая запускается триггером pubsub eventarc с помощью командной строки gcloud, но я не нашел способа указать тему pubsub с помощью команды gcloud.
Я попытался выполнить команду gcloud следующим образом:
gcloud functions deploy <function_name> \
--gen2 \
--source=. \
--trigger-event-filters=type=google.cloud.pubsub.topic.v1.messagePublished \
--trigger-location=asia-southeast2 \
--trigger-service-account=<service_account> \
--runtime=python310 \
--entry-point=hello_pubsub \
--project=<project_id> \
--region=asia-southeast2
Но я получил эту ошибку:
gcloud.functions.deploy) INVALID_ARGUMENT: должна быть задана тема PubSub для событий с типом google.cloud.pubsub.topic.v1.messagePublished.
Я проверил документацию GCP документацию по облачным функциям eventarc, но они не упоминают, как указать тему pubsub.
Моя цель — вызвать эту команду gcloud из конвейера сборки облака для автоматического развертывания облачной функции.
Спасибо
Вы можете использовать --trigger-topic, чтобы указать тему.
gcloud functions deploy <function_name> \
--gen2 \
--source=. \
--trigger-topic=topic_name
....
--trigger-event-filters
можно использовать для фильтрации событий на основе любых других атрибутов. Ознакомьтесь со связанной документацией для получения дополнительной информации.
@ramaadhitia правильно, как следует из ошибки, вам не нужно trigger-event-filters
вместе с названием темы. Я пропустил это при удалении других флагов. То же самое упоминается в связанных документах.
Спасибо, это работает. флаг --trigger-event-filters действительно должен быть удален
Не похоже. Я получил эту ошибку, когда указал флаги темы триггера: «Не более одного из --trigger-bucket | --trigger-http | --trigger-topic | --trigger-event --trigger-resource | --trigger- event-filters --trigger-event-filters-path-pattern --trigger-channel можно указать."