Aws lambda 在多个AWS CDK之间共享资源的最佳实践?

Aws lambda 在多个AWS CDK之间共享资源的最佳实践?,aws-lambda,aws-api-gateway,amazon-ecs,aws-cdk,Aws Lambda,Aws Api Gateway,Amazon Ecs,Aws Cdk,我是AWS CDK新手,但实际上我在lambda和api网关中有一个UI服务,在ECS中有另一个服务。两个服务都有自己的CDK,但需要使用相同的Dynamo表。是否可以在两个CDK之间共享相同的dynamodb资源?这方面有没有最佳实践?我们应该从堆栈中排除Dynamo吗?我有一个类似的用例,我只是使用Cloudformation输出来共享表ARN e、 g 在StackA,我有Dynamodb表 从'@aws cdk/core'导入*作为cdk; 从'@aws cdk/aws dynamodb

我是AWS CDK新手,但实际上我在lambda和api网关中有一个UI服务,在ECS中有另一个服务。两个服务都有自己的CDK,但需要使用相同的Dynamo表。是否可以在两个CDK之间共享相同的dynamodb资源?这方面有没有最佳实践?我们应该从堆栈中排除Dynamo吗?

我有一个类似的用例,我只是使用Cloudformation输出来共享表ARN

e、 g

在StackA,我有Dynamodb表

从'@aws cdk/core'导入*作为cdk;
从'@aws cdk/aws dynamodb'导入{Table,AttributeType,BillingMode};
导出类StackA扩展了cdk.Stack{
构造函数(作用域:cdk.Construct,id:string,props?:cdk.StackProps){
超级(范围、id、道具);
const table=新表(这是“我的表”{
partitionKey:{name:'id',type:AttributeType.STRING},
billingMode:billingMode.PAY_PER_请求,
tableName:'mytable'
});
新的cdk.CfnOutput(这是“我的表输出”{
值:table.tableArn,
描述:'数据存储',
exportName:this.stackName+'-tablearn'
});
}
}
在斯塔克B

从'@aws cdk/core'导入*作为cdk;
从'@aws-cdk/aws-dynamodb'导入{Table};
导出类StackB扩展了cdk.Stack{
构造函数(作用域:cdk.Construct,id:string,props?:cdk.StackProps){
超级(范围、id、道具);
const stackATable=Table.fromTableArn(这是“stackA表”,cdk.Fn.importValue(“stackA表arn”);
}
}

我有一个类似的用例,我只是使用Cloudformation输出来共享表ARN

e、 g

在StackA,我有Dynamodb表

从'@aws cdk/core'导入*作为cdk;
从'@aws cdk/aws dynamodb'导入{Table,AttributeType,BillingMode};
导出类StackA扩展了cdk.Stack{
构造函数(作用域:cdk.Construct,id:string,props?:cdk.StackProps){
超级(范围、id、道具);
const table=新表(这是“我的表”{
partitionKey:{name:'id',type:AttributeType.STRING},
billingMode:billingMode.PAY_PER_请求,
tableName:'mytable'
});
新的cdk.CfnOutput(这是“我的表输出”{
值:table.tableArn,
描述:'数据存储',
exportName:this.stackName+'-tablearn'
});
}
}
在斯塔克B

从'@aws cdk/core'导入*作为cdk;
从'@aws-cdk/aws-dynamodb'导入{Table};
导出类StackB扩展了cdk.Stack{
构造函数(作用域:cdk.Construct,id:string,props?:cdk.StackProps){
超级(范围、id、道具);
const stackATable=Table.fromTableArn(这是“stackA表”,cdk.Fn.importValue(“stackA表arn”);
}
}

当你说“两项服务都有自己的CDK”时,你是指同一回购协议中的不同协议栈还是完全不同的回购协议?当你说“两项服务都有自己的CDK”时“,您是指同一回购协议中的不同堆栈还是完全不同的回购协议中的不同堆栈?这不会导致问题,因为堆栈A无法独立更新,因为堆栈B现在依赖于它。更新不应该是问题,只有在尝试删除StackA时,Cloudformation才会阻止您,因为StackB依赖于它。这不会导致问题A吗?”s堆栈A无法独立更新,因为堆栈B现在依赖于它?更新应该不是问题,只有在尝试删除堆栈A时,Cloudformation才会阻止您,因为堆栈B依赖于它。