CloudFormationに空でないS3バケットを強制的に削除する方法はありますか?CloudFormationに空でないS3バケットを強制的に削除させることはできますか?
5
A
答えて
13
あなたのバケツをクリーンアップし、CustomResourceを使用してCloudFormationスタックからあなたのラムダを呼び出すためにラムダ関数を作成することができます。あなたは上記のラムダを作成した後
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import boto3
from botocore.vendored import requests
def lambda_handler(event, context):
try:
bucket = event['ResourceProperties']['BucketName']
if event['RequestType'] == 'Delete':
s3 = boto3.resource('s3')
bucket = s3.Bucket(bucket)
for obj in bucket.objects.filter():
s3.Object(bucket.name, obj.key).delete()
sendResponseCfn(event, context, "SUCCESS")
except Exception as e:
print(e)
sendResponseCfn(event, context, "FAILED")
def sendResponseCfn(event, context, responseStatus):
response_body = {'Status': responseStatus,
'Reason': 'Log stream name: ' + context.log_stream_name,
'PhysicalResourceId': context.log_stream_name,
'StackId': event['StackId'],
'RequestId': event['RequestId'],
'LogicalResourceId': event['LogicalResourceId'],
'Data': json.loads("{}")}
requests.put(event['ResponseURL'], data=json.dumps(response_body))
は、ちょうどあなたのCloudFormationスタックにCustomResourceを置く:あなたのバケツをクリーンアップラムダ例以下
---
AWSTemplateFormatVersion: '2010-09-09'
Resources:
myBucketResource:
Type: AWS::S3::Bucket
Properties:
BucketName: my-test-bucket-cleaning-on-delete
DependsOn: cleanupBucketOnDelete
cleanupBucketOnDelete:
Type: Custom::cleanupbucket
Properties:
ServiceToken: arn:aws:lambda:eu-west-1:123456789012:function:clean-bucket-lambda
BucketName: my-test-bucket-cleaning-on-delete
が役割を添付することを忘れないでくださいあなたのバケツからオブジェクトを削除する権限を持っているあなたのラムダに。
さらにあなたはラムダ関数にcli2cloudformationを使用してCLIコマンドラインを受け付けラムダ関数を作成できることに注意してください。 hereからダウンロードしてインストールできます。あなただけ怒鳴るようCustomResourceを作成する必要があることを使用:
"removeBucket": {
"Type": "Custom::cli2cloudformation",
"Properties": {
"ServiceToken": "arn:aws:lambda:eu-west-1:123456789000:function:custom-lambda-name",
"CliCommandDelete": "aws s3 rb s3://bucket-name --force",
}
}
5
いいえ、私はそれを行う方法はないと思います。このdocumentはこれを確認しています。
関連する問題
- 1. S3バケットを削除できません
- 2. 空のS3バケットを削除できません
- 3. AWS S3にアクセスできないときにバケットを削除
- 4. CustomUnboundColumnDataイベントを強制的に発生させることはできますか?
- 5. S3バケットにファイルをアップロードすることができません
- 6. 強制的にファイルを削除する
- 7. キャッシュを強制的に削除する
- 8. 特定のS3バケットにしかアクセスできないIAMグループのAWS CloudFormationテンプレート
- 9. Presto S3 KMS暗号化強制バケットにデータを挿入するときにAccessDenied
- 10. Rに大きな数値を強制的に計算させることはできますか?
- 11. NSWindowController Subclassに強制的に制御することはできますか?
- 12. KIFはアプリを強制的にバックグラウンドにすることはできません
- 13. リストアコミットは強制的に削除Github
- 14. NHibernateに文字列プロパティが空でないことを強制することはできますか?
- 15. サブクラスに強制的に静的解析メソッドを実装させることはできますか?
- 16. アプリに強制的に新しいapple-app-site-associationファイルを取得させることはできますか?
- 17. MathJaxが終了するまでPhantomJSを強制的に待機させることはできますか?
- 18. アンインストール中にuser.configを強制的に削除しますか?
- 19. S3バケットにアップロードされるデータの量を制限できますか?
- 20. EMPTY S3バケットを削除する
- 21. AssertionErrorでPythonを強制的にデバッグすることはできますか?
- 22. タイプを強制的にjsonファイルにすることはできますか?
- 23. ULを強制的にOLにすることはできますか?
- 24. レスキューステートメントを強制的に失敗させることは可能ですか?
- 25. JavaアプレットのネットワークトラフィックをFiddler経由で強制的に強制することはできますか?
- 26. JS: "false"をfalseに強制的に強制することはできますか?
- 27. gitでブランチを強制的に削除する方法
- 28. kubernetesで強制的にポッドを削除する
- 29. ejabberdからユーザーを強制的にログオフすることはできますか?
- 30. Laravel/Aws - アップロード後にファイルを削除しないs3バケット(MultipartUploader)
これはCloudFormationからバケツを削除処理するための素晴らしい方法ですが、私は答えはただ何もありませんだと思う - 私は答えとしてこれをマークする(しかし、私はできません投稿しました) - ありがとう –
この回答は投稿に非常に感謝しています –
トピックに関する詳細なブログ投稿:https://community.alfresco.com/community/platform/blog/2016/10/13/how- a-lambda-backed-custom-resource-saved-the-day – vincent