Mam wiadro S3 jako zasób w moim szablonie CloudFormation. Z DeletionPolicy
ustawionym na Retain
. Działa to zgodnie z oczekiwaniami, podczas usuwania stosu rzeczywiście zachowuje wiadro. Jednak gdy próbuję ponownie utworzyć stos, tworzenie kończy się niepowodzeniem podczas próby ponownego utworzenia tego samego segmentu, a komunikat o błędzie informuje, że już istnieje.
Co muszę dodać do mojego szablonu CloudFormation, aby nie próbował ponownie tworzyć zasobu, który już istnieje?
Odpowiedni fragment mojego szablonu jest następujący:
"Resources": {
"SomeS3Bucket" : {
"Type" : "AWS::S3::Bucket",
"DeletionPolicy" : "Retain",
"Properties": {
"BucketName": "SomeS3Bucket"
}
}
Odpowiedzi:
Jednym z podejść jest dodanie parametru wejściowego do szablonu CloudFormation, aby wskazać, że należy użyć istniejącego segmentu.
Użyj klauzul Warunków w szablonie, aby utworzyć segment tylko wtedy, gdy parametr wskazuje, że jest potrzebny.
źródło
CloudFormation używa znaczników z przedrostkiem „aws:”, aby śledzić, jakie zasoby są powiązane z tym, jakie wpisy są powiązane w stosach - to jest stan „na żywo”, którego używa do porównania z szablonem przed podjęciem decyzji o dodaniu / usunięciu / aktualizacji.
Jako użytkownik nie możesz dodawać, edytować ani usuwać takich tagów.
Więc jeśli twoje istniejące zasoby nie mają tych znaczników lub nie mają poprawnych wartości dla tych znaczników, to nie są one uważane za część nowego stosu i nie widzę sposobu, aby to zmienić.
źródło
Próbuję to również zautomatyzować, ponieważ wydaje się, że nie można tego zrobić tylko za pomocą szablonu Cloudformation. Proces, o którym myślę, powinien:
temp-$originalbucketname
$originalbucketname
temp-$originalbucketname
Jest to bardzo zaangażowany proces, w zależności od rozmiaru wiadra może to zająć wiele godzin, ponieważ większość kroków to O (n) z liczbą kluczy.
Można by pomyśleć, że Cloudformation to podstawowa warstwa automatyzacji AWS, ale myślę, że to tylko (dość ograniczony) potwór łączący bizantyjskie interfejsy API dla wszystkich swoich usług.
źródło