2 回答

TA贡献1805条经验 获得超9个赞
不,目前无法从 pubsub 触发的事件中获取执行 ID。
正如劳伦所说,您可以从上下文中获取事件 ID,但这与执行 ID 不匹配。
此外,pubsub 触发的事件确实有执行 ID。您可以通过使用默认记录器记录事件 ID 来查看这一点。在 stackdriver 中会有一个附加的执行 ID 标签,它不会与事件 ID 匹配。我们观察到事件 ID 是数字,而执行 ID 是字母数字。
此外,如果重试该函数,它将保留相同的事件 ID,但会获得不同的执行 ID。
这是最近的(未记录的)更改,但可以很容易地观察到。

TA贡献1836条经验 获得超13个赞
这似乎不再准确。
Pub/Sub 触发的事件没有执行 ID;相反,它包含EventID在上下文元数据中,这是事件的唯一 ID。
您可以按EventID以下方式访问:
import (
"context"
"log"
"cloud.google.com/go/functions/metadata"
)
func F(ctx context.Context, m PubSubMessage) error {
ctxMetadata, err := metadata.FromContext(ctx)
if err != nil {
log.Fatal(err);
}
log.Println("EventID: " + ctxMetadata.EventID)
return nil
}
- 2 回答
- 0 关注
- 188 浏览
添加回答
举报