Fix async v3 credential hydration for SSM resolution#138
Fix async v3 credential hydration for SSM resolution#138shaswot77 wants to merge 1 commit intooss-serverless:mainfrom
Conversation
Refactored AWS provider to resolve and hydrate v2 credentials asynchronously before building v3 client config. Updated related methods to be async and added logic to handle lazy credential providers, improving compatibility with various AWS credential sources.
|
@mnapoli Thankyou for running the checks! Could you please review the changes? |
|
We will need to understand things better here. Let's decompose this:
So how is that responsible for the exception?
why are they not valid? I'd love to understand the problem a bit more, because this is a critical refactoring and no tests were changed here. |
Summary
SLS_AWS_SDK_V3=1was failing${ssm:...}resolution withUnrecognizedClientExceptionbecause Serverless forced early resolution of AWS SDK v2 credentials and copied them into SDK v3. Since credentials sourced from environment variables were not valid at that point in execution, the resolved credentials were incorrect and then reused by SDK v3.await getPromise/refreshPromise(when present) in_resolveV2CredentialsForV3, so the v3 client config receives realaccessKeyId,secretAccessKeyandsessionToken. If no keys are available, we return undefined and allow SDK v3 to fall back to its own credential provider chain