Do not bundle AWS SDK if default implementation is used. #1969
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
Bundling Bedrock SDK is problematic in default implementation case. I.e. when data construct uses conversation handler construct under the hood.
That behavior demands that data construct bundles Bedrock SDK with it's dependencies as well. Which is not optimal.
Changes
We started conversation handler with bundling of Bedrock SDK because it was not available in Lambda runtime yet.
Since then however. Lambda has updated SDKs and they now include Bedrock. Which is also compatible with our default implementation.
Therefore, we disable bundling if default handler is used to simplify situation on data construct side.
Note
This is another solution like this one that aims to simplify caller (upstream) situation and smoothen DX for preview purposes. We do have an action item to revisit bundling on data side.
Validation
This change is not unit-testable as there's no good way to assert bundling behavior in unit tests.
However, the logical branch introduced here is already covered by e2e tests which deploy both default and custom implementation of conversation handler.
Hence no new tests are added in this PR.
Checklist
run-e2e
label set.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.