- Fix manylinux wheel matching to support multiple PEP 600 platform tags (#1411)
- Wheels with multiple PEP 600 manylinux tags (e.g. manylinux_2_27 + manylinux_2_28) are now correctly matched
- Supports legacy and PEP 600 tags in any order
- Fixes issues with wheels like cryptography and psycopg on newer Python versions
- Add initial EFS (Elastic File System) support (#1405)
- Lambda functions can now mount EFS file systems for persistent storage
- Configure via
efs_configsetting in zappa_settings.json
- Fix
_clear_policyremoving API Gateway v2 permissions (#1408)- Policy clearing now correctly preserves HTTP API (API Gateway v2) permissions
- Prevents unintended permission removal during deployments
- Fix
settingscommand generating invalid config for Django projects (#1404)django_settingsandapp_functionare mutually exclusive- When
django_settingsis provided via environment variable or CLI,app_functionis now excluded from generated settings - Added regression test
test_zappacli_settings_django_excludes_app_function
- Add support for Python 3.14 runtime (#1398)
- Updated
SUPPORTED_VERSIONSto include Python 3.14 - Added Python 3.14 to
get_runtime_from_python_version() - Updated CI pipeline to test against Python 3.14
- Added
test_get_manylinux_python314test case - Updated documentation and templates to reflect Python 3.14 support
- Updated
- Fix manylinux wheel matching for PEP 425 sorted platform tags (#1401)
- Wheel filename matching now supports both sorted (legacy first) and unsorted platform tag orders
- Added
test_manylinux_wheel_platform_tag_sort_ordertest for tag ordering compatibility
- Add support for nested JSON configurations in
settingscommand (#1397)- CLI arguments and environment variables now support complex nested objects and arrays
- Enhanced
--configargument parsing to handle JSON structures likecors_options,vpc_config,environment_variables - Type annotations updated throughout configuration pipeline for dict and list types
- Comprehensive test coverage for nested configuration scenarios
- Add API Gateway v2 (HTTP API) support (#1391, #851, #1389)
- Add Lambda function URL support (#1183, #1121)
- Add
settingscommand for generating zappa_settings.json via CLI/ENVARS (#1385, #988) - Add Lambda invocation --qualifier and --client-context options for invoke and manage commands (#1394, #1368)
- Fix cloudwatch logging - restore root log level functionality (#1347, #1336)
- Update Lambda function URL permissions to include InvokeFunction action (#1393)
- Remove kappa dependency, internalize components (#1386, #954)
- Remove deprecated pkg_resources usage, migrate to importlib (#1384)
- Migrate from os.path to pathlib.Path (#1384, #1386)
- Replace deprecated datetime.utcnow() with datetime.now(timezone.utc) (#1384)
- Replace deprecated click.BaseCommand with click.Command (#1384)
- Move IAM policies to external JSON files for better maintainability (#1391)
- Fix infinite redirects issue (#1382, #1380)
- Add arm64 architecture support (#1379)
- Fix conflict in V2 Event handling (#1377, #1182)
- Add Python 3.13 support (#1364)
- Add Lambda SnapStart support (#1367)
- Remove deprecated Python 3.8 runtime support (#1374)
- Fix incorrect error messaging in CLI (#1314)
- Remove usage of copytree from distutils (#1352)
- Fix create_handler_venv win32 case where stderror_result is None (#1353)
- Replace invalid website links with GitHub links (#1371)
- Add note about character limit of function path in events (#1189)
- Add note about AWS Lambda Test Console available commands (#1375)
- Resolve warnings in regex library (#1376)
See release notes
- Add Python 3.11 support (#1262)
- support new ephemeral storage feature in zappa_settings.json (#1120)
- Update permissions (PR #1119)
- Outdated manylinux wheels download logic (#1249)
- cryptography>=35.0, plus pip>=20.3 - downloads wrong cryptography anywheel package (GLIBC_2.18 error) (#1063)
- fix response time improperly configured for micro-seconds. (#1265)
- fix unquote issue with querystring handling. (#1264)
- Python 3.10 support (#1124, #1160)
- Remove patron link from README (#1200)
- migrate test framework from nose to pytest (#1146)
- Upgrading Django to 4.2 crashes the zappa based deployment with Error 500 (#1230)
- Fix FileNotFoundError in running_in_docker (#1201)
- Use ZAPPA_RUNNING_IN_DOCKER environment variable to use any Python version inside Docker container (#1140)
- Not recognizing virtaulenv created with pyenv (#1132)
- Remove six from zappa dependencies (#1164)
- Handle optional space in x-forwarded-for header (#1127)
- [Migrated] #2077 Fix url decoding for query string (#879)
- [Migrated] [async] Check if args/kwargs are JSON Serializable while running locally (#704)
- [Migrated] Add on Docs: event_source from S3 with key_filters (#446)
- [Migrated] Logs are missing query strings (#410)
- [Migrated] Update BINARY_SUPPORT to use Content-Encoding to identify if data is binary (#908)
- Remove obsolete check for Django version < 1.7 (#1158)
- [Migrated] s3 zip includes files that should be matched by the exclude setting (#422)
- Add exclude_glob documentation (#1052)
- Unable to schedule SQS Batch Size of greater than 10 (#1117)
- [Migrated] s3 zip includes files that should be matched by the exclude setting (#422)
- Allow any Python version if using Docker image for Lambda (#1140)
- Incorrect hosted zone match (#1190)
- Issue while trying to install or download zappa without binary file (#1199)
- Fix "cd workflow fired event outside of the create tags event" (#1152)
- Remove 'futures' package requirement (#826,#808)
- Remove function invoke command does not need quotes around function (#900)
- Add python_requires to setup.py (#1111)
- Remove python 3.6 support (#1151)
- Update handler to be global if INSTANTIATE_LAMBDA_HANDLER_ON_IMPORT=True (#1096)
- Fix async invocation in Python 3 (#1006)
- Drastically reduce cold start times by calling LambdaHandler externally (#982)
- Support Newest Manylinux Version for dependencies (#1083)
- Decode zappa invoke output regardless of --no-color option (#1069)
- Convert project to using 'pipenv' to manage dependencies (#1077)
- Ensure unique scheduled event names (#1080)
- Check isort in CI (#1078)
- Use 'black' everywhere (#1076)
- Update setup.py (#1050)
- Update documentation to reflect python 3.9 support (#1137)
- Increase Lambda client read timeout to 15m (#1065)
- Unpin
Werkzeugfromv0.x(#1067)
- Pin troposphere version and update to 3.x (#1029)
- Relax stage name restrictions when not using apigateway (#993)
- Wait for lambda to become active during deploy/update (#992)
- add support for Python 3.9 (#1026)
- Deprecated ACME v1 for Lets Encrypt
- Global black formatting
- Update & deploy using a docker container
- See blog post for more details on the current functionality and how it works
- See PR or original issue for discussion around what is currently supported & next steps
- Remove dateutil version restriction
- Fix failed downloads of wheel packages with non-alphanumeric characters
- Last release from Miserlou/Zappa
- Removed references to zappa.io
- Lambda Layers
- Cognito support
- Skip venv check if --no_venv argument is passed
- Fix for abi3 filename matching
- Wait for the Load Balancer to become active before proceeding
- Add option 'Scheme' for alb config
- Allow full path exclusions while packaging
- Workaround for werkzeug incompatibility
- And assorted fixes
- Updated manylinux to support manylinux1/manylinux2010/manylinux2014 packages
- Fixed issue with duplicated cookie headers in API Gateway
- Various maintenance updates to the README file
- Remove old python 2.7 code (not all yet)
- Use pip-tools to manage dependencies (and remove pinned dependencies from the package)
- Add option for concurrency limit
- Use safe_load with YAML
- Support for ABI3 binary packages (particularly cryptography)
- Remove dependency on lambda-packages
- Added support for Python 3.8
- Fixed boto3 reporting of long names
- Added support for new AWS Regions
- Minor bug and README fixes
- Last version with Python 2.7 support.
- Fix for invalid values of HTTP_HOST and others (introduced in 0.48.0)
- Fix for an issue where you couldn't update a function if it had been deployed with a version prior to 0.48.0
- Support for private (VPC-only) API Gateway endpoints
- Deprecation of zappa.async because async is a reserved word in 3.7, please use zappa.asynchronous
- Support for Application Load Balancer as an alternative to API Gateway
- Improvements in manylinux wheel downloads
- Support for multi-value query strings
- Python 3.7 support
- Support for multi-value headers
- Support for the new 256kB async limit
- Bunch of small typos, fixes and documentation improvements
- Use Django 2 on tests with python 3
- Stop applying tags on buckets not created by zappa
- Be more forgiving on 504 errors during deployment
- Fix cleanup of DynamoDB table for async tasks
- Detection of invalid bucket names
- Flake8 checks added to tests
- Handle accounts with more than 100 domains in route 53
- Force requests upgrade to 2.20.0 for compatibility with urllib3 1.24
- Allow defining API Gateway policies (including restricting access to one IP address)
- Support for SQS events
- Added test to enforce running of doctoc
- Add support for running django as a WSGI app (for NewRelic and others)
- Updates AWS regions for lambda and API Gateway
- Fix support for gcloud and other packages with slim_handler
- Add --disable-keep-open to zappa tail
- Dependency updates
- Fix pyenv invocation
- Add custom base_path stripping support
- Multiple documentation fixes and improvements
- first iteration of a documented deploy policy
- hotfix for creating virtual environments
- Hotfix for pipenv support (pip >10.0.1)
- Adds AWS GovCloud support!
- Test fix
Okay, I dropped the ball for a long time. Bad BDFL! New releases will come much faster once again
- Pip10 compatibility
- Add support for base path configuration in API gateway custom domain.
- Fix path case sensitivity in get_installed_packages
- Move task decorator async decision from import time to call time.
- Fix documentation error in authorizer stanza of zappa_settings.json.
- Adding explicit UTF-8 encoding for Flask app detection
- Bump lambda packages version
- Fix for work with latest Werkezeug
- Fixed parameter name from 'FunctionNmae' -> 'FunctionName'
- Remove
use; fixes #1522 - Philippe Trounev is awesome
- fix case sensitivity problem for comparing package location
- isBase64Encoded is a boolean flag instead of string true
- check pip return code as sometimes pypi lookup fails
- Add support to delete old versions of lambda functions.
- Reactor title casing of dict keys into a utility function
- Add
role_arnsettings variable - ..and too many more, check the changelog!
- Make
package_info.jsonconsistent across Python versions - Fixes to
task_sns
- Add support for SQLite on Python 3.6 (LP bump)
- Add unique package identifier file
- Fixes #1171 don't colorize partial words
- Various small changes
- More robust OpenSSL parsing for LE
- Update applies tags
- Allows deploying and updating from existing S3 package
- Slim handler packaging hotfix - thanks @mcrowson!
- Non-Dynamo asynx hotfix - thanks @jwkvam!
- Packaging hotfix - thank Yunseop!
- Async responses (thanks Sean!)
- Remove setLevel call from common log
- Fix #1023
- Merge #1058, 1059, 1073
- Allow overriding of endpoint_url arg
- Add support for API Gateway stage variables
- Add AWS X-Ray support (thanks @mathom!)
- Events take kwargs (Thanks @mcrowson!)
- Detect P2/3 during
init - Include stage names in
slim_handlerzips - Allow
-swithmanage - Use same S3 bucket for global endpoints
- Fix bug with mixed-case packages
- Cache wheels, fix 0-byte wheels
- Add index prefix to each subsequent schedule expression for the same event (#1051)
- fix/Only update CORS on resources which have an OPTIONS method (#1036)
- Support for binary support and cors simultaneously (#1011)
- Set Flask script name based on domain which the request was made to (#1015)
- Fix SNS Async (#1055)
- GZip for slim handler
- Force color option
- Various dep bumps
- Fixes #1001, don't override AWS env vars if k:v not set. Thanks Nik and Sean!
- Checks for the key 'Environment' when fetching remote lambda env vars (#988)
- except BotoCoreError before general exception in zappa.cli.update
- make cookie hack case-insensitive
- Fix #998 - Make environment variable keys strings instead of byte arrays in python 3.6
- Add --disable_progress command line parameter
- #946 - Allow setting cors to false.
- #870 Lambda from outside
- Implement context header mappings - Feature Request Issue #939
- Separating out native AWS environment variables ##962
- Rule name shortening
- Splintering aws_environment_variables from environment_variables (to avoid overwriting AWS native env vars).
- Add exclude for pycache contents (#943)
- Fix #937 - Use get_data
- Add support for configuring APIGW cache TTL and encryption #942
- Addressing #909: Don't load credentials for 'package' command
- Small fixes for #918, #922, #803, #802, #799, #888, #903, #893, #828, #874, and others.
- Support for manylinux wheels Python 3.6 package downloading.
- Py3
certifyfixes. - Add support for multiple expressions when scheduling
- Fix content-type headers not passing through on DELETE
- Avoid creating init.py in a directory next to a module (.py file) with the same name
- Check recursively if there is any .py{,c} file in a directory before creating init.py
- Fix SNS event tasks
- Bump lambda-packages
- Cached manylinux wheel installed
- New dependency installation formatting
- Clarify "stage" vs "environment" terminology in code
- Fix problem with capitalized packages
- Delete local package if using wheels version. This saves several MBs on package size in some cases (e.g. numpy).
- Thanks to @mcrowson, @nikbora and @schuyler1d
- Various Python3 fixes
- Remove some dead code
- More binary package fixes thanks to and @nikbora and @bxm156
- Improved async tasks thanks to @schuyler1d
- Various small changes
- Support for new
lambda-packagesformat (Python3 support) - Fix
setup.pyon Windows Python3 - Fix #818 - python3 import for LE
- Support AWS-specific environment variables (with KMS)
- Add
templatecommand - Add
--jsonin more places - Add
--outputto package - Support for manylinux wheels Python 3.6 package downloading #803 from nikbora
- Fix PyEnv exit code #799
- Add Python3 Support! #793, #6
- Deprecate
lets_encrypt_expression - Refactor a bunch of stuff to work with Python3 package restrictions >:[
- #776 fix for libmysqlclient.so.18 error when using
slim_handler - add profile and region detection to init - thanks @pdpol
- #774 Wsgi environment improvements (Fix untrustworthy remote_addr)
- Only create
__init__.pyfile if there are python files or sub dirs in the folder - Update docs to reflect lambda name prepended to role_name
- Guard log responses (thanks @scoates)
- Add Async Task Support! Lots of tickets and PRs related, including #61, #603, #694 and #732.
- More info here: https://blog.zappa.io/posts/zappa-introduces-seamless-asynchronous-task-execution
- Fix Django non-WSGI function initialization, #748
- Add support for AWS Lambda Dead Letter Queue, #740
- Fix API Gateway test button (the bolt button), #735
- Switch to using per-lambda-name (project-stage) rather than a single default LambdaExecutionRole
- Fix broken Let's Encrypt trying to use new ACM ARNs
- Add
apigateway_descriptionsetting, fixes #722 - More aggressive virtualenvironment checking
- Add
certificate_arnsetting, support for AWS Certificate Manager (#710) - Fix zip permissions when building on Windows (#714)
- Change the active working directory to
/tmpwhen using the slim handler so that relative filepaths work. (#711)
- Hotfix for broken Django deploys
- Add confirm to
certify - Add
--manualto--certify - Fix
certifyfor existing domains - Add
extra_permissionssetting - Add
shellcommand
- Revert to Kappa 0.6.0 #684 and others
- Add binary support for more HTTP methods, #696
- Add binary upload support, fix #683
- Add support for custom, non-Let's Encrypt certificates, thanks to Benjamin Congdon
- Change default permissions to allow executable binaries, #682
- Fix binary support for Django POST, #677
- Remove Kappa 0.6 specific hack
- Bring back '-' substitution
- Add automatic support for serving binary files! Via @wobeng, closes #481
- Fixes
rollbackdefault back to 1 from 0, #673 - Ensure correct chmodding during package creation, #484
- Update regions that Zappa supports, #667
- Validate function names based on actual gateway rules #521
- Fix unschedule events with trimmed names #662
- Fix a few places where
extendswasn't respectingstage_config, #655 - Begin to remove some dead code
- Dependency bumps
- Adds
--non-httptotail
- Fix 64bit
lambda-packages(#645) - Fix wheel packages (#642)
- Replace ZappaCookie with Set-Cookie permutation! :D (#636)
- Bump
lambda-packagesversion - Fix installed_packages_name_set (#637)
- Add
slim_handler(#548) - Various small requirements bumps and other fixes.
- Adds
--sinceand--filtertotail - Fixes
unschedulecommand when used with specific stage
- Adds
packagecommand - Forbids the use of unicode environment variable keys
- Initialize wsgi.errors to sys.stderr (was '')
- Accept
AWS_SESSION_TOKENwhen executing via an IAM role (#589) - Set
REMOTE_USEReven when usingiam_authorization - Rename
lets_encrypt_scheduletolets_encrypt_expression(#571) - Messages in
tailare now sequential - Bump version requirements, update README
- Various other small changes
- File
tailbroken in CLI refactor
- Add Cognito Authorizers
- Refactor CLI, add Bash Completion
- Improve manylinux wheels
- Varios fixes and req bumps
- Adds the
corsfeature, big thanks to @AusIV! - Adds support for
-eeggs, thanks to @schuyler1d and @xuru! - Adds support for YAML settings files. Eat up, hipsters.
- Add
--httpfilter totail - Prefer
apigateway_enabledbut still respectuse_apigateway, #493
- Adds colors to
zappa tailoutput, fixes #492 - Adds
--no-colorCLI argument - Adds fatal warning for bad
app_functions, fixes #485.
- Fix S3 broken S3 events
- Move
use_apigatewaytoapigateway_enabled
- Fixes progress bar error for manylinux packages
- Safely handle freezes when downloading from PyPI
- Adds
s3://syntax for remote env files. (#478, thanks @Leandr!)
- Adds
extendssyntax to settings file. - Fixes Django migrations, #464
- Adds support for manylinux wheels! #398
- Fixes multiple events in
statuscommand - Fixes support for
certifyon apex domains, #451
- Filter private hosted zones to avoid conflicts while certifying
- Fix small Python3 bug (#457)
- Fix for #453 (windows os.path)
- Re-raise Zappa exception with full traceback
- Skip pyc on django migrations, fixes #436
- Delete correct domain name, #448
- added region and lambda name to not deployed error
- Add "global" mode to init. Expect a blog post soon!
- Small refactors and dependency upgrades.
--jsonfor machine readable status output--allfor global deployment prep- Better exit code handling
- Get AWS region from profile if not set in zappa_settings.json
- Fix broken Django management command invocation
- Add Kinesis permission
- Add capability to specify authoriser arn
- Various refactors and small fixes
- Bump lambda-packages
- Fix new Django unicode problems (#397)
- Ensure env vars are strings via @scoates
- Fix #382
- Remove many hacks using new API Gateway features.
- Closes #303, #363, #361
- See the blog post for more details!
- Bump dependencies - make sure you reinstall your requirements!
- Improved stack update handling.
- Warn on namespace collisions.
- Bump lambda-packages version.
- Use simplified API Gateway configuration, via @koriaf.
- Add better support for
use_apigatewaywithout any supplied app function. Reported by @mguidone. - Truncate illegally long event functions names. Reported by @mguidone.
- Remove 'boto' from default excludes. #333, thanks Claude!
- Don't allow invalid API Gateway characters in the config. Thanks @scoates!
- Better respect for
use_apigatewayinupdatecommand. - Avoids hang with API Gateway limit reached.
- Fix DynamoDB/Kinesis event sources, add docs. Big thanks Claude!
-
Add ability to invoke raw python strings, like so:
zappa invoke dev "print 1+2+3" --raw -
Fixes multi-argument
managecommands. -
Updated related documentation.
-
Fixes places where program was exiting with status 0 instead of -1. Thanks @mattc!
-
Adds old-to-new-style check on delete, thanks @mathom.
- Fix a problem from trying to
updateold-style API routes using new Tropo code. Ensurestouchworks as intended again. Fix by @mathom.
- Add a helpful failure warning for users without permissions to automatically manage execution roles.
- Fix potential div by zero error in new Tropo code.
- Use Troposphere/CloudFormation to create API Gateway routes
- Thanks, @mathom!
zappa updatenow updates changes to API Gateway routes- Redirect HTML content injection is fixed
- Redirect HTML content injection now only happens for 'text/html' content types. This is a partial solution to #303.
- Added CHANGELOG.md
- Didn't keep a changelog
- Sorry!
- Read the commit log :)