func fetchConfigFromParameterStore()

in PetAdoptions/payforadoption-go/config.go [44:81]


func fetchConfigFromParameterStore(region string) (payforadoption.Config, error) {
	svc := ssm.New(session.New(&aws.Config{Region: aws.String(region)}))
	xray.AWS(svc.Client)
	ctx, seg := xray.BeginSegment(context.Background(), "payforadoption")
	defer seg.Close(nil)

	res, err := svc.GetParametersWithContext(ctx, &ssm.GetParametersInput{
		Names: []*string{
			aws.String("/petstore/updateadoptionstatusurl"),
			aws.String("/petstore/rdssecretarn"),
			aws.String("/petstore/s3bucketname"),
			aws.String("/petstore/dynamodbtablename"),
		},
	})

	cfg := payforadoption.Config{}
	cfg.AWSRegion = region

	if err != nil {
		return cfg, err
	}

	for _, p := range res.Parameters {

		switch aws.StringValue(p.Name) {
		case "/petstore/rdssecretarn":
			cfg.RDSSecretArn = aws.StringValue(p.Value)
		case "/petstore/updateadoptionstatusurl":
			cfg.UpdateAdoptionURL = aws.StringValue(p.Value)
		case "/petstore/s3bucketname":
			cfg.S3BucketName = aws.StringValue(p.Value)
		case "/petstore/dynamodbtablename":
			cfg.DynamoDBTable = aws.StringValue(p.Value)
		}
	}

	return cfg, err
}