Added command to load test SSM parameters

This commit is contained in:
Leon Mika 2022-04-15 06:03:55 +10:00
parent 71acd75685
commit d48263e43f
5 changed files with 53 additions and 6 deletions

View file

@ -34,7 +34,7 @@ func main() {
var dynamoClient *dynamodb.Client var dynamoClient *dynamodb.Client
if *flagLocal { if *flagLocal {
dynamoClient = dynamodb.NewFromConfig(cfg, dynamoClient = dynamodb.NewFromConfig(cfg,
dynamodb.WithEndpointResolver(dynamodb.EndpointResolverFromURL("http://localhost:8000"))) dynamodb.WithEndpointResolver(dynamodb.EndpointResolverFromURL("http://localhost:4566")))
} else { } else {
dynamoClient = dynamodb.NewFromConfig(cfg) dynamoClient = dynamodb.NewFromConfig(cfg)
} }

View file

@ -2,6 +2,7 @@ package main
import ( import (
"context" "context"
"flag"
"fmt" "fmt"
"github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm"
@ -18,6 +19,9 @@ import (
) )
func main() { func main() {
var flagLocal = flag.Bool("local", false, "local endpoint")
flag.Parse()
// Pre-determine if layout has dark background. This prevents calls for creating a list to hang. // Pre-determine if layout has dark background. This prevents calls for creating a list to hang.
lipgloss.HasDarkBackground() lipgloss.HasDarkBackground()
@ -28,7 +32,14 @@ func main() {
if err != nil { if err != nil {
cli.Fatalf("cannot load AWS config: %v", err) cli.Fatalf("cannot load AWS config: %v", err)
} }
ssmClient := ssm.NewFromConfig(cfg)
var ssmClient *ssm.Client
if *flagLocal {
ssmClient = ssm.NewFromConfig(cfg,
ssm.WithEndpointResolver(ssm.EndpointResolverFromURL("http://localhost:4566")))
} else {
ssmClient = ssm.NewFromConfig(cfg)
}
provider := awsssm.NewProvider(ssmClient) provider := awsssm.NewProvider(ssmClient)
service := ssmparameters.NewService(provider) service := ssmparameters.NewService(provider)

View file

@ -1,6 +1,12 @@
version: '3' version: '3'
services: services:
dynamo: localstack:
image: amazon/dynamodb-local:latest image: localstack/localstack
ports: ports:
- 8000:8000 - "4566:4566"
environment:
- SERVICES=ssm,dynamodb
# dynamo:
# image: amazon/dynamodb-local:latest
# ports:
# - 8000:8000

View file

@ -0,0 +1,30 @@
package main
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ssm"
"github.com/aws/aws-sdk-go-v2/service/ssm/types"
"github.com/lmika/gopkgs/cli"
)
func main() {
ctx := context.Background()
cfg, err := config.LoadDefaultConfig(ctx)
if err != nil {
cli.Fatalf("cannot load AWS config: %v", err)
}
ssmClient := ssm.NewFromConfig(cfg,
ssm.WithEndpointResolver(ssm.EndpointResolverFromURL("http://localhost:4566")))
if _, err := ssmClient.PutParameter(ctx, &ssm.PutParameterInput{
Name: aws.String("/alpha/bravo"),
Type: types.ParameterTypeString,
Value: aws.String("This is a parameter value"),
}); err != nil {
cli.Fatal(err)
}
}

View file

@ -27,7 +27,7 @@ func main() {
} }
dynamoClient := dynamodb.NewFromConfig(cfg, dynamoClient := dynamodb.NewFromConfig(cfg,
dynamodb.WithEndpointResolver(dynamodb.EndpointResolverFromURL("http://localhost:8000"))) dynamodb.WithEndpointResolver(dynamodb.EndpointResolverFromURL("http://localhost:4566")))
if _, err = dynamoClient.DeleteTable(ctx, &dynamodb.DeleteTableInput{ if _, err = dynamoClient.DeleteTable(ctx, &dynamodb.DeleteTableInput{
TableName: aws.String(tableName), TableName: aws.String(tableName),