AWS CLI Commands
AWS Lambda
aws lambda create-function --function-name MyFunction --zip-file fileb://function.zip --handler index.handler --runtime nodejs12.x --role arn:aws:iam::123456789012:role/lambda-role
aws lambda invoke --function-name MyFunction --payload '{\"key\": \"value\"}' response.json
aws lambda update-function-code --function-name MyFunction --zip-file fileb://function.zip
aws lambda list-functions
aws lambda delete-function --function-name MyFunction
aws lambda get-function --function-name MyFunction
aws lambda add-permission --function-name MyFunction --statement-id MyStatement --action lambda:InvokeFunction --principal s3.amazonaws.com --source-arn arn:aws:s3:::my-bucket
aws lambda remove-permission --function-name MyFunction --statement-id MyStatement
aws lambda create-event-source-mapping --function-name MyFunction --batch-size 100 --event-source-arn arn:aws:sqs:us-west-2:123456789012:my-queue
aws lambda delete-event-source-mapping --uuid 12345678-abcd-efgh-ijkl-123456789012
Amazon API Gateway
aws apigateway create-rest-api --name MyAPI
aws apigateway get-rest-apis
aws apigateway create-resource --rest-api-id 123456 --parent-id 123 --path-part newresource
aws apigateway put-method --rest-api-id 123456 --resource-id 123 --http-method POST --authorization-type NONE
aws apigateway put-integration --rest-api-id 123456 --resource-id 123 --http-method POST --integration-http-method POST --type AWS_PROXY --uri arn:aws:lambda:region:account-id:function:MyFunction
aws apigateway create-deployment --rest-api-id 123456 --stage-name prod
aws apigateway get-resources --rest-api-id 123456
aws apigateway delete-rest-api --rest-api-id 123456
aws apigateway update-rest-api --rest-api-id 123456 --patch-operations op=replace,path=/name,value=NewApiName
aws apigateway get-stages --rest-api-id 123456
AWS Step Functions
aws stepfunctions create-state-machine --name MyStateMachine --definition file://definition.json --role-arn arn:aws:iam::123456789012:role/service-role/StepFunctions-MyStateMachine-role
aws stepfunctions list-state-machines
aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-west-2:123456789012:stateMachine:MyStateMachine --name ExecutionName --input \"{\\\"key\\\":\\\"value\\\"}\"
aws stepfunctions get-execution-history --execution-arn arn:aws:states:us-west-2:123456789012:execution:MyStateMachine:ExecutionName
aws stepfunctions stop-execution --execution-arn arn:aws:states:us-west-2:123456789012:execution:MyStateMachine:ExecutionName
aws stepfunctions delete-state-machine --state-machine-arn arn:aws:states:us-west-2:123456789012:stateMachine:MyStateMachine
aws stepfunctions describe-state-machine --state-machine-arn arn:aws:states:us-west-2:123456789012:stateMachine:MyStateMachine
aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-west-2:123456789012:stateMachine:MyStateMachine --definition file://new-definition.json
aws stepfunctions describe-execution --execution-arn arn:aws:states:us-west-2:123456789012:execution:MyStateMachine:ExecutionName
aws stepfunctions list-executions --state-machine-arn arn:aws:states:us-west-2:123456789012:stateMachine:MyStateMachine
Amazon S3
aws s3 mb s3://my-bucket
aws s3 ls s3://my-bucket
aws s3 cp file.txt s3://my-bucket/file.txt
aws s3 rm s3://my-bucket/file.txt
aws s3 sync ./folder s3://my-bucket/folder
aws s3api put-bucket-policy --bucket my-bucket --policy file://policy.json
aws s3api get-bucket-policy --bucket my-bucket
aws s3api delete-bucket-policy --bucket my-bucket
aws s3api list-objects --bucket my-bucket
aws s3api get-object --bucket my-bucket --key file.txt file.txt
Amazon DynamoDB
aws dynamodb create-table --table-name MyTable --attribute-definitions AttributeName=Id,AttributeType=S --key-schema AttributeName=Id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
aws dynamodb list-tables
aws dynamodb put-item --table-name MyTable --item '{\"Id\": {\"S\": \"123\"}, \"Name\": {\"S\": \"John\"}}'
aws dynamodb get-item --table-name MyTable --key '{\"Id\": {\"S\": \"123\"}}'
aws dynamodb update-item --table-name MyTable --key '{\"Id\": {\"S\": \"123\"}}' --update-expression 'SET Name = :name' --expression-attribute-values '{\":name\":{\"S\":\"Jane\"}}'
aws dynamodb delete-item --table-name MyTable --key '{\"Id\": {\"S\": \"123\"}}'
aws dynamodb scan --table-name MyTable
aws dynamodb delete-table --table-name MyTable
aws dynamodb describe-table --table-name MyTable
aws dynamodb query --table-name MyTable --key-condition-expression \"Id = :id\" --expression-attribute-values '{\":id\": {\"S\": \"123\"}}'
AWS SAM (Serverless Application Model)
(Note: while AWS SAM is an extension of AWS CloudFormation, it has its own set of commands)
sam init
sam build
sam package --s3-bucket my-bucket --output-template-file packaged-template.yaml
sam deploy --template-file packaged-template.yaml --stack-name mystack --capabilities CAPABILITY_IAM
sam publish --template packaged-template.yaml --region us-east-1
sam local invoke \"MyFunction\" --event event.json
sam local start-api
sam validate --template file://template.yaml
sam logs --name MyFunction --stack-name mystack
sam delete --stack-name mystack
AWS CloudFormation
aws cloudformation create-stack --stack-name mystack --template-body file://template.yaml
aws cloudformation update-stack --stack-name mystack --template-body file://template.yaml
aws cloudformation delete-stack --stack-name mystack
aws cloudformation describe-stacks --stack-name mystack
aws cloudformation list-stacks
aws cloudformation describe-stack-events --stack-name mystack
aws cloudformation describe-stack-resources --stack-name mystack
aws cloudformation get-template --stack-name mystack
aws cloudformation validate-template --template-body file://template.yaml
aws cloudformation list-stack-resources --stack-name mystack
Amazon SQS (Simple Queue Service)
aws sqs create-queue --queue-name MyQueue
aws sqs list-queues
aws sqs send-message --queue-url https://sqs.region.amazonaws.com/123456789012/MyQueue --message-body \"This is a test message\"
aws sqs receive-message --queue-url https://sqs.region.amazonaws.com/123456789012/MyQueue
aws sqs delete-message --queue-url https://sqs.region.amazonaws.com/123456789012/MyQueue --receipt-handle MsgReceiptHandle
aws sqs purge-queue --queue-url https://sqs.region.amazonaws.com/123456789012/MyQueue
aws sqs delete-queue --queue-url https://sqs.region.amazonaws.com/123456789012/MyQueue
aws sqs get-queue-attributes --queue-url https://sqs.region.amazonaws.com/123456789012/MyQueue --attribute-names All
aws sqs set-queue-attributes --queue-url https://sqs.region.amazonaws.com/123456789012/MyQueue --attributes '{\"VisibilityTimeout\":\"60\"}'
aws sqs get-queue-url --queue-name MyQueue
Amazon SNS (Simple Notification Service)
aws sns create-topic --name MyTopic
aws sns list-topics
aws sns subscribe --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic --protocol email --notification-endpoint my@email.com
aws sns publish --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic --message \"Hello world\"
aws sns unsubscribe --subscription-arn arn:aws:sns:us-west-2:123456789012:MyTopic:2c1f4cc0-dfdd-4abc-bbf3-b6f4657e3c9b
aws sns delete-topic --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic
aws sns get-topic-attributes --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic
aws sns set-topic-attributes --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic --attribute-name DisplayName --attribute-value MyDisplayName
aws sns list-subscriptions-by-topic --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic
aws sns confirm-subscription --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic --token 2336412f37fb687f5d51e6e241dxxxxx
Amazon EventBridge
aws events put-rule --name MyRule --event-pattern '{\"source\": [\"aws.ec2\"]}'
aws events list-rules
aws events delete-rule --name MyRule
aws events put-targets --rule MyRule --targets \"Id\"=\"1\",\"Arn\"=\"arn:aws:lambda:region:account-id:function:MyFunction\"
aws events remove-targets --rule MyRule --ids \"1\"
aws events describe-rule --name MyRule
aws events put-events --entries file://events.json
aws events list-targets-by-rule --rule MyRule
aws events disable-rule --name MyRule
aws events enable-rule --name MyRule
AWS CodeDeploy
aws deploy create-application --application-name MyApp
aws deploy push --application-name MyApp --s3-location s3://my-bucket/my-app.zip --source .
aws deploy create-deployment --application-name MyApp --s3-location bucket=my-bucket,key=my-app.zip,bundleType=zip
aws deploy get-application --application-name MyApp
aws deploy list-applications
aws deploy list-deployments --application-name MyApp
aws deploy get-deployment --deployment-id d-3GR0HQLX8
aws deploy get-deployment-group --application-name MyApp --deployment-group-name MyDeploymentGroup
aws deploy delete-deployment-group --application-name MyApp --deployment-group-name MyDeploymentGroup
aws deploy update-deployment-group --application-name MyApp --current-deployment-group-name MyDeploymentGroup --new-deployment-group-name NewDeploymentGroup
AWS CodeBuild
aws codebuild create-project --name MyProject --source type=CODECOMMIT,location=https://git-codecommit.us-west-2.amazonaws.com/v1/repos/my-repo --artifacts type=NO_ARTIFACTS --environment type=LINUX_CONTAINER,image=aws/codebuild/standard:4.0,computeType=BUILD_GENERAL1_SMALL
aws codebuild start-build --project-name MyProject
aws codebuild list-projects
aws codebuild stop-build --id project-name:build-id
aws codebuild list-builds-for-project --project-name MyProject
aws codebuild batch-get-builds --ids project-name:build-id
aws codebuild update-project --name MyProject --description \"New project description\"
aws codebuild delete-project --name MyProject
aws codebuild list-builds
aws codebuild batch-get-projects --names MyProject
AWS CodePipeline
aws codepipeline create-pipeline --cli-input-json file://pipeline.json
aws codepipeline list-pipelines
aws codepipeline get-pipeline --name MyPipeline
aws codepipeline start-pipeline-execution --name MyPipeline
aws codepipeline get-pipeline-state --name MyPipeline
aws codepipeline list-pipeline-executions --pipeline-name MyPipeline
aws codepipeline update-pipeline --cli-input-json file://updated-pipeline.json
aws codepipeline delete-pipeline --name MyPipeline
aws codepipeline put-action-revision --pipeline-name MyPipeline --stage-name MyStage --action-name MyAction --action-revision actionRevisionId=revision-id,revisionChangeId=change-id,revisionSummary=\"Revision summary\"
aws codepipeline poll-for-jobs --action-type-id category=Deploy,owner=AWS,provider=CodeDeploy,version=1
AWS Fargate
aws ecs create-cluster --cluster-name MyCluster
aws ecs list-clusters
aws ecs register-task-definition --cli-input-json file://fargate-task.json
aws ecs list-task-definitions
aws ecs run-task --cluster MyCluster --launch-type FARGATE --task-definition MyTaskDefinition
aws ecs list-tasks --cluster MyCluster
aws ecs describe-tasks --cluster MyCluster --tasks task-id
aws ecs update-service --cluster MyCluster --service MyService --desired-count 2
aws ecs delete-cluster --cluster MyCluster
aws ecs deregister-task-definition --task-definition MyTaskDefinition
AWS Amplify
aws amplify create-app --name MyApp --repository https://github.com/username/myapp
aws amplify list-apps
aws amplify start-job --app-id appId --branch-name master --job-type RELEASE
aws amplify delete-app --app-id appId
aws amplify get-app --app-id appId
aws amplify list-branches --app-id appId
aws amplify create-branch --app-id appId --branch-name feature-branch
aws amplify delete-branch --app-id appId --branch-name feature-branch
aws amplify create-domain-association --app-id appId --domain-name myapp.com --sub-domain-settings prefix=www,branchName=master
aws amplify delete-domain-association --app-id appId --domain-name myapp.com
Amazon Kinesis
aws kinesis create-stream --stream-name MyStream --shard-count 1
aws kinesis list-streams
aws kinesis describe-stream --stream-name MyStream
aws kinesis put-record --stream-name MyStream --partition-key 123 --data data-bytes
aws kinesis get-shard-iterator --stream-name MyStream --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON
aws kinesis get-records --shard-iterator ShardIterator
aws kinesis delete-stream --stream-name MyStream
aws kinesis split-shard --stream-name MyStream --shard-to-split shardId-000000000000 --new-starting-hash-key startingHashKey
aws kinesis merge-shards --stream-name MyStream --shard-to-merge shardId-000000000000 --adjacent-shard-to-merge adjacentShardId-000000000001
aws kinesis list-shards --stream-name MyStream