cloudformation стэка. После запуска создаются необходимые мне ресурсы. Но при выполнении удаления этого же стэка, получаю такую ошибку
                  
                  
                  An error occurred: S3BucketTrail - The bucket you tried to delete is not empty
                  
                  
                  Может ктото сталкивался и знает как побороть? Может в тексте темплейта чтото поменять?
                  
                  
                  cat cloud-trail.yml 
                  
                  
                  Resources:
                  
                  
                    S3BucketTrail:
                  
                  
                  #    DeletionPolicy: Retain
                  
                  
                      DeletionPolicy: Delete
                  
                  
                      Type: AWS::S3::Bucket
                  
                  
                      Properties:
                  
                  
                        BucketName: '${self:custom.serviceName}-cloud-trail-bucket'
                  
                  
                    BucketPolicy:
                  
                  
                      Type: AWS::S3::BucketPolicy
                  
                  
                      Properties:
                  
                  
                        Bucket:
                  
                  
                          Ref: S3BucketTrail
                  
                  
                        PolicyDocument:
                  
                  
                          Version: "2012-10-17"
                  
                  
                          Statement:
                  
                  
                            -
                  
                  
                              Sid: "AWSCloudTrailAclCheck"
                  
                  
                              Effect: "Allow"
                  
                  
                              Principal:
                  
                  
                                Service: "cloudtrail.amazonaws.com"
                  
                  
                              Action: "s3:GetBucketAcl"
                  
                  
                              Resource:
                  
                  
                                !Sub |-
                  
                  
                                  arn:aws:s3:::${S3BucketTrail}
                  
                  
                            -
                  
                  
                              Sid: "AWSCloudTrailWrite"
                  
                  
                              Effect: "Allow"
                  
                  
                              Principal:
                  
                  
                                Service: "cloudtrail.amazonaws.com"
                  
                  
                              Action: "s3:PutObject"
                  
                  
                              Resource:
                  
                  
                                !Sub |-
                  
                  
                                  arn:aws:s3:::${S3BucketTrail}/AWSLogs/${AWS::AccountId}/*
                  
                  
                              Condition:
                  
                  
                                StringEquals:
                  
                  
                                  s3:x-amz-acl: "bucket-owner-full-control"
                  
                  
                
можно удалить только пустой бакет
Ну то есть я не могу удалить его через консоль? Мне в любом случае нужно заходить в UI и удалять его от туда?
Гугл говорит, что можно в шаблон вписать inline lambd'у, которая будет чистить бакет при попытке удаления.
А можно ссылку плиз? Или куда именно вписать в шаблон это?
https://techblog.realtor.com/empty-trash-deleting-stack/ https://stackoverflow.com/questions/40383470/can-i-force-cloudformation-to-delete-non-empty-s3-bucket Сам не пробовал)
можешь через консоль, можешь через aws cli ну и как написали можно написать лямбду как custom resource который очистит бакет
звучит дорого если там куча объектов. выглядит как развод. Очень надеюсь что бакет можно снести одним вызовом. хотя не утверждаю что такой есть
если бакет нужен - можешь скипнуть его и не удалять, потом сможешь импортировать у стек его снова если не нужен - надо удалять )
Ну в веб-консоли такой есть сейчас, кнопка 'empty'
значит гдето есть api
bucket = s3.Bucket('test') bucket.objects.all().delete()
хмм. все равно выглядит как чистка. Интересно через GUI он то же через доступ ко всем объектам работает и в счет добавляет или сам все делает
Обсуждают сегодня