gpt4 book ai didi

aws-cdk - AWS CDK |创建跨越多个 CDK 堆栈的 REST API

转载 作者:行者123 更新时间:2023-12-04 11:41:30 24 4
gpt4 key购买 nike

我们正在使用 AWS CDK 来创建我们的无服务器 REST API。但是,有大量端点,有时我们必须销毁和重新部署我们的堆栈。为了防止 REST API URL 随每次部署而更改,我计划在一个堆栈中创建 API GATEWAY,并在单独的堆栈中添加方法和资源。如何在单独的堆栈中引用创建的 rest API?

试图从 https://github.com/aws/aws-cdk/issues/3705 实现一些东西,但所有资源(API 网关、资源和方法)都被推送到一个堆栈中,而不是一个堆栈中的 API 网关和另一个堆栈中的资源。

相关代码片段如下:

bts-app-cdk.ts

const first = new FirstStack(app, 'FirstStack', {
env: {
region: 'us-east-1',
account: '1234567890',
}
});

const second = new SecondStack(app, 'SecondStack', {
apiGateway: first.apiGateway,
env: {
region: 'us-east-1',
account: '1234567890',
}
});

second.addDependency(first)

第一个stack.ts
export class FirstStack extends cdk.Stack {

public readonly apiGateway: apig.IResource;

constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);

const apiGateway = new apig.RestApi(this, 'BooksAPI', {
restApiName:'Books API',
})
apiGateway.root.addMethod('GET');

this.apiGateway = apiGateway.root;
}
}

第二个堆栈
export interface SecondStackProps extends cdk.StackProps {
readonly apiGateway: apig.IResource;
}

export class SecondStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props: SecondStackProps) {
super(scope, id, props);

props.apiGateway.addMethod('ANY')

}
}

最佳答案

似乎目前除了使用 Cfn 结构之外别无他法,这是要跟踪的 github 问题 https://github.com/aws/aws-cdk/issues/1477

关于aws-cdk - AWS CDK |创建跨越多个 CDK 堆栈的 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58134126/

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