我有一些使用 CDK 创建 API 网关和 Lambda 的 TypeScript 代码。它可以工作并部署到标准 AWS URL。到目前为止,一切都很好。
我现在需要转移 API 网关,以便它在自定义域上运行,以便它可以在 Web 应用程序中设置 cookie。事实证明,这要困难得多,我怀疑我遇到了困难,因为我同时对 TypeScript、AWS 和 CDK 都是新手。网络上有许多文档资源,但大多数都要求我重写我拥有的宝贵的少量工作代码,但我不愿意这样做。
我已经手动创建了一个证书,因为这需要验证,因此在代码中创建它没有意义。除此之外,我希望所有其他资源都由堆栈中的 CDK 代码创建。在我看来,如果我必须手动配置,就违背了 CDK 的目的。
下面的代码部署了我需要的一切gatekeeper.d.aws.example.com- HostedZone、ARecord、LambdaRestApi 和 Function (lambda)。但是它不起作用,因为新分配的 NS 记录与gatekeeper.d.aws.example.com父记录中的记录不匹配d.aws.example.com。
我认为这意味着虽然d.aws.example.com是“已知”的,但gateway子域不能委托给它。
这是我的工作代码:
// Create the lambda resource
const referrerLambda = new lambda.Function(this, 'EisReferrerLambda', {
runtime: lambda.Runtime.NODEJS_14_X,
handler: 'index.handler',
code: lambda.Code.fromAsset(path.join(__dirname, '../../src/lambda')),
environment: env
});
// Set up the domain name on which the API should …Run Code Online (Sandbox Code Playgroud)