community.aws.batch_job_definition 模块 – 管理 AWS Batch 作业定义

注意

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

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

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

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

community.aws 1.0.0 中的新增功能

概要

别名:aws_batch_job_definition

要求

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

  • 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 botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_access_key_id 别名。

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

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

attempts

整数

重试策略 - 将作业移动到 RUNNABLE 状态的次数。您可以指定 1 到 10 次尝试。如果尝试次数大于一次,则如果作业失败,则会重试该作业,直到它已移动到 RUNNABLE 这么多次。

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

command

列表 / 元素=字符串

传递给容器的命令。此参数映射到 Docker 远程 API 的“创建容器”部分中的 Cmd 和 docker run 的 COMMAND 参数。有关更多信息,请参阅 https://docs.docker.net.cn/engine/reference/builder/#cmd

默认值: []

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 之后的一个版本中移除。

environment

列表 / 元素=字典

要传递给容器的环境变量。此参数映射到 Docker 远程 API 的“创建容器”部分中的 Env 和 docker run 的 –env 选项。

默认值: []

name

字符串

键值对的名称。对于环境变量,这是环境变量的名称。

value

字符串

键值对的值。对于环境变量,这是环境变量的值。

image

字符串 / 必需

用于启动容器的镜像。此字符串直接传递给 Docker 守护进程。默认情况下,Docker Hub 注册表中的镜像可用。其他仓库需使用 repository-url/image-name:tag 指定。最多允许 255 个字符(大写和小写字母)、数字、连字符、下划线、冒号、句点、正斜杠和井号。此参数映射到 Docker Remote API 的“创建容器”部分中的 Image,以及 docker run 的 IMAGE 参数。

job_definition_arn

字符串

作业定义的 ARN。

job_definition_name

字符串 / 必需

作业定义的名称。

job_role_arn

字符串

容器可以为此假设以获得 AWS 权限的 IAM 角色的 Amazon 资源名称 (ARN)。

memory

整数 / 必需

向容器提供的内存硬限制(以 MiB 为单位)。如果您的容器尝试超过此处指定的内存,则容器将被终止。此参数映射到 Docker Remote API 的“创建容器”部分中的 Memory,以及 docker run 的 –memory 选项。

mount_points

列表 / 元素=字典

容器中数据卷的挂载点。此参数映射到 Docker Remote API 的“创建容器”部分中的 Volumes,以及 docker run 的 –volume 选项。

默认值: []

containerPath

字符串

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

readOnly

字符串

如果此值为 true,则容器对卷具有只读访问权限;否则,容器可以写入卷。默认值为 false

sourceVolume

字符串

要挂载的卷的名称。

parameters

字典

在作业定义中设置的默认参数替换占位符。参数指定为键值对映射。SubmitJob 请求中的参数会覆盖作业定义中任何相应的参数默认值。

privileged

字符串

当此参数为 true 时,容器将获得主机容器实例上的提升权限(类似于 root 用户)。此参数映射到 Docker Remote API 的“创建容器”部分中的 Privileged,以及 docker run 的 –privileged 选项。

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 选项互斥。

readonly_root_filesystem

字符串

当此参数为 true 时,容器将获得对其根文件系统的只读访问权限。此参数映射到 Docker Remote API 的“创建容器”部分中的 ReadonlyRootfs,以及 docker run 的 –read-only 选项。

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 之后的发行版中移除。

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"

type

字符串 / 必需

作业定义的类型。

ulimits

列表 / 元素=字典

要在容器中设置的 ulimit 列表。此参数映射到 Docker Remote API 的“创建容器”部分中的 Ulimits,以及 docker run 的 –ulimit 选项。

默认值: []

hardLimit

字符串

ulimit 类型的硬限制。

name

字符串

ulimit 的类型。

softLimit

字符串

ulimit 类型的软限制。

user

字符串

在容器内使用的用户名。此参数映射到 Docker Remote API 的“创建容器”部分中的 User,以及 docker run 的 –user 选项。

validate_certs

布尔值

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

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

选项

  • false

  • true ← (默认)

vcpus

整数 / 必需

为容器保留的 vCPU 数量。此参数映射到 Docker Remote API 的“创建容器”部分中的 CpuShares,以及 docker run 的 –cpu-shares 选项。每个 vCPU 等于 1,024 个 CPU 份额。

volumes

列表 / 元素=字典

作业中使用的数据卷列表。

默认值: []

host

字符串

host 参数的内容决定您的数据卷是否在主机容器实例上持久存在以及存储位置。如果 host 参数为空,则 Docker 守护进程将为您的数据卷分配主机路径,但不能保证在关联的容器停止运行后数据会持久存在。这是一个具有一个属性的字典,sourcePath - 提供给容器的主机容器实例上的路径。如果此参数为空,则 Docker 守护进程将为您分配主机路径。如果 host 参数包含 sourcePath 文件位置,则数据卷将持久存在于主机容器实例上的指定位置,直到您手动删除它。如果主机容器实例上不存在 sourcePath 值,则 Docker 守护进程将创建它。如果该位置存在,则导出 source 路径文件夹的内容。

name

字符串

卷的名称。最多允许 255 个字符(大写和小写字母)、数字、连字符和下划线。此名称在容器定义 mountPoints 的 sourceVolume 参数中引用。

备注

注意

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

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

示例

---
- name: My Batch Job Definition
  community.aws.batch_job_definition:
    job_definition_name: My Batch Job Definition
    state: present
    type: container
    parameters:
      Param1: Val1
      Param2: Val2
    image: <Docker Image URL>
    vcpus: 1
    memory: 512
    command:
      - python
      - run_my_script.py
      - arg1
    job_role_arn: <Job Role ARN>
    attempts: 3
  register: job_definition_create_result

- name: show results
  ansible.builtin.debug: var=job_definition_create_result

返回值

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

描述

output

字典

返回采取的操作、是否进行了更改、调用和响应

返回:始终

示例: {"aws_batch_job_definition_action": "none", "changed": false, "response": {"job_definition_arn": "arn:aws:batch:....", "job_definition_name": "<name>", "status": "INACTIVE", "type": "container"}}

作者

  • Jon Meran (@jonmer85)