Ano*_*ias 7 amazon-web-services amazon-dynamodb typescript aws-cdk
在我的 CDK 项目中创建了 dynamoDB 表。这很好,它被项目中创建的 lambda 使用。我们需要删除堆栈,这也很好,因为我们已在表上将保留资源设置为 true。
现在,当我尝试全新部署时,我们得到表已存在错误并且堆栈回滚。我需要仅在表不存在时才创建该表的代码。
这是表的基本创建,我在任何地方都找不到有关此问题的任何文档,甚至找不到可以捕获的异常,也找不到在哪里可以看到抛出捕获的异常类型,因为我们只能在 AWS 上的 cloudformation 控制台中看到日志安慰。
const dynamoTable = new Table(this, "my-table", {
tableName: StackConfiguration.tableName,
partitionKey: { name: "id", type: AttributeType.STRING },
});
Run Code Online (Sandbox Code Playgroud)
Ano*_*ias -4
这不是一个很好的答案,而是一种解决方法,我将其留在这里,以防它可能对某人有用,但我们可以将表创建添加到代码中的 try catch 中,我只是捕获了一般异常而不是特定异常如果有人在这里捕获正确的异常,我会很感兴趣。这意味着堆栈将部署。
try {
const dynamoTable = new Table(this, "my-table", {
tableName: StackConfiguration.tableName,
partitionKey: { name: "id", type: AttributeType.STRING },
});
return dynamoReplayTable;
} catch (e) {
return;
}
Run Code Online (Sandbox Code Playgroud)
如果您想使用该表,那么在您的代码中您将需要引用 ARN 而不是表变量名称,否则您可以在 catch 块中执行一些 import from name 操作。但我发现的最佳解决方案是将表保留在单独的堆栈中。
归档时间: |
|
查看次数: |
11571 次 |
最近记录: |