gpt4 book ai didi

json - 如何将 AWS SNS 的 s3EventRecord 转换为 map (Go)

转载 作者:数据小太阳 更新时间:2023-10-29 03:19:53 24 4
gpt4 key购买 nike

我的数据流是这样的:

  1. 文件上传到s3 bucket
  2. s3 bucket 触发 SNS 主题
  3. SNS 主题将 s3 事件作为消息传递给 lambda
  4. Lambda 由 SNS 触发并尝试读取 record.SNS.Message
  5. 我尝试将消息(转义的 JSON)转换为 map 以便于解析。

我试着像 strconv.Unquote 那样做,但那没有用。我如何解码这个字符串?这是我的相关代码:

func Handler(request events.SNSEvent) {
for _, record := range request.Records {
message := record.SNS.Message
x := make(map[string]string)
jsonErr := json.Unmarshal([]byte(message),&x)
if jsonErr!=nil {
logger.Errorf("Welp couldn't convert json to a map %s",jsonErr.Error())
}

最佳答案

实际上,该结构存在于 github.com/aws/aws-lambda-go/events 中。使用 s3Event 结构,而不是解码 到映射中。

我是这样用的:

    for _, snsEventRecord := range event.Records {
var s3Event events.S3Event
err = json.Unmarshal([]byte(snsEventRecord.SNS.Message), &s3Event)
if err != nil {
return err
}

for _, s3EventRecord := range s3Event.Records {
fmt.Println(s3EventRecord.S3.Object.Key)
}

关于json - 如何将 AWS SNS 的 s3EventRecord 转换为 map (Go),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55659639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com