cdk-constructs
cdk-constructs copied to clipboard
[cdk-cloudfront-authorization] user-pool-domain lambda generates invalid config
The user-pool-domain lambda is generating invalid configuration.json which contain a busted domain name like below
{
domainName: "2b7f08a6.auth.async () => {
if (runtimeConfig.region === void 0) {
throw new Error("Region is missing from runtimeConfig");
}
const region = runtimeConfig.region;
if (typeof region === "string") {
return region;
}
return region();
}.amazoncognito.com",
}
I believe the faulting line is this one: https://github.com/cloudcomponents/cdk-constructs/blob/60f1d89a9d51100bdeffdd26d1956515c88ab790/packages/cdk-cloudfront-authorization/src/lambdas/user-pool-domain/index.ts#L31
the COGNITO_CLIENT.config.region which is a CognitoIdentityProviderClientResolvedConfig is able to return either a string, or a Provider<string>. The latter returns the promise of a string.
I'm not sure of the motivation behind using the resolved config, but seeing as we're feeding it from environment variables I suggest accessing that instead, because handling the choice of a string or a promise seems like unnecessary effort.