Chcę zautomatyzować wdrażanie mojej aplikacji poprzez uruchomienie usługi ECS z najnowszym obrazem Docker. Z tego, co przeczytałem, sposób wdrożenia nowej wersji obrazu jest następujący:Usługa ECS - Automatyzacja wdrażania za pomocą nowego obrazu Docker
- Utwórz nową wersję zadania (po zaktualizowaniu obrazu w repozytorium Docker).
- Zaktualizuj usługę i podaj nową wersję.
To wydaje się działać, ale chcę to zrobić poprzez CLI, więc mogę go napisać. # 2 wydaje się dość łatwy do zrobienia dzięki AWS CLI z update-service
, ale nie widzę sposobu, aby zrobić # 1 bez określenia całego JSON zadania od nowa tak jak z register-task-definition
(mój JSON będzie zawierał poświadczenia w zmiennych środowiskowych, więc chcesz mieć to w jak najmniejszej liczbie miejsc).
Czy w ten sposób powinienem automatyzować wdrażanie moich aktualizacji usług ECS? A jeśli tak, czy istnieje "dobry" sposób, aby Definicja Zadań uruchomiła nową wersję (tj. Bez duplikowania wszystkiego)?
Podejście polega na tym, że 'opis-zadanie-definicja' będzie zawierać pierwotną definicję zadania z _containerDefinitions_ jako klucz. Odniosłem sukces, modyfikując to, a następnie uruchamiając 'register-task-definition', aby zarejestrować nową definicję. Jeśli martwisz się o ENV, najłatwiejszym rozwiązaniem jest użycie jednego z nie-bashowych zestawów SDK. –