在 GCS 存储桶上部署 EventArc 触发器的 gcloud 更新命令时出错

问题描述 投票:0回答:1

我在运行命令来更新云服务应用程序的现有 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时,我发现事件过滤器是可以传递和更新的字段。有人可以指导我这里出了什么问题吗?

实现此目的的另一种方法是(根据聊天机器人)删除现有触发器,然后创建。我对这种方法没有问题,但只是想知道为什么更新不起作用。

google-cloud-platform gcloud event-arc
1个回答
0
投票

Eventarc 触发

google.cloud.storage.object.v1.finalized
当创建新对象或覆盖现有对象并创建该对象的新一代时发生。 对审核日志条目中的以下值进行匹配:

serviceName:写入审核日志的服务

methodName:正在审核的操作

resourceName:正在审核的资源。

转到 Cloud Console 中的日志记录 > 日志浏览器。查询结果部分列出了最近生成的日志。查询构建器部分可用于过滤日志。有关此问题的更多信息,请参阅此文档

© www.soinside.com 2019 - 2024. All rights reserved.