amazon-web-services - 如何将 DeletionPolicy 从保留更新为删除

标签 amazon-web-services aws-cloudformation serverless-framework

我浏览了很多 Clo​​udFormation 文档,但找不到任何将 DeletionPolicyRetain 更新为 Delete 的引用已部署堆栈中的资源。

堆栈中部署的现有资源的 DeletionPolicy 设置为 Retain。我无法将其更改为删除。当我尝试将删除策略设置为Delete 来更新堆栈时,它表示更改集不包含任何要部署的更改。。但变化是显而易见的。

我的目的是从堆栈中的资源中删除deletionPolicy属性或将它们设置为Delete

用于部署的框架:Serverless

将以下资源模板视为堆栈中的现有资源:

  ResourceA:
    Type: AWS::IAM::Role
    DeletionPolicy: Retain //This is how it is currently deployed
    Properties:
      RoleName: RoleName-${self:custom.env.stage}
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: events.amazonaws.com
            Action: sts:AssumeRole

尝试将上述资源属性更改为:

  ResourceA:
    Type: AWS::IAM::Role
    DeletionPolicy: Delete // <--- The change
    Properties:
      RoleName: RoleName-${self:custom.env.stage}
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: events.amazonaws.com
            Action: sts:AssumeRole

目的是摆脱删除策略,但将删除策略设置为“删除”也将允许我继续我打算做的事情。

  ResourceA:
    Type: AWS::IAM::Role
    Properties:
      RoleName: RoleName-${self:custom.env.stage}
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: events.amazonaws.com
            Action: sts:AssumeRole

最佳答案

@Gaurav:我使用 Serverless Framework 遇到了同样的问题。仅更新 DeletionPolicy 就会导致跳过更新。

我的解决方法是向堆栈添加虚拟资源以部署更新,然后删除虚拟资源并再次部署。

看起来像是无服务器框架中的错误。

关于amazon-web-services - 如何将 DeletionPolicy 从保留更新为删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74191749/

相关文章:

amazon-web-services - AWS - 根据 CF 模板中的映射查找分配 IAM 配置文件

amazon-web-services - CloudFormation 启动配置 SSM 关联

amazon-web-services - 无服务器部署在检查堆栈进度 AWS 时失败

macos - 在无服务器框架中禁用 SLS_DEBUG=*

aws-lambda - 如何将参数传递给无服务器调用本地

aws-lambda - Serverless Framework - 为dynamodb设置资源权限

mysql - Hibernate 是否支持 Amazon RDS 和 S3?

Amazon Web 服务器中的 mySQL 连接

amazon-web-services - 如何查看配置文件和真实资源之间的差异

amazon-web-services - 在 cf 模板中设置导出时,如何使用 fn::att 或 fn::select 或任何其他内置函数获取当前 VPC CIDR