**Lambda Exporter — AWS Lambda Functions Export Utility** This script exports all AWS Lambda functions (code and configuration) from your account to a local directory, for backup, migration, or auditing. --- **Requirements** - Python 3.7+ - `boto3` - AWS credentials configured (via CLI, environment variables, or IAM role) Install: ```bash pip install boto3 ``` --- **Usage** 1. **Default (uses default AWS profile and region `us-east-1`)** ```python exporter = LambdaExporter() exporter.export_all_functions() ``` 2. **Custom profile and region** ```python exporter = LambdaExporter(profile_name='my-profile', region_name='eu-west-1') exporter.export_all_functions(base_dir='backups') ``` 3. **Run directly** Save as `lambda_exporter.py` and run: ```bash python lambda_exporter.py ``` --- **Output Structure** ``` lambda_export/ └── export_YYYYMMDD_HHMMSS/ ├── FunctionName1/ │ ├── configuration.json │ └── [extracted source files...] ├── FunctionName2/ │ ├── configuration.json │ └── function_code.bin # if not a ZIP └── export_summary.json ``` - ZIP-based functions are fully extracted. - `configuration.json` contains runtime, memory, timeout, env vars, role, etc. - `export_summary.json` logs total functions and success count. --- **Required IAM Permissions** ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:ListFunctions", "lambda:GetFunction", "lambda:GetFunctionConfiguration" ], "Resource": "*" } ] } ``` --- **Important Notes** - The script is read-only — it does not modify any AWS resources. - Environment variables (including secrets) are included in `configuration.json`. Handle exports securely and avoid committing them to version control. - Pre-signed download URLs are used immediately, so expiration is not an issue for typical function sizes. --- وصلى الله على نبينا محمد وعلى آله وصحبه وسلم