2016-03-22 13 views
3

AWS ECSでは、タスクまたはサービスを実行できます。コンテナオーバーライドを使用してAWS ECSでサービスを実行するにはどうすればよいですか?

run_task(**kwargs)でタスクを実行する場合は、コンテナ環境変数などのタスクオプションをオーバーライドするオプションがあります。このようにして、コンテナ内の設定などができます。それは素晴らしいことです。

今、私はcreate_service(**kwargs)と同じようにする方法を見つけることができません。タスクを指定することしかできないため、作成されたコンテナはタスク定義で指定されたコンフィグレーションで実行されます。それを設定する方法はありません。

サービスのタスクを変更する方法はありますか、それともAWS ECSサービスでは不可能ですか?

答えて

1

これはできません。サービスがどのように機能するかを考えると、タスクのレプリカをX個作成します。タスクのスケーリングが目的であるため、タスクのすべてのインスタンスには同じパラメータがあります。同じ作業を行う必要があります。多くの場合、トラフィックは負荷分散されているため(サービス構成の一部)、別の方法で構成されたタスクが終了するため、前回の要求よりも次回の応答がユーザーには望ましくないことがあります。結論は - それは設計によるものです。

パラメータが共有されているため、パラメータを変更する必要がある場合は、タスクの新しい定義を作成し、それをサービスとして起動します(または既存のサービスを更新します)。

タスクが他のタスクに気付いて(異なる動作をする)、たとえば、シャードストアの異なるシャードにデータを書き込む場合は、タスクのロジックにそのタスクを実装する必要があります。

+0

私はAWSが実装を再考することを願っています:1)通常、タスクは開発段階で手動で実行され、後でサービスに統合されるため、定義を似たままにしておくことが理にかなっています。2)ECSクラスタごとに固有のタスク定義が、やっと再利用可能 –

関連する問題