ECS错误:“最匹配的容器实例缺少您的任务所需的属性”

时间:2019-05-24 10:24:32

标签: amazon-web-services amazon-ecs

我创建了一个ECS服务,该服务无法在EC2容器中运行任何任务。我一直在“服务”的“事件”标签下收到此消息。

from flask import Flask
from flask import render_template
from flask import request

app = Flask(__name__, template_folder="templates/")

app.route("/login", method=['POST', 'GET'])

def index():
    greeting = "Hello World"
    if request.method == "POST":
        name = request.form['name']
        greet = request.form['greet']
        greeting = f"{greet}, {name}"
        return render_template("index.html", greeting=greeting)
    else:`enter code here`
        return render_template("hello_form.html")

if __name__ == "__main__":
    app.run(debug=True)

我已经阅读了SO中几乎所有的问题线程,但是我无法找出导致此错误的原因。错误消息不能清楚地说明缺少(或不匹配)的特定属性。我不知道要在EC2上运行的任务需要配置什么。

2 个答案:

答案 0 :(得分:0)

抛出该错误是因为,正如您所说的,您的实例is missing an attribute required by your task

  

某些任务定义参数需要特定的Docker远程API   要在容器实例上安装的版本。其他,例如   记录驱动程序选项,要求容器实例进行注册   使用ECS_AVAILABLE_LOGGING_DRIVERS代理的那些日志驱动程序   配置变量。如果您的任务定义包含参数   需要特定的容器实例属性,而您不需要   有任何可用的容器实例可以满足此要求   要求,无法放置任务。 source

您需要如何配置以及如何配置哪些属性取决于您的任务定义要求。如果您曾经使用过ECS优化的AMI,则有些要求您更新/etc/ecs/ecs.config下的容器代理配置。

您将需要通过以下链接(task definition parameterscontainer agent configuration)来了解如何根据任务定义要求准确配置实例。

答案 1 :(得分:0)

找出缺少哪些属性的最简单方法是使用ecs-cli check-attributes