【发布时间】:2021-12-16 00:58:12
【问题描述】:
我正在尝试使用 CDK 为使用 3 个绑定装载卷的 DataDog 代理部署 EC2 TaskDefinition。 DD example task definition 看起来很简单。
以下 Cloudformation 模板的片段已由 AWS CDK 生成。部署它会引发Unknown volume: 'null' 错误,所有三个卷都是原样。如果没有设置卷,它将成功部署。
我尝试通过 cloudformation UI 使用变更集来一次添加一个卷。添加第一卷本身可以正常工作,但是添加两个或三个失败并出现Unknown volume: 'null' 错误,无论是分阶段还是一次性添加。
通过 ECS 控制台手动编辑任务定义确实会成功添加第二个卷。
似乎没有关于此特定错误的任何文档,而且我无法理解 ECS 服务如何在卷数组中获取空值。我怀疑我在某处遗漏了一些明显的东西,所以希望有人对正在发生的事情有所了解。
{
"MonitoringTask9D49B4FA": {
"Type": "AWS::ECS::TaskDefinition",
"Properties": {
"ContainerDefinitions": [
{
"Cpu": 10,
"Environment": [
{
"Name": "DD_SITE",
"Value": "datadoghq.com"
}
],
"Essential": true,
"Image": "datadog/agent:latest",
"LogConfiguration": {
"LogDriver": "awslogs",
"Options": {
"awslogs-group": {
"Ref": "MonitoringTaskDatadogAgentLogGroupC5828485"
},
"awslogs-region": "eu-west-1"
}
},
"MemoryReservation": 256,
"MountPoints": [
{}
],
"Name": "datadog"
}
],
"ExecutionRoleArn": {
"Fn::GetAtt": [
"MonitoringTaskExecutionRole3188D770",
"Arn"
]
},
"Family": "datadog-agent-task",
"NetworkMode": "bridge",
"RequiresCompatibilities": [
"EC2"
],
"Tags": [
{
"Key": "Environment",
"Value": "develop"
},
],
"TaskRoleArn": {
"Fn::GetAtt": [
"MonitoringTaskTaskRole70FF4D63",
"Arn"
]
},
"Volumes": [
{
"Host": {
"SourcePath": "/var/run/docker.sock"
},
"Name": "docker_sock"
},
{
"Host": {
"SourcePath": "/proc/"
},
"Name": "proc"
},
{
"Host": {
"SourcePath": "/sys/fs/cgroup/"
},
"Name": "cgroup"
}
]
},
"Metadata": {
"aws:cdk:path": "Stack/MonitoringTask/Resource"
}
}
}
【问题讨论】:
标签: amazon-cloudformation amazon-ecs aws-cdk datadog