我在运行命令来更新云服务应用程序的现有 google cloud eventarc 触发器时收到以下错误。
ERROR: (gcloud.eventarc.triggers.update) INVALID_ARGUMENT: The request was invalid: missing required attribute 'type' in trigger.event_filters
- '@type': type.googleapis.com/google.rpc.BadRequest fieldViolations: field: trigger.event_filters
- '@type': type.googleapis.com/google.rpc.RequestInfo requestId: 120f43d9f5c9aba4
我正在运行的命令是检查触发器是否存在,如果存在则更新它,如下所示 -
# Check if the Eventarc trigger exists
EXISTING_TRIGGER=$(gcloud eventarc triggers list --location=$REGION --filter="name:$TRIGGER_NAME" --format="value(name)")
if [ -n "$EXISTING_TRIGGER" ]; then
echo "Trigger exists. Updating the trigger..."
# Update the existing trigger
gcloud eventarc triggers update $TRIGGER_NAME \
--location=$REGION \
--service-account=$SERVICE_ACCOUNT \
--destination-run-service=$SERVICE_NAME \
--destination-run-region=$REGION \
--event-filters="type=google.cloud.storage.object.v1.finalized" \
--event-filters="bucket=$BUCKET_NAME"
else
echo "Trigger does not exist. Creating a new trigger..."
# Create a new trigger
gcloud eventarc triggers create $TRIGGER_NAME \
--location=$REGION \
--service-account=$SERVICE_ACCOUNT \
--destination-run-service=$SERVICE_NAME \
--destination-run-region=$REGION \
--event-filters="type=google.cloud.storage.object.v1.finalized" \
--event-filters="bucket=$BUCKET_NAME"
fi
创建事件部分正在工作,但是当我重新执行该命令时,它失败并出现上述错误。在查看谷歌文档 - triggers-update时,我发现事件过滤器是可以传递和更新的字段。有人可以指导我这里出了什么问题吗?
实现此目的的另一种方法是(根据聊天机器人)删除现有触发器,然后创建。我对这种方法没有问题,但只是想知道为什么更新不起作用。
Eventarc 触发
google.cloud.storage.object.v1.finalized
当创建新对象或覆盖现有对象并创建该对象的新一代时发生。 对审核日志条目中的以下值进行匹配:
serviceName:写入审核日志的服务
methodName:正在审核的操作
resourceName:正在审核的资源。
转到 Cloud Console 中的日志记录 > 日志浏览器。查询结果部分列出了最近生成的日志。查询构建器部分可用于过滤日志。有关此问题的更多信息,请参阅此文档。