Get the output as
{
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"]
}
Try to get the value as map with the key SecretString
d.Set("secret_string", output.SecretString)
How can I get it as Schema TypeMap?
With jq
, I can easily get it, but not sure how to do this in golang.
Thanks, @mkopriva
in the aws sdk (github.com/aws/aws-sdk-go/service/secretsmanager/api.go), output (GetSecretValueOutput)
is defined as type:"structure"
type GetSecretValueOutput struct {
_ struct{} `type:"structure"`
And thanks again to provide a test code, I will try it.
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)
}
Golang Playground Try Here
To convert JSON String to Map object in Go language, import the package encode/json, call json. Unmarshall() function and pass the JSON String as byte array, and address of an empty map as arguments to the function. The function transforms the JSON string to map, and loads the result at given map address.
Map() function can also be used to remove the spaces between the words of a string.
Golang Maps is a collection of unordered pairs of key-value. It is widely used because it provides fast lookups and values that can retrieve, update or delete with the help of keys. It is a reference to a hash table.
@mkopriva
Thanks, please answer this question, so I can vote and accept it.
With your sample code, I did fix the issue.
- 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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With