在 go SDK v2 中读取 CloudWatch 日志查询状态

Reading CloudWatch log query status in go SDK v2

我正在 运行通过适用于 Go 的 v2 SDK 进行 CloudWatch 日志查询。我已经使用 StartQuery 方法成功提交了查询,但是我似乎无法处理结果。

我在一个变量 (queryID) 中获得了我的查询 ID,并且正在使用 GetQueryResults 方法,如下所示:

    results, err := svc.GetQueryResults(context.TODO(), &cloudwatchlogs.GetQueryResultsInput{QueryId: queryId,})

如何真正阅读内容?具体来说,我正在查看 Status 字段。如果我 运行 在命令行查询,这将作为字符串描述返回。根据 SDK 文档,这是一个定制类型“QueryStatus”,它被定义为带有 enumerated constants.

的字符串

我试过与常量名称进行比较,例如

if results.Status == cloudwatchlogs.GetQueryResultsOutput.QueryStatus.QueryStatusComplete

但是编译器不接受这个。我如何引用常量或获取字符串值本身?

QueryStatus 类型定义为 in the separate types package。 Go SDK 服务都是这样组织的。

import "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types"

if res.Status == types.QueryStatusComplete {
        fmt.Println("complete!")
}