Tuesday, May 14, 2024

Localstack : Test our AWS services locally

Localstack Installation: 

download localstack:  https://app.localstack.cloud/download?


# configure, optional

aws configure set aws_access_key_id "dummy" --profile test-profile

aws configure set aws_secret_access_key "dummy" --profile test-profile

aws configure set region "eu-central-1" --profile test-profile

aws configure set output "table" --profile test-profile


#AWS SNS/SQS

Create Topic

aws --endpoint-url=http://localhost:4566 sns create-topic --name topic_name --region us-west-1 --profile default --output table | cat

aws --endpoint-url=http://localhost:4566 sns list-topics

Create Queue

aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name queue_name --profile default --region us-west-1 --output table | cat

aws --endpoint-url http://localhost:4566 sqs list-queues

Bind Topic with queue

Get Queue ARN 

aws sqs get-queue-attributes --queue-url http://localstack:4566/000000000000/queue_name --attribute-names QueueArn --endpoint-url=http://localhost:4566


aws --endpoint-url=http://localhost:4566 sns subscribe --topic-arn arn:aws:sns:us-west-1:000000000000:queue_name --protocol sqs --notification-endpoint arn:aws:sqs:us-west-1:000000000000:queue_name

aws --endpoint-url=http://localhost:4566 sns list-subscriptions

Publish message:

aws --endpoint-url=http://localhost:4566 sns publish --topic-arn arn:aws:sns:us-west-1:000000000000:topic_name --message 'Hello testing!'

Receive message:

aws --endpoint-url=http://localhost:4566 sqs receive-message --queue-url http://sqs.us-west-1.localhost.localstack.cloud:4566/000000000000/queue_name

###S3

Create S3 Bucket

awslocal s3api create-bucket --bucket <bucket-name> --region us-east-1

List S3 All Buckets

awslocal s3api list-buckets


#Upload Item to S3 Bucket

awslocal s3api put-object \

  --bucket <bucket-name> \

  --key <item> \

  --body image.jpg

 

#  List items in a S3 Bucket

awslocal s3api list-objects \

  --bucket <bucket-name>

###cloudformations 

  List all cloudformations in all regions

#!/usr/bin/env bash

( awslocal ec2 describe-regions | jq -r '.Regions[].RegionName' ) | while IFS= read -r line

do

 awslocal cloudformation describe-stacks --region $line

done


###List all the versions of a Lambda

awslocal lambda list-versions-by-function --function-name <lambda-name>  --query 'Versions[*][Version, FunctionArn]' --output json

Execute a Lambda w/o api gateway

base64 -i input.json -o input.txt

awslocal lambda invoke --function-name my-function --payload file://input.txt outputfile.txt

No comments:

Post a Comment