fix(localstack/lambda): lambda debugging #8291
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The AWS SDK v2 to v3 migration in PR #8183 introduced breaking changes for LocalStack compatibility and Lambda debugging is not working anymore:
UserAgentpairs format ([name, version]tuples), but several places still used the old string format, breaking LocalStack's custom user agent for Lambda debugging$response.httpResponse.headers, breaking LocalStack connection detection which relies on thex-localstack-request-urlheaderThese issues were not caught most likely because LocalStack compatibility was not tested during the SDK v3 migration.
Solution
Add response headers middleware for AWS SDK v3
captureHeadersMiddlewaretoAWSClientBuilderV3that attaches HTTP response headers to the output via$httpHeaderspropertyloginManagerto check for LocalStack connection using$httpHeadersinstead of the removed$response.httpResponse.headersFix user agent format for AWS SDK v3
AWS SDK v3 Breaking Changes
User Agent Format
SDK v2:
SDK v3:
Response Headers Access
SDK v2:
SDK v3:
Supersedes #8289 as @carole-lavillonniere is OOO today and can't edit their PR.