community.aws.ecs_taskdefinition 模块 – 在 ECS 中注册任务定义

注意

此模块是 community.aws 集合 (版本 9.0.0) 的一部分。

如果您正在使用 ansible 包,则您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.aws。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:community.aws.ecs_taskdefinition

community.aws 1.0.0 中的新增功能

概要

  • 在 Amazon Web Services (AWS) EC2 Container Service (ECS) 中注册或注销任务定义。

要求

执行此模块的主机需要以下要求。

  • python >= 3.6

  • boto3 >= 1.28.0

  • botocore >= 1.31.0

参数

参数

注释

access_key

别名:aws_access_key_id、aws_access_key、ec2_access_key

字符串

AWS 访问密钥 ID。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

还可以按优先级递减的顺序使用 AWS_ACCESS_KEY_IDAWS_ACCESS_KEYEC2_ACCESS_KEY 环境变量。

aws_access_keyprofile 选项是互斥的。

aws_access_key_id 别名在 5.1.0 版本中添加,以与 AWS botocore SDK 保持一致。

ec2_access_key 别名已被弃用,并将在 2024-12-01 之后的版本中删除。

EC2_ACCESS_KEY 环境变量的支持已被弃用,并将在 2024-12-01 之后的版本中删除。

arn

字符串

要删除的任务描述的 ARN。

aws_ca_bundle

路径

验证 SSL 证书时要使用的 CA 证书包的位置。

也可以使用 AWS_CA_BUNDLE 环境变量。

aws_config

字典

用于修改 botocore 配置的字典。

参数可以在 AWS 文档中找到 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config

containers

列表 / 元素=字典 / 必需

容器定义列表。

有关参数的完整列表,请参阅 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html

command

列表 / 元素=字符串

传递给容器的命令。如果有多个参数,则每个参数都是数组中一个单独的字符串。

cpu

整数

为容器保留的 CPU 单位数。

dependsOn

列表 / 元素=字典

为容器启动和关闭定义的依赖项。

为容器启动定义依赖项时,为容器关闭反转依赖项。

condition

字符串 / 必需

容器的依赖条件。

选项

  • "start"

  • "complete"

  • "success"

  • "healthy"

containerName

字符串 / 必需

容器的名称。

disableNetworking

布尔值

当此参数为 True 时,容器内的网络会被禁用。

选项

  • false

  • true

dnsSearchDomains

列表 / 元素=字符串

呈现给容器的 DNS 搜索域列表。

此参数不支持 Windows 容器。

dnsServers

列表 / 元素=字符串

呈现给容器的 DNS 服务器列表。

此参数不支持 Windows 容器。

dockerLabels

字典

要添加到容器的键/值标签映射。

dockerSecurityOptions

列表 / 元素=字符串

用于为 SELinux 和 AppArmor 多级安全系统提供自定义标签的字符串列表。

此参数不支持 Windows 容器。

entryPoint

字符串

传递给容器的入口点。

environment

列表 / 元素=字典

要传递给容器的环境变量。

name

字符串

键值对的名称。

value

字符串

键值对的值。

environmentFiles

列表 / 元素=字典

包含要传递给容器的环境变量的文件列表。

type

字符串

要使用的文件类型。唯一支持的值是 s3

value

字符串

包含环境变量文件的 Amazon S3 对象的 Amazon 资源名称 (ARN)。

essential

布尔值

如果 essential=True,并且容器由于任何原因失败或停止,则任务中的所有其他容器都将停止。

选项

  • false

  • true

extraHosts

列表 / 元素=字典

要附加到容器上 /etc/hosts 文件的主机名和 IP 地址映射列表。

此参数不支持使用 network_mode=awsvpc 的 Windows 容器或任务。

hostname

字符串

要在 /etc/hosts 条目中使用的主机名。

ipAddress

字符串

要在 /etc/hosts 条目中使用的 IP 地址。

firelensConfiguration

字典

容器的 FireLens 配置。

这用于指定和配置容器日志的日志路由器。

options

字典

配置日志路由器时可用的选项。

此字段是可选的,可用于指定自定义配置文件,或添加其他元数据,例如任务、任务定义、集群和容器实例详细信息到日志事件。

如果指定,则应使用以下语法:{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}

更多信息,请参见 https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef

type

字符串

要使用的日志路由器。有效值为 fluentdfluentbit

选项

  • "fluentd"

  • "fluentbit"

健康检查

字典

容器的健康检查命令和相关配置参数。

command

列表 / 元素=字符串

表示容器运行以确定其是否健康的命令的字符串数组。

字符串数组必须以 CMD 开头以直接运行命令参数,或以 CMD-SHELL 开头以使用容器的默认 shell 运行命令。

退出代码 0 表示成功,非零退出代码表示失败。

间隔

整数

每次健康检查执行之间的时间段(以秒为单位)。

您可以指定 5 到 300 秒之间的时间。默认值为 30 秒。

默认值: 30

重试次数

整数

在容器被认为不健康之前,重试失败健康检查的次数。

您可以指定 1 到 10 次重试。默认值为 3。

默认值: 3

启动周期

整数

可选的宽限期,为容器提供启动时间,然后再将失败的健康检查计入最大重试次数。

您可以指定 0 到 300 秒之间的时间。默认情况下,startPeriod 已禁用。

注意:如果健康检查在 startPeriod 内成功,则容器被认为是健康的,任何后续失败都将计入最大重试次数。

超时

整数

等待健康检查成功之前将其视为失败的时间段(以秒为单位)。

您可以指定 2 到 60 秒之间的时间。默认值为 5。

默认值: 5

hostname

字符串

要为您的容器使用的主机名。

如果 *network_mode=awsvpc*,则不支持此参数。

镜像

字符串

用于启动容器的镜像。

交互式

布尔值

当 *interactive=True* 时,允许部署需要分配 stdin 或 tty 的容器化应用程序。

选项

  • false

  • true

列表 / 元素=字符串

允许容器相互通信,而无需端口映射。

仅当 *network_mode=bridge* 时才支持此参数。

linuxParameters

字典

应用于容器的 Linux 特定修改,例如 Linux 内核功能。

功能

字典

添加到或从 Docker 提供的默认配置中删除的容器的 Linux 功能。

添加

列表 / 元素=字符串

已添加到 Docker 提供的默认配置的容器的 Linux 功能。

如果 *launch_type=FARGATE*,则不支持此参数。

选项

  • "ALL"

  • "AUDIT_CONTROL"

  • "AUDIT_WRITE"

  • "BLOCK_SUSPEND"

  • "CHOWN"

  • "DAC_OVERRIDE"

  • "DAC_READ_SEARCH"

  • "FOWNER"

  • "FSETID"

  • "IPC_LOCK"

  • "IPC_OWNER"

  • "KILL"

  • "LEASE"

  • "LINUX_IMMUTABLE"

  • "MAC_ADMIN"

  • "MAC_OVERRIDE"

  • "MKNOD"

  • "NET_ADMIN"

  • "NET_BIND_SERVICE"

  • "NET_BROADCAST"

  • "NET_RAW"

  • "SETFCAP"

  • "SETGID"

  • "SETPCAP"

  • "SETUID"

  • "SYS_ADMIN"

  • "SYS_BOOT"

  • "SYS_CHROOT"

  • "SYS_MODULE"

  • "SYS_NICE"

  • "SYS_PACCT"

  • "SYS_PTRACE"

  • "SYS_RAWIO"

  • "SYS_RESOURCE"

  • "SYS_TIME"

  • "SYS_TTY_CONFIG"

  • "SYSLOG"

  • "WAKE_ALARM"

删除

列表 / 元素=字符串

已从 Docker 提供的默认配置中删除的容器的 Linux 功能。

选项

  • "ALL"

  • "AUDIT_CONTROL"

  • "AUDIT_WRITE"

  • "BLOCK_SUSPEND"

  • "CHOWN"

  • "DAC_OVERRIDE"

  • "DAC_READ_SEARCH"

  • "FOWNER"

  • "FSETID"

  • "IPC_LOCK"

  • "IPC_OWNER"

  • "KILL"

  • "LEASE"

  • "LINUX_IMMUTABLE"

  • "MAC_ADMIN"

  • "MAC_OVERRIDE"

  • "MKNOD"

  • "NET_ADMIN"

  • "NET_BIND_SERVICE"

  • "NET_BROADCAST"

  • "NET_RAW"

  • "SETFCAP"

  • "SETGID"

  • "SETPCAP"

  • "SETUID"

  • "SYS_ADMIN"

  • "SYS_BOOT"

  • "SYS_CHROOT"

  • "SYS_MODULE"

  • "SYS_NICE"

  • "SYS_PACCT"

  • "SYS_PTRACE"

  • "SYS_RAWIO"

  • "SYS_RESOURCE"

  • "SYS_TIME"

  • "SYS_TTY_CONFIG"

  • "SYSLOG"

  • "WAKE_ALARM"

设备

列表 / 元素=字典

要公开给容器的任何主机设备。

如果 *launch_type=FARGATE*,则不支持此参数。

containerPath

字符串

在容器内公开主机设备的路径。

hostPath

字符串 / 必需

主机容器实例上设备的路径。

权限

列表 / 元素=字符串

要为设备提供给容器的显式权限。

initProcessEnabled

布尔值

在容器内运行 init 进程,以转发信号和收集进程。

选项

  • false

  • true

maxSwap

整数

容器可以使用交换内存的总量(以 MiB 为单位)。

如果 *launch_type=FARGATE*,则不支持此参数。

sharedMemorySize

整数

/dev/shm 卷的大小值(以 MiB 为单位)。

如果 *launch_type=FARGATE*,则不支持此参数。

swappiness

整数

这允许您调整容器的内存 swappiness 行为。

如果 *launch_type=FARGATE*,则不支持此参数。

tmpfs

列表 / 元素=字典

tmpfs 挂载的容器路径、挂载选项和大小(以 MiB 为单位)。

如果 *launch_type=FARGATE*,则不支持此参数。

containerPath

字符串 / 必需

要挂载 tmpfs 卷的绝对文件路径。

mountOptions

列表 / 元素=字符串

tmpfs 卷挂载选项的列表。

选项

  • "defaults"

  • "ro"

  • "rw"

  • "suid"

  • "nosuid"

  • "dev"

  • "nodev"

  • "exec"

  • "noexec"

  • "sync"

  • "async"

  • "dirsync"

  • "remount"

  • "mand"

  • "nomand"

  • "atime"

  • "noatime"

  • "diratime"

  • "nodiratime"

  • "bind"

  • "rbind"

  • "unbindable"

  • "runbindable"

  • "private"

  • "rprivate"

  • "shared"

  • "rshared"

  • "slave"

  • "rslave"

  • "relatime"

  • "norelatime"

  • "strictatime"

  • "nostrictatime"

  • "mode"

  • "uid"

  • "gid"

  • "nr_inodes"

  • "nr_blocks"

  • "mpol"

大小

整数 / 必需

tmpfs 卷的大小(以 MiB 为单位)。

logConfiguration

字典

容器的日志配置规范。

logDriver

字符串

要为容器使用的日志驱动程序。

对于 AWS Fargate 上的任务,支持的日志驱动程序为 awslogssplunkawsfirelens

对于在 Amazon EC2 实例上托管的任务,支持的日志驱动程序为 awslogsfluentdgelfjson-filejournaldlogentriessyslogsplunkawsfirelens

内存

整数

要提供给容器的内存量(以 MiB 为单位)。

memoryReservation

整数

为容器保留的内存软限制(以 MiB 为单位)。

mountPoints

列表 / 元素=字典

容器中数据卷的挂载点。

containerPath

字符串

在容器上挂载主机卷的路径。

只读

布尔值

如果此值为 True,则容器对卷具有只读访问权限。

如果此值为 False,则容器可以写入卷。

选项

  • false ← (默认)

  • true

sourceVolume

字符串

要挂载的卷的名称。

name

字符串

容器的名称。

options

字符串

要发送到日志驱动程序的配置选项。

portMappings

列表 / 元素=字典

容器的端口映射列表。

containerPort

整数

容器上绑定到用户指定或自动分配的主机端口的端口号。

hostPort

整数

要在容器实例上为您的容器保留的端口号。

协议

字符串

用于端口映射的协议。

选项

  • "tcp" ← (默认)

  • "udp"

特权

布尔值

当此参数为 True 时,容器将在主机容器实例上获得提升的权限。

选项

  • false

  • true

伪终端

布尔值

当此参数为 True 时,将分配 TTY。

选项

  • false

  • true

readonlyRootFilesystem

布尔值

当此参数为 True 时,容器将获得对其根文件系统的只读访问权限。

选项

  • false

  • true

repositoryCredentials

字典

要使用的私有存储库身份验证凭据。

credentialsParameter

字符串 / 必需

包含私有存储库凭据的密钥的 Amazon 资源名称 (ARN)。

resourceRequirements

列表 / 元素=字典

要分配给容器的资源类型和数量。

唯一支持的资源是 GPUInferenceAccelerator

type

字符串

要分配给容器的资源类型。

选项

  • "GPU"

  • "InferenceAccelerator"

value

字符串

指定资源类型的值。

secretOptions

列表 / 元素=字典

要传递到日志配置的密钥。

name

字符串

密钥的名称。

valueFrom

字符串

要公开给容器的密钥。

secrets

列表 / 元素=字典

要传递到容器的密钥。

name

字符串 / 必需

要设置为容器上环境变量的值。

大小

字符串 / 必需

要公开给容器的密钥。

startTimeout

整数

在放弃解决容器依赖项之前等待的时间长度(以秒为单位)。

stopTimeout

整数

如果容器没有自行正常退出,则在强制终止容器之前等待的时间长度(以秒为单位)。

systemControls

列表 / 元素=字典

要在容器中设置的命名空间内核参数列表。

命名空间

字符串

要为其设置 value 的命名空间内核参数。

value

字符串

namespace 中指定的命名空间内核参数的值。

ulimits

列表 / 元素=字典

要在容器中设置的 ulimits 列表。

此参数不支持 Windows 容器。

hardLimit

整数

ulimit 类型的硬限制。

name

字符串

ulimit 的类型。

选项

  • "core"

  • "cpu"

  • "data"

  • "fsize"

  • "locks"

  • "memlock"

  • "msgqueue"

  • "nice"

  • "nofile"

  • "nproc"

  • "rss"

  • "rtprio"

  • "rttime"

  • "sigpending"

  • 堆栈

软限制

整数

ulimit 类型的软限制。

用户

字符串

容器内使用的用户。

此参数不支持 Windows 容器。

volumesFrom

列表 / 元素=字典

要从另一个容器挂载的数据卷。

只读

布尔值

如果此值为 True,则容器对卷具有只读访问权限。

如果此值为 False,则容器可以写入卷。

选项

  • false ← (默认)

  • true

sourceContainer

字符串

要从中挂载卷的同一任务定义中的另一个容器的名称。

workingDirectory

字符串

在容器内运行命令的工作目录。

cpu

字符串

任务使用的 CPU 单位数。如果 launch_type=EC2,则此字段是可选的,可以使用任何值。

如果 launch_type=FARGATE,则此字段是必需的,并且必须使用 256512102420484096 之一。

debug_botocore_endpoint_logs

布尔值

使用 botocore.endpoint 日志记录器来解析在任务期间进行的唯一(而不是总计)"resource:action" API 调用,并将集合输出到任务结果中的 resource_actions 密钥。使用 aws_resource_action 回调函数将输出到在 playbook 期间进行的总列表。

也可以使用 ANSIBLE_DEBUG_BOTOCORE_LOGS 环境变量。

选项

  • false ← (默认)

  • true

endpoint_url

别名:ec2_url、aws_endpoint_url、s3_url

字符串

用于连接到非默认 AWS 端点的 URL。虽然这可以用于连接到其他兼容 AWS 的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行了测试。

也可以使用 AWS_URLEC2_URL 环境变量,优先级递减。

ec2_urls3_url 别名已被弃用,并将在 2024-12-01 之后的一个版本中移除。

EC2_URL 环境变量的支持已被弃用,并将在 2024-12-01 之后的一个版本中移除。

execution_role_arn

字符串

Amazon ECS 容器代理和 Docker 守护程序可以假定的任务执行角色的 Amazon 资源名称 (ARN)。

默认值: ""

family

字符串

将赋予任务定义的名称。

force_create

布尔值

始终创建新的任务定义。

选项

  • false ← (默认)

  • true

launch_type

字符串

运行任务的启动类型。

选项

  • "EC2"

  • "FARGATE"

内存

字符串

任务使用的内存量(以 MiB 为单位)。如果 launch_type=EC2,则此字段是可选的,可以使用任何值。

如果 launch_type=FARGATE,则此字段是必需的,并且受 CPU 限制。

network_mode

字符串

要用于任务中容器的 Docker 网络模式。

Windows 容器必须使用 network_mode=default,这将使用 Docker NAT 网络。

为 Linux 容器设置 network_mode=default 将使用 bridge 模式。

选项

  • "default"

  • "bridge" ← (默认)

  • "host"

  • "none"

  • "awsvpc"

placement_constraints

列表 / 元素=字典

在 community.aws 2.1.0 中添加

要用于任务的放置约束对象。

每个任务最多可以指定 10 个约束。

Fargate 上运行的任务不支持任务放置约束。

expression

字符串

应用于约束的集群查询语言表达式。

type

字符串

约束的类型。

profile

别名:aws_profile

字符串

用于身份验证的命名 AWS 配置文件。

有关命名配置文件的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

也可以使用 AWS_PROFILE 环境变量。

profile 选项与 aws_access_keyaws_secret_keysecurity_token 选项互斥。

region

别名:aws_region、ec2_region

字符串

要使用的 AWS 区域。

对于 IAM、Route53 和 CloudFront 等全球服务,将忽略 region

也可以使用 AWS_REGIONEC2_REGION 环境变量。

有关更多信息,请参阅 Amazon AWS 文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

ec2_region 别名已被弃用,并将在 2024-12-01 之后的一个版本中移除。

EC2_REGION 环境变量的支持已被弃用,并将在 2024-12-01 之后的一个版本中移除。

revision

整数

任务定义的修订号。

runtime_platform

字典

在 community.aws 6.4.0 中添加

任务的运行时平台配置

默认值: {"cpuArchitecture": "X86_64", "operatingSystemFamily": "LINUX"}

cpuArchitecture

字符串

任务要使用的 CPU 架构类型

选项

  • "X86_64"

  • "ARM64"

operatingSystemFamily

字符串

任务要使用的操作系统类型

选项

  • "LINUX"

  • "WINDOWS_SERVER_2019_FULL"

  • "WINDOWS_SERVER_2019_CORE"

  • "WINDOWS_SERVER_2022_FULL"

  • "WINDOWS_SERVER_2022_CORE"

secret_key

别名:aws_secret_access_key、aws_secret_key、ec2_secret_key

字符串

AWS 密钥访问密钥。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以使用 AWS_SECRET_ACCESS_KEYAWS_SECRET_KEYEC2_SECRET_KEY 环境变量,优先级递减。

secret_keyprofile 选项互斥。

为了与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_secret_access_key 别名。

ec2_secret_key 别名已被弃用,并将在 2024-12-01 之后的一个版本中移除。

EC2_SECRET_KEY 环境变量的支持已被弃用,并将在 2024-12-01 之后的一个版本中移除。

session_token

别名:aws_session_token、security_token、aws_security_token、access_token

字符串

与临时凭据一起使用的 AWS STS 会话令牌。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以使用 AWS_SESSION_TOKENAWS_SECURITY_TOKENEC2_SECURITY_TOKEN 环境变量,优先级递减。

security_tokenprofile 选项互斥。

在 3.2.0 版本中添加了 aws_session_tokensession_token 别名,在 6.0.0 版本中将参数名称从 security_token 重命名为 session_token

security_tokenaws_security_tokenaccess_token 别名已被弃用,并将在 2024-12-01 之后的一个版本中移除。

EC2_SECRET_KEYAWS_SECURITY_TOKEN 环境变量的支持已被弃用,并将在 2024-12-01 之后的一个版本中移除。

state

字符串 / 必需

任务定义是否存在或是否应删除。

选项

  • "present"

  • "absent"

task_role_arn

字符串

此任务中的容器可以假定的 IAM 角色的 Amazon 资源名称 (ARN)。此任务中的所有容器都将被授予在此角色中指定的权限。

默认值: ""

validate_certs

布尔值

设置为 false 时,将不会验证与 AWS API 通信的 SSL 证书。

强烈建议不要设置 validate_certs=false,作为替代方法,请考虑改用 aws_ca_bundle

选项

  • false

  • true ← (默认)

volumes

列表 / 元素=字典

要附加的卷的名称列表。

name

字符串 / 必需

卷的名称。

注释

注意

  • 警告:对于模块,环境变量和配置文件是从 Ansible 的“主机”上下文而不是“控制器”上下文读取的。因此,可能需要将文件显式复制到“主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible 的“控制器”上下文而不是“主机”上下文读取的。

  • Ansible 使用的 AWS SDK (boto3) 也可能从 Ansible “主机”上下文中的配置文件(通常为 ~/.aws/credentials)读取凭据和其他设置(例如区域)的默认值。有关更多信息,请参阅 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html

示例

- name: Create task definition
  community.aws.ecs_taskdefinition:
    containers:
      - name: simple-app
        cpu: 10
        essential: true
        image: "httpd:2.4"
        memory: 300
        mountPoints:
          - containerPath: /usr/local/apache2/htdocs
            sourceVolume: my-vol
        portMappings:
          - containerPort: 80
            hostPort: 80
        logConfiguration:
          logDriver: awslogs
          options:
            awslogs-group: /ecs/test-cluster-taskdef
            awslogs-region: us-west-2
            awslogs-stream-prefix: ecs
      - name: busybox
        command:
          - >
            /bin/sh -c "while true; do echo '<html><head><title>Amazon ECS Sample App</title></head><body><div><h1>Amazon ECS Sample App</h1>
            <h2>Congratulations!</h2>
            <p>Your application is now running on a container in Amazon ECS.</p>' > top; /bin/date > date ; echo '</div></body></html>' > bottom;
            cat top date bottom > /usr/local/apache2/htdocs/index.html ; sleep 1; done"
        cpu: 10
        entryPoint:
          - sh
          - "-c"
        essential: false
        image: busybox
        memory: 200
        volumesFrom:
          - sourceContainer: simple-app
    volumes:
      - name: my-vol
    family: test-cluster-taskdef
    state: present
  register: task_output

- name: Create task definition
  community.aws.ecs_taskdefinition:
    family: nginx
    containers:
      - name: nginx
        essential: true
        image: "nginx"
        portMappings:
          - containerPort: 8080
            hostPort: 8080
        cpu: 512
        memory: 1024
    state: present

- name: Create task definition
  community.aws.ecs_taskdefinition:
    family: nginx
    containers:
      - name: nginx
        essential: true
        image: "nginx"
        portMappings:
          - containerPort: 8080
            hostPort: 8080
    launch_type: FARGATE
    cpu: 512
    memory: 1024
    state: present
    network_mode: awsvpc

- name: Create task definition
  community.aws.ecs_taskdefinition:
    family: nginx
    containers:
      - name: nginx
        essential: true
        image: "nginx"
        portMappings:
          - containerPort: 8080
            hostPort: 8080
        cpu: 512
        memory: 1024
        dependsOn:
          - containerName: "simple-app"
            condition: "start"

# Create Task Definition with Environment Variables and Secrets
- name: Create task definition
  community.aws.ecs_taskdefinition:
    family: nginx
    containers:
      - name: nginx
        essential: true
        image: "nginx"
        environment:
          - name: "PORT"
            value: "8080"
        secrets:
          # For variables stored in Secrets Manager
          - name: "NGINX_HOST"
            valueFrom: "arn:aws:secretsmanager:us-west-2:123456789012:secret:nginx/NGINX_HOST"
          # For variables stored in Parameter Store
          - name: "API_KEY"
            valueFrom: "arn:aws:ssm:us-west-2:123456789012:parameter/nginx/API_KEY"
    launch_type: FARGATE
    cpu: 512
    memory: 1GB
    state: present
    network_mode: awsvpc

# Create Task Definition with health check
- name: Create task definition
  community.aws.ecs_taskdefinition:
    family: nginx
    containers:
      - name: nginx
        essential: true
        image: "nginx"
        portMappings:
          - containerPort: 8080
            hostPort: 8080
        cpu: 512
        memory: 1024
        healthCheck:
          command:
            - CMD-SHELL
            - /app/healthcheck.py
          interval: 60
          retries: 3
          startPeriod: 15
          timeout: 15
    state: present

返回值

此处记录了常见的返回值 此处,以下是此模块特有的字段

描述

taskdefinition

字典

输入参数的反映

返回:始终

作者

  • Mark Chance (@Java1Guy)

  • Alina Buzachis (@alinabuzachis)