获取输出为
{
ARN: "arn:aws:secretsmanager:us-east-2:xxxx:secret:team_dev-Xhzkt6",
CreatedDate: 2018-07-05 06:50:07 +0000 UTC,
Name: "team_dev",
SecretString: "{\"password\":\"test\"}",
VersionId: "6b65bfe4-7908-474b-9ae6-xxxx",
VersionStages: ["AWSCURRENT"]
}
Run Code Online (Sandbox Code Playgroud)
尝试使用键获取值作为映射 SecretString
d.Set("secret_string", output.SecretString)
Run Code Online (Sandbox Code Playgroud)
如何将其作为Schema TypeMap 获取?
使用jq
,我可以轻松获得它,但不确定如何在 golang 中执行此操作。
谢谢,@mkopriva
在 aws sdk (github.com/aws/aws-sdk-go/service/secretsmanager/api.go) 中,output (GetSecretValueOutput)
定义为type:"structure"
type GetSecretValueOutput struct {
_ struct{} `type:"structure"`
Run Code Online (Sandbox Code Playgroud)
并再次感谢提供测试代码,我会尝试一下。
package main
import (
"encoding/json"
"fmt"
)
func main() {
secretString := "{\"password\":\"test\"}"
sec := map[string]interface{}{}
if err := json.Unmarshal([]byte(secretString), &sec); err != nil {
panic(err)
}
fmt.Println(sec)
}
Run Code Online (Sandbox Code Playgroud)
@mkopriva
谢谢,请回答这个问题,所以我可以投票并接受它。
使用您的示例代码,我确实解决了这个问题。
- d.Set("secret_string", output.SecretString)
+ var sec map[string]interface{}
+ if err = json.Unmarshal([]byte(*output.SecretString), &sec); err != nil {
+ return err
+ }
+ d.Set("secret_string", sec)
Run Code Online (Sandbox Code Playgroud)