如果资源已存在则不会失败

问题描述 投票:0回答:1

与其他基础设施代码相同,我期望在部署后,我的堆栈会跳过或更新那里列出的资源,但我收到了一个奇怪的“已存在”错误。

    const baseName = "some_constant_name";
    const repository = new Repository(this, `${baseName}Repository`, {
      repositoryName: snakeCase(`${baseName}Repository`),
    });

    const logGroup = new LogGroup(this, `${baseName}LogGroup`, {
      retention: 90,
      logGroupName: '/aws/ecs/graphql-api',
    });

虽然问题是它们具有相同的名称,但有没有办法可以跳过这些创建的项目?

错误信息是:

GraphqlApiDevStack 失败:错误:名为 GraphqlApiDevStack 的堆栈部署失败:UPDATE_ROLLBACK_COMPLETE:资源处理程序返回消息:“资源类型为‘AWS::Logs::LogGroup’,标识符为‘{"/properties/LogGroupName":"/aws/ecs /graphql-api"}' 已经存在。"

aws-cdk
1个回答
0
投票

如果您将 logGroup 名称设置为固定值(即不是由 CloudFormation 生成),那么在销毁堆栈时您将收到该错误,因为默认的 RemovalPolicy 设置为 RETAIN。

你有两个选择:

aws logs delete-log-group --log-group-name ...
© www.soinside.com 2019 - 2024. All rights reserved.