Skip to content

Instantly share code, notes, and snippets.

@singledigit
Last active April 12, 2023 14:13
Show Gist options
  • Save singledigit/3ac5ae997c2455f0dc77119d86478a85 to your computer and use it in GitHub Desktop.
Save singledigit/3ac5ae997c2455f0dc77119d86478a85 to your computer and use it in GitHub Desktop.
Get all env variables for all AWS Lamda functions in a CloudFormation/SAM stack
#! /usr/bin/env python
# Use at your own risk and reward.
# requires boto3 to be installed
# example `./get-vars.py MyStack > vars.json`
import sys, json
import boto3
if len(sys.argv) == 1:
print('CloudFormation stack required')
sys.exit()
cloudformation_client = boto3.client('cloudformation')
lambda_client = boto3.client('lambda')
page = {}
# Grab stack from AWS
try:
stack_resources = cloudformation_client.list_stack_resources(
StackName=sys.argv[1]
)
except Exception as e:
print(e)
sys.exit()
# Grab environment vars from each lambda in the stack
for resource in stack_resources['StackResourceSummaries']:
if(resource['ResourceType']=='AWS::Lambda::Function'):
lambda_config = lambda_client.get_function_configuration(
FunctionName=resource['PhysicalResourceId']
)
if 'Environment' in lambda_config and 'Variables' in lambda_config['Environment']:
page[resource['LogicalResourceId']] = lambda_config['Environment']['Variables']
# Print to console
print(json.dumps(page, indent=2))
@singledigit
Copy link
Author

Ahhh nice @masudur-rahman-niloy !! Thank you!

@mfilipelino
Copy link

I was on a youtube channel. like that tool, congrats!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment