gpt4 book ai didi

typescript - 如何将新的 Lambda 函数部署到现有 Rest Api 的 Stage?

转载 作者:行者123 更新时间:2023-12-04 13:54:10 25 4
gpt4 key购买 nike

所以,我遇到了很多线程,但没有一个解决了我的问题。
我正在尝试使用现有的 DEV-Stage 将 Lambda 函数部署到现有的 RestApi。我的 API 是这样构建的:

this.RestAPIDev = new gw.RestApi(this, 'StagingGatewayDev', {
restApiName: 'gateway-DEV',
deploy: true,
deployOptions: {
stageName: 'DEV',
description: 'DEV Stage',
variables: { ALIAS: 'DEV' },
}
});
Lambda 堆栈在其自己的存储库中分离,包括管道和 lambda 代码。我试图通过添加资源和方法将这些 Lambda 函数部署到这个现有的网关,并假设因为我设置了 deploy:true在网关上,它将自行部署。
所以这里是 Lambda 堆栈:
const restApi = gw.RestApi.fromRestApiAttributes(this, 'RestApi', {
restApiId: props.restApiId,
rootResourceId: props.restApiRoot,
});

const authenticate = new lambda.Function(this, 'AuthenticateFunction', {
code: this.lambdaCode, // is a property
runtime: lambda.Runtime.NODEJS_12_X,
handler: 'src/api/authenticate.handler',
description: 'API: Authenticates the token',
role: <executionRole>, // is a property
});

const authenticateAlias = new lambda.Alias(this, 'AuthenticateAlias', {
aliasName: 'DEV',
version: new lambda.Version(this, 'AuthenticateVersion', {
lambda: authenticate,
}),
});

restApi.root.addResource('authenticate').addMethod(
'POST',
new gw.LambdaIntegration(authenticateAlias, {}),
);
但是舞台选项卡上没有更新......
我也尝试过创建新部署和阶段的解决方案,但得到这个阶段已经存在的错误(我当然知道)。我还尝试创建一个新的部署并添加 deployment.resources.stageName到它,但这不适用于我的 CDK 版本。
这有什么线索吗?
提前致谢!

最佳答案

我相信该阶段是在您定义 API 的堆栈中创建和部署的。在 lambda 堆栈中不执行新部署。
我建议您不要将 API 导入您的 lambda 堆栈,而是将 lambda 导入您的 API 堆栈并在 API 堆栈中定义由 lambda 支持的资源。

关于typescript - 如何将新的 Lambda 函数部署到现有 Rest Api 的 Stage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65681410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com