Ich habe einen meiner Dienste so eingerichtet, dass er in ECS (EC2) bereitgestellt werden kann. Ich habe den Dienst und die Aufgabendefinition über Terraform konfiguriert und verwende dann zum Bereitstellen Github-Aktionen, bei denen ich die Aufgabendefinition anscheinend erneut definieren muss.
Es scheint, dass beides erforderlich ist. Was wäre der richtige Arbeitsablauf, damit ich die doppelte Aufgabendefinition entfernen kann?
Außerdem besteht das Problem, dass nach der Bereitstellung dieser Aufgabendefinition über Github-Aktionen das Image aktualisiert wurde, was Terraform wiederherstellen möchte.
Antwort1
Dies ist zwar schon etwas älter, dient aber als zukünftige Referenz.
Der erste ist erforderlich, um den Dienst erstmals zu starten (während Sie Ihren vorkonfigurierten Cluster erstellen).
Sie können die zweite Option als eine Möglichkeit betrachten, um IhreService(Stellen Sie während Ihrer GitHub Actions-Bereitstellung eine neue Version des Images bereit) über die ursprüngliche (da Sie die Image-ID und grundsätzlich alles ändern können, was Sie als Konfigurationsoption in der Aufgabendefinition haben).
In Bezug auf Terraform können Sie eine Lebenszyklusregel hinzufügen, um alle Änderungen an der vorkonfigurierten Image-ID mit etwas wie diesem in deraws_ecs_service:
lifecycle {
ignore_changes = [task_definiton]
}
Es gibtein ziemlich altes Problemim Projekt terraform-provider-aws im Hinblick darauf, wie es mit Änderungen der Aufgabendefinition umgeht. Sehen Sie sich an:dieser Kommentarfür einen möglichen Workaround für Ihren Anwendungsfall (Blogbeitrag zum Thema vom Kommentarautor).
Unten sehen Sieein weiterer KommentarVerknüpfen einesSofort einsatzbereite Github Actions-Lösung mit einem Terraform-Codebeispiel.