December 2021
Intermediate to advanced
358 pages
7h 41m
English
These useful small bits of code will help you save time and get the most out of AWS.
Set your AWS_ACCOUNT_ID to a bash variable:
export AWS_ACCOUNT_ID=$(aws sts get-caller-identity \ --query Account --output text)
Get the most recently created CloudWatch log group name:
aws logs describe-log-groups --output=yaml \
--query 'reverse(sort_by(logGroups,&creationTime))[:1].{Name:logGroupName}'
Tail the logs for the CloudWatch group:
aws logs tail <<LOGGROUPNAME>> --follow --since 10s
Delete all log groups that match a text pattern and prompt yes/no for confirmation:
aws logs describe-log-groups | \ jq ".logGroups[].logGroupName" | grep -i <<pattern>> | \ xargs -p -I % aws logs delete-log-group --log-group-name %
Stop all running instances for your current working Region (H/T: Curtis Rissi):
aws ec2 stop-instances \ --instance-ids $(aws ec2 describe-instances \ --filters "Name=instance-state-name,Values=running" --query "Reservations[].Instances[].[InstanceId]" --output text | tr '\n' ' ')
Determine the user making CLI calls:
aws sts get-caller-identity --query UserId --output text
Generate YAML input for your CLI command and use it:
aws ec2 create-vpc --generate-cli-skeleton yaml-input > input.yaml #Edit input.yaml - at a minimum modify CidrBlock, DryRun, ResourceType, and Tags aws ec2 create-vpc --cli-input-yaml file://input.yaml
List the AWS Region names and endpoints in a table format:
aws ec2 describe-regions --output table
Find interface VPC endpoints ...