Go语言 阅读AWS SageMaker InvokeEndpoint的“敏感”结果

6qftjkof  于 2023-04-27  发布在  Go
关注(0)|答案(1)|浏览(128)

我尝试使用Go SDK调用sagemaker无服务器端点,结果没有返回,它被标记为“敏感”。从文档中可以看出,主体不会返回,但它没有说明如何检索它。

svc := sagemakerruntime.New(sess)
out, err := svc.InvokeEndpoint(&sagemakerruntime.InvokeEndpointInput{
    Body:         []byte(`xxx`),
    ContentType:  aws.String("application/json"),
    EndpointName: aws.String("xxx"),
})

结果:

{
  Body: <sensitive>,
  ContentType: "application/json",
  InvokedProductionVariant: "single-variant"
}

当我使用aws-cli调用它时,它会使用结果json正确地填充输出文件。

aws sagemaker-runtime invoke-endpoint --content-type 'application/json' --endpoint-name xxx --body xxx /tmp/sagemaker-output
wvt8vs2t

wvt8vs2t1#

Body是一个敏感参数,其值将在InvokeEndpointOutput的String和GoString方法返回的字符串中替换为“sensitive”。
正如文档中所述,它只影响StringGoString方法返回的字符串。您仍然可以直接访问Body字段。

package main

import (
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/service/sagemakerruntime"
)

func main() {
    output := &sagemakerruntime.InvokeEndpointOutput{
        Body:                     []byte("body data"),
        ContentType:              aws.String("application/json"),
        InvokedProductionVariant: aws.String("single-variant"),
    }

    fmt.Println(output)
    fmt.Printf("body: %s\n", output.Body)
}

输出:

{
  Body: <sensitive>,
  ContentType: "application/json",
  InvokedProductionVariant: "single-variant"
}
body: body data

相关问题