Чтобы удалить файлы в корзине S3, вы можете использовать команду aws s3 rm --recursive
, как вы уже упоминали.
Вы можете передать имя корзины из конвейера в CodeBuild, установив его в средепеременная.
ArtifactsBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: my-artifacts
CodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Environment:
EnvironmentVariables:
- Name: ARTIFACTS_BUCKET
Value: !Ref ArtifactsBucket
Type: PLAINTEXT
В buildspec вы можете обратиться к ARTIFACTS_BUCKET
env var, например:
build:
commands:
- aws s3 rm --recursive "s3://${ARTIFACTS_BUCKET}/"
Альтернативный подход, который вы можете использовать, - объявить жизненный циклуправление на ведре.Например, вы можете сказать «удалить все объекты через 30 дней» следующим образом:
ArtifactsBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: my-artifacts
LifecycleConfiguration:
Rules:
- ExpirationInDays: 30
Id: Expire objects in 30 days
Status: Enabled