2016-03-22 7 views
3

In AWS ECS können Sie eine Aufgabe oder einen Dienst ausführen.Wie wird ein Service in AWS ECS mit Container-Überschreibungen ausgeführt?

Wenn Sie eine Aufgabe mit run_task(**kwargs) ausführen, haben Sie die Möglichkeit, einige Aufgabenoptionen zu überschreiben, z. B. die Container-Umgebungsvariablen. So können Sie beispielsweise das Objekt im Container konfigurieren. Das ist großartig.

Jetzt kann ich keinen Weg finden, wie das gleiche mit create_service(**kwargs) zu tun. Sie können nur eine Aufgabe angeben, sodass der erstellte Container mit der in der Aufgabendefinition angegebenen Konfiguration ausgeführt wird. Keine Möglichkeit, es zu konfigurieren.

Gibt es eine Möglichkeit, eine Aufgabe in einem Dienst zu ändern, oder ist dies mit dem AWS ECS-Dienst nicht möglich?

Antwort

1

Dies ist nicht möglich. Wenn Sie sich überlegen, wie Dienste funktionieren, erstellen sie eine X-Anzahl von Replikaten der Aufgabe. Alle Instanzen der Aufgabe haben die gleichen Parameter, da der Zweck darin besteht, die Aufgabe zu skalieren - sie sollten die gleiche Aufgabe erledigen. Oft ist der Datenverkehr Lastenausgleich (Teil der Dienstkonfiguration), so dass es unerwünscht ist, dass ein Benutzer beim nächsten Mal eine andere Antwort erhält als die vorherige Anfrage, weil er bei einer Aufgabe ankommt, die anders konfiguriert ist. Unterm Strich also - das ist Absicht.

Da Parameter gemeinsam genutzt werden, müssen Sie, wenn Sie einen Parameter ändern müssen, eine neue Definition der Aufgabe erstellen und diese dann als Dienst starten (oder einen vorhandenen Dienst aktualisieren).

Wenn Sie möchten, dass die Tasks andere Tasks kennen (und sich somit anders verhalten), z. B. um Daten in verschiedene Shards eines Sharded-Speichers zu schreiben, müssen Sie dies in der Task-Logik implementieren.

+0

Ich hoffe, AWS wird die Implementierung überdenken, weil: 1) Task in der Entwicklungsphase manuell ausgeführt und später in den Service integriert wird. Daher ist es sinnvoll, die Definition ähnlich zu halten 2) eindeutige Taskdefinition für jeden ECS-Cluster macht sie zu eng integriert und kaum wiederverwendbar –

Verwandte Themen