community.aws.cloudfront_distribution 模块 – 创建、更新和删除 AWS CloudFront 分布

注意

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

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

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

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

community.aws 1.0.0 中新增

概要

  • 允许轻松创建、更新和删除 CloudFront 分布。

要求

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

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

别名

字符串

在分布中使用的别名 (CNAME) 的名称。这用于有效地通过其别名引用分布,因为每个 AWS 账户中只有一个分布可以使用别名。此变量避免了必须同时提供现有分布的 distribution_id 以及 e_tagcaller_reference

别名

列表 / 元素=字符串

用作分布的域名别名 (CNAME) 列表。

对于 AWS 账户中的所有分布,每个别名都必须唯一。

默认值: []

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

cache_behaviors

列表 / 元素=字典

描述分布缓存行为的字典列表。

除非启用 purge_cache_behaviors,否则列表的顺序将在运行之间保持不变。

cache_policy_id

字符串

community.aws 7.1.0 中新增

CloudFront 要为缓存行为使用的缓存策略的 ID。

行为应使用 cache_policy_idforwarded_values 选项。

更多信息请参见 CloudFront 文档:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html

forwarded_values

字典

指定 CloudFront 如何处理查询字符串和 Cookie 的字典。

行为应使用 cache_policy_idforwarded_values 选项。

allowed_methods

字典

控制 CloudFront 处理和转发哪些 HTTP 方法的字典。

cached_methods

列表 / 元素=字符串

您希望 CloudFront 应用缓存的 HTTP 方法列表。

可以是 [GET,HEAD][GET,HEAD,OPTIONS]

items

列表 / 元素=字符串

您希望 CloudFront 处理和转发的 HTTP 方法列表。

compress

布尔值

是否希望 CloudFront 自动压缩文件。

选项

  • false

  • true

cookies

字典

一个字典,指定您是否希望 CloudFront 将 Cookie 转发到源站,以及如果转发,要转发哪些 Cookie。

forward

字符串

指定要为此缓存行为转发到源站的 Cookie。

有效值为 allnonewhitelist

whitelisted_names

列表 / 元素=字符串

要为此缓存行为转发到源站的 Cookie 列表。

default_ttl

整数

您希望对象保留在 CloudFront 缓存中的默认时间长度。

field_level_encryption_id

字符串

您希望 CloudFront 用于加密特定数据字段的字段级加密配置。

headers

列表 / 元素=字符串

要为此缓存行为转发到源站的标头列表。

要转发所有标头,请使用包含单个元素“*”的列表(['*'])。

lambda_function_associations

列表 / 元素=字典

为此缓存行为使用的 Lambda 函数关联列表。

event_type

字符串

指定触发 Lambda 函数调用的事件类型。

可以是 viewer-requestorigin-requestorigin-responseviewer-response

lambda_function_arn

字符串

Lambda 函数的 ARN。

max_ttl

整数

您希望对象保留在 CloudFront 缓存中的最长时间长度。

min_ttl

整数

您希望对象保留在 CloudFront 缓存中的最短时间长度。

query_string

布尔值

指示您是否希望 CloudFront 将与该缓存行为关联的源站的查询字符串转发到源站。

选项

  • false

  • true

query_string_cache_keys

列表 / 元素=字符串

包含您希望 CloudFront 用作缓存行为缓存依据的查询字符串参数的列表。

smooth_streaming

布尔值

您是否希望分发 Microsoft Smooth Streaming 格式的媒体文件。

选项

  • false

  • true

trusted_signers

字典

一个字典,指定您希望允许创建私有内容的签名 URL 的 AWS 账户。

enabled

布尔值

您是否希望要求查看者使用签名 URL 来访问由 *path_pattern* 和 *target_origin_id* 指定的文件。

选项

  • false

  • true

items

列表 / 元素=字符串

为此缓存行为信任的签名者列表。

viewer_protocol_policy

字符串

当请求与 *path_pattern* 匹配时,查看者可以使用哪些协议来访问由 *target_origin_id* 指定的源站中的文件。

有效值为 allow-allredirect-to-httpshttps-only

origin_request_policy_id

字符串

community.aws 7.1.0 中新增

CloudFront 为缓存行为使用的源请求策略的 ID。

更多信息,请参阅 CloudFront 文档:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html

path_pattern

字符串

指定要应用行为的请求模式。

response_headers_policy_id

字符串

CloudFront 添加到发送给查看者的响应的标头策略的 ID。

target_origin_id

字符串

您希望 CloudFront 默认情况下将请求路由到的源站的 ID。

caller_reference

字符串

用于创建和更新 CloudFront 分发的唯一标识符。

每个调用者引用在所有分发中都必须唯一。例如,在 Web 分发中使用的调用者引用不能在流分发中重复使用。此参数可用于代替 *distribution_id* 来引用现有分发。如果未指定,则默认为格式为 YYYY-MM-DDTHH:MM:SS.ffffff 的日期时间戳。

comment

字符串

描述 CloudFront 分发的注释。

如果未指定,则默认为使用 Ansible 创建的通用消息和日期时间戳。

custom_error_responses

列表 / 元素=字典

一个配置元素,它是一个复杂的自定义错误响应 *list[]*,需要为分发指定。

此属性配置返回给用户的自定义 HTTP 错误消息。

error_caching_min_ttl

整数

CloudFront 将缓存状态代码的时间长度(以秒为单位)。

error_code

整数

自定义错误页面的错误代码。

response_code

整数

当源站返回由 *error_code* 指定的 HTTP 状态代码时,CloudFront 应返回给用户的 HTTP 状态代码。

response_page_path

字符串

当您的源站返回由 *error_code* 指定的 HTTP 状态代码时,您希望 CloudFront 返回给查看者的自定义错误页面的路径。

debug_botocore_endpoint_logs

布尔值

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

也可以使用 ANSIBLE_DEBUG_BOTOCORE_LOGS 环境变量。

选项

  • false ← (默认)

  • true

default_cache_behavior

字典

一个字典,指定分发的默认缓存行为。

如果未指定,则 *target_origin_id* 定义为 *cache_behaviors* 中第一个有效 cache_behavior 的 *target_origin_id*,并带有默认值。

cache_policy_id

字符串

community.aws 7.1.0 中新增

CloudFront 为默认缓存行为使用的缓存策略的 ID。

行为应使用 cache_policy_idforwarded_values 选项。

更多信息请参见 CloudFront 文档:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html

forwarded_values

字典

指定 CloudFront 如何处理查询字符串和 Cookie 的字典。

行为应使用 cache_policy_idforwarded_values 选项。

allowed_methods

字典

控制 CloudFront 处理和转发哪些 HTTP 方法的字典。

cached_methods

列表 / 元素=字符串

您希望 CloudFront 应用缓存的 HTTP 方法列表。

可以是 [GET,HEAD][GET,HEAD,OPTIONS]

items

列表 / 元素=字符串

您希望 CloudFront 处理和转发的 HTTP 方法列表。

compress

布尔值

是否希望 CloudFront 自动压缩文件。

选项

  • false

  • true

cookies

字典

一个字典,指定您是否希望 CloudFront 将 Cookie 转发到源站,以及如果转发,要转发哪些 Cookie。

forward

字符串

指定要为此缓存行为转发到源站的 Cookie。

有效值为 allnonewhitelist

whitelisted_names

列表 / 元素=字符串

要为此缓存行为转发到源站的 Cookie 列表。

default_ttl

整数

您希望对象保留在 CloudFront 缓存中的默认时间长度。

field_level_encryption_id

字符串

您希望 CloudFront 用于加密特定数据字段的字段级加密配置。

headers

列表 / 元素=字符串

要为此缓存行为转发到源站的标头列表。

要转发所有标头,请使用包含单个元素“*”的列表(['*'])。

lambda_function_associations

列表 / 元素=字典

为此缓存行为使用的 Lambda 函数关联列表。

event_type

字符串

指定触发 Lambda 函数调用的事件类型。

可以是 viewer-requestorigin-requestorigin-responseviewer-response

lambda_function_arn

字符串

Lambda 函数的 ARN。

max_ttl

整数

您希望对象保留在 CloudFront 缓存中的最长时间长度。

min_ttl

整数

您希望对象保留在 CloudFront 缓存中的最短时间长度。

query_string

布尔值

指示您是否希望 CloudFront 将与该缓存行为关联的源站的查询字符串转发到源站。

选项

  • false

  • true

query_string_cache_keys

列表 / 元素=字符串

包含您希望 CloudFront 用作缓存行为缓存依据的查询字符串参数的列表。

smooth_streaming

布尔值

您是否希望分发 Microsoft Smooth Streaming 格式的媒体文件。

选项

  • false

  • true

trusted_signers

字典

一个字典,指定您希望允许创建私有内容的签名 URL 的 AWS 账户。

enabled

布尔值

您是否希望要求查看者使用签名 URL 来访问由 *target_origin_id* 指定的文件。

选项

  • false

  • true

items

列表 / 元素=字符串

为此缓存行为信任的签名者列表。

viewer_protocol_policy

字符串

查看者可以使用哪些协议来访问由 *target_origin_id* 指定的源站中的文件。

有效值为 allow-allredirect-to-httpshttps-only

origin_request_policy_id

字符串

community.aws 7.1.0 中新增

CloudFront 为默认缓存行为使用的源请求策略的 ID。

更多信息,请参阅 CloudFront 文档:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html

response_headers_policy_id

字符串

CloudFront 添加到发送给查看者的响应的标头策略的 ID。

target_origin_id

字符串

您希望 CloudFront 默认情况下将请求路由到的源站的 ID。

default_origin_domain_name

字符串

如果未指定 *origins*,则用于源站的域名。

仅应在第一次生成分发时使用,而不要在后续运行中使用。

不应与 *distribution_id*、*caller_reference* 或 *alias* 结合使用。

default_origin_path

字符串

如果未指定 *origins*,则为源站指定的默认源站路径。如果未指定,则默认为空。

default_root_object

字符串

一个配置元素,指定用户请求源站时要请求的路径。

例如,如果指定为“index.html”,则当用户调用 www.example.com 时,它映射到 www.example.com/index.html。

这可以防止整个分发源站暴露在根目录下。

distribution_id

字符串

CloudFront 分发的 ID。

此参数可以与 *alias* 或 *caller_reference* 交换,并与 *e_tag* 结合使用。

e_tag

字符串

已修改或现有分发的唯一标识符。与 *distribution_id* 结合使用。

如果未指定,则会自动确定。

enabled

布尔值

一个布尔值,指定分发是启用还是禁用。

默认为 false

选项

  • false

  • true

endpoint_url

别名:ec2_url、aws_endpoint_url、s3_url

字符串

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

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

*ec2_url* 和 *s3_url* 别名已弃用,将在 2024-12-01 之后的一个版本中删除。

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

http_version

字符串

用于分发的 HTTP 协议版本。

AWS 将其默认为 http2

有效值为 http1.1http2http3http2and3

ipv6_enabled

布尔值

确定是否启用 IPv6 支持。

默认为 false

选项

  • false

  • true

logging

字典

一个配置元素,它是一个复杂的对象,定义分发的日志记录。

bucket

字符串

用于存储日志的 S3 存储桶。

enabled

布尔值

当 *enabled=true* 时,CloudFront 将记录对 S3 存储桶的访问。

选项

  • false

  • true

include_cookies

布尔值

当 *include_cookies=true* 时,CloudFront 将在日志中包含 Cookie。

选项

  • false

  • true

prefix

字符串

要在 S3 对象名称中包含的前缀。

origins

列表 / 元素=字典

一个配置元素,它是要为分发指定的复杂源对象列表。用于创建和更新分发。

connection_attempts

整数

在 community.aws 6.0.0 中添加

CloudFront 尝试连接到源站的次数。最小数目为 1,最大数目为 3

默认: 3

connection_timeout

整数

在 community.aws 6.0.0 中添加

CloudFront 尝试建立与源站的连接时等待的秒数。最小超时为 1 秒,最大超时为 10 秒。

默认: 10

custom_headers

列表 / 元素=字典

您希望在将其传递到源站之前添加到请求的自定义标头。

更多信息,请参阅 CloudFront 文档:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html

header_name

字符串

您希望 CloudFront 转发到源站的标头的名称。

header_value

字符串

您在 *header_name* 字段中指定的标头的值。

custom_origin_config

字典

有关源站的连接信息。

http_port

整数

自定义源站侦听的 HTTP 端口。

https_port

整数

自定义源站侦听的 HTTPS 端口。

origin_keepalive_timeout

整数

保持活动超时(以秒为单位)。

origin_protocol_policy

字符串

要应用于源站的源站协议策略。

origin_read_timeout

整数

从源站读取时的超时(以秒为单位)。

origin_ssl_protocols

列表 / 元素=字符串

您希望 CloudFront 在通过 HTTPS 与源站通信时使用的 SSL/TLS 协议列表。

domain_name

字符串

CloudFront 将查询为源站的域名。

更多信息,请参阅 CloudFront 文档:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName

id

字符串

源站或源站组的唯一标识符。*id* 在分发中必须唯一。

origin_path

字符串

告诉 CloudFront 从您的 Amazon S3 存储桶或自定义源站中的目录请求您的内容。

origin_shield

字典

在 community.aws 6.0.0 中添加

指定源站的源站防护选项。

enabled

布尔值

指示您是否希望源站启用源站防护。

选项

  • false

  • true

origin_shield_region

字符串

指定将用于源站防护的 AWS 区域。如果启用了源站防护,则需要此项。

s3_origin_access_identity_enabled

布尔值

使用源访问标识配置源,以便观看者只能通过 CloudFront 访问 Amazon S3 存储桶中的对象。

如果没有指定 *s3_origin_config*,将自动为您创建一个标识。

另请参见 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html

选项

  • false

  • true

s3_origin_config

字典

指定 S3 源的源访问标识。

origin_access_identity

字符串

现有源访问标识,格式为 origin-access-identity/cloudfront/OID_ID

price_class

字符串

指定分发定价类型的字符串。根据 https://aws.amazon.com/cloudfront/pricing/

*price_class=PriceClass_100* 包含美国、加拿大和欧洲地区。

*price_class=PriceClass_200* 包含美国、加拿大、欧洲、日本、印度、香港、菲律宾、韩国、新加坡和台湾地区。

*price_class=PriceClass_All* 包含美国、加拿大、欧洲、日本、印度、南美洲、澳大利亚、香港、菲律宾、韩国、新加坡和台湾地区。

AWS 默认值为 PriceClass_All

有效值为 PriceClass_100PriceClass_200PriceClass_All

profile

别名:aws_profile

字符串

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

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

也可以使用 AWS_PROFILE 环境变量。

*profile* 选项与 *aws_access_key*、*aws_secret_key* 和 *security_token* 选项互斥。

purge_aliases

布尔值

指定在添加新别名之前是否删除现有别名。

当 *purge_aliases=true* 时,将删除现有别名并添加 *aliases*。

选项

  • false ← (默认)

  • true

purge_cache_behaviors

布尔值

是否删除 *cache_behaviors* 中未列出的任何缓存行为。

此开关还允许重新排序 *cache_behaviors*。

选项

  • false ← (默认)

  • true

purge_custom_error_responses

布尔值

是否删除 *custom_error_responses* 中未列出的任何自定义错误响应。

选项

  • false ← (默认)

  • true

purge_origins

布尔值

是否删除 *origins* 中未列出的任何源。

选项

  • false ← (默认)

  • true

purge_tags

布尔值

如果 purge_tags=true 且设置了 tags,则将从资源中清除现有标签以完全匹配 tags 参数定义的内容。

如果没有设置 tags 参数,则即使 purge_tags=True,也不会修改标签。

aws: 开头的标签键由 Amazon 保留,无法修改。因此,在 purge_tags 参数中将忽略它们。有关更多信息,请参见 Amazon 文档 https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions

选项

  • false

  • true ← (默认)

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 后的某个版本中删除。

restrictions

字典

一个配置元素,它是一个复杂对象,描述了分发应如何限制其内容。

geo_restriction

字典

根据请求者的位置应用限制。

items

列表 / 元素=字符串

限制应应用到的 ISO 3166-1 两字母(Alpha 2)国家/地区代码列表。

有关完整代码列表,请参见 ISO 网站 https://www.iso.org/obp/ui/#search/code/

restriction_type

字符串

要用于按国家/地区限制内容分发的 方法。

有效值为 nonewhitelistblacklist

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_key* 和 *profile* 选项互斥。

为了与 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_token* 和 *profile* 选项互斥。

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

已弃用 *security_token*、*aws_security_token* 和 *access_token* 别名,将在 2024-12-01 后的某个版本中删除。

已弃用对 EC2_SECRET_KEYAWS_SECURITY_TOKEN 环境变量的支持,将在 2024-12-01 后的某个版本中删除。

state

字符串

分发的所需状态。

*state=present* 创建新的分发或更新现有分发。

*state=absent* 删除现有分发。

选项

  • "present" ← (默认)

  • "absent"

tags

别名:resource_tags

字典

表示要应用于资源的标签的字典。

如果没有设置 tags 参数,则不会修改标签。

validate_certs

布尔值

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

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

选项

  • false

  • true ← (默认)

viewer_certificate

字典

指定分发加密详细信息的字典。

acm_certificate_arn

字符串

存储在 ACM 中的证书的 ID,用于 HTTPS 连接。

如果设置了 *acm_certificate_id*,则还必须指定 *ssl_support_method*。

cloudfront_default_certificate

布尔值

如果将 CloudFront 域名用于您的分发,例如 123456789abcde.cloudfront.net,则应设置 *cloudfront_default_certificate=true*。

如果 *cloudfront_default_certificate=true*,则不要设置 *ssl_support_method*。

选项

  • false

  • true

iam_certificate_id

字符串

存储在 IAM 中的证书的 ID,用于 HTTPS 连接。

如果设置了 *iam_certificate_id*,则还必须指定 *ssl_support_method*。

minimum_protocol_version

字符串

希望 CloudFront 用于 HTTPS 连接的安全策略。

有关支持的安全策略,请参见 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html

ssl_support_method

字符串

CloudFront 如何提供 SSL 证书。

有效值为 sni-only(用于 SNI)和 vip(如果 CloudFront 配置为对您的内容使用专用 IP)。

wait

布尔值

指定模块是否等到分发完成创建或更新处理。

选项

  • false ← (默认)

  • true

wait_timeout

整数

指定等待 CloudFront 创建或更新超时(以秒为单位)的持续时间。

默认值: 1800

web_acl_id

字符串

Web 应用防火墙 (WAF) 访问控制列表 (ACL) 的 ID。

注释

注意

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

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

示例

- name: create a basic distribution with defaults and tags
  community.aws.cloudfront_distribution:
    state: present
    default_origin_domain_name: www.my-cloudfront-origin.com
    tags:
      Name: example distribution
      Project: example project
      Priority: '1'

- name: update a distribution comment by distribution_id
  community.aws.cloudfront_distribution:
    state: present
    distribution_id: E1RP5A2MJ8073O
    comment: modified by ansible cloudfront.py

- name: update a distribution comment by caller_reference
  community.aws.cloudfront_distribution:
    state: present
    caller_reference: my cloudfront distribution 001
    comment: modified by ansible cloudfront.py

- name: update a distribution's aliases and comment using the distribution_id as a reference
  community.aws.cloudfront_distribution:
    state: present
    distribution_id: E1RP5A2MJ8073O
    comment: modified by cloudfront.py again
    aliases:
      - 'www.my-distribution-source.com'
      - 'zzz.aaa.io'

- name: update a distribution's aliases and comment using an alias as a reference
  community.aws.cloudfront_distribution:
    state: present
    caller_reference: my test distribution
    comment: modified by cloudfront.py again
    aliases:
      - www.my-distribution-source.com
      - zzz.aaa.io

- name: update a distribution's comment and aliases and tags and remove existing tags
  community.aws.cloudfront_distribution:
    state: present
    distribution_id: E15BU8SDCGSG57
    comment: modified by cloudfront.py again
    aliases:
      - tested.com
    tags:
      Project: distribution 1.2
    purge_tags: true

- name: create a distribution with an origin, logging and default cache behavior
  community.aws.cloudfront_distribution:
    state: present
    caller_reference: unique test distribution ID
    origins:
      - id: 'my test origin-000111'
        domain_name: www.example.com
        origin_path: /production
        custom_headers:
          - header_name: MyCustomHeaderName
            header_value: MyCustomHeaderValue
    default_cache_behavior:
      target_origin_id: 'my test origin-000111'
      forwarded_values:
        query_string: true
        cookies:
          forward: all
        headers:
          - '*'
      viewer_protocol_policy: allow-all
      smooth_streaming: true
      compress: true
      allowed_methods:
        items:
          - GET
          - HEAD
        cached_methods:
          - GET
          - HEAD
    logging:
      enabled: true
      include_cookies: false
      bucket: mylogbucket.s3.amazonaws.com
      prefix: myprefix/
    enabled: false
    comment: this is a CloudFront distribution with logging

- name: delete a distribution
  community.aws.cloudfront_distribution:
    state: absent
    caller_reference: replaceable distribution

返回值

常见的返回值已在此处记录,以下是此模块独有的字段

描述

active_trusted_signers

复杂

CloudFront 针对每个受信任签名者已知的密钥对 ID。

返回值:始终返回

enabled

布尔值

是否正在使用受信任的签名者。

返回值:始终返回

示例: false

items

列表 / 元素=字符串

受信任签名者的数量。

返回值:存在受信任签名者时返回

示例: ["key_pair_id"]

数量

整数

受信任签名者的数量。

返回值:始终返回

示例: 1

别名

复杂

引用分发的别名。

返回值:始终返回

items

列表 / 元素=字符串

别名列表。

返回值:始终返回

示例: ["test.example.com"]

数量

整数

别名的数量。

返回值:始终返回

示例: 1

arn

字符串

分发的 Amazon 资源名称。

返回值:始终返回

示例: "arn:aws:cloudfront::123456789012:distribution/E1234ABCDEFGHI"

cache_behaviors

复杂

CloudFront 缓存行为。

返回值:始终返回

items

复杂

缓存行为列表。

返回值:始终返回

allowed_methods

复杂

缓存行为允许的方法。

返回值:始终返回

cached_methods

复杂

缓存行为缓存的方法。

返回值:始终返回

items

列表 / 元素=字符串

已缓存方法的列表。

返回值:始终返回

示例: ["HEAD", "GET"]

数量

整数

已缓存方法的数量。

返回值:始终返回

示例: 2

items

列表 / 元素=字符串

缓存行为允许的方法列表。

返回值:始终返回

示例: ["HEAD", "GET"]

数量

整数

缓存行为允许的方法数量。

返回值:始终返回

示例: 2

compress

布尔值

缓存行为是否开启压缩。

返回值:始终返回

示例: false

default_ttl

整数

缓存行为的默认生存时间 (TTL)。

返回值:始终返回

示例: 86400

forwarded_values

复杂

转发到此缓存行为源的字段。

返回值:始终返回

cookies

复杂

转发到源的 Cookie。

返回值:始终返回

forward

字符串

要为此缓存行为转发到源的 Cookie。

返回值:始终返回

示例: "none"

whitelisted_names

复杂

要为此缓存行为转发到源的 Cookie 名称。

返回值:当 `forward=whitelist` 时返回

items

列表 / 元素=字符串

要转发的 Cookie 列表。

返回值:列表不为空时返回

示例: ["my_cookie"]

数量

整数

要转发的 Cookie 数量。

返回值:始终返回

示例: 1

headers

复杂

用于缓存检索变化的标头。

返回值:始终返回

items

列表 / 元素=字符串

要变化的标头列表。

返回值:列表不为空时返回

示例: ["Host"]

数量

整数

要变化的标头数量。

返回值:始终返回

示例: 1

query_string

布尔值

查询字符串是否用于缓存查找。

返回值:始终返回

示例: false

query_string_cache_keys

复杂

在缓存查找中使用的查询字符串键。

返回值:始终返回

items

列表 / 元素=字符串

在缓存查找中使用的查询字符串缓存键列表。

返回值:列表不为空时返回

数量

整数

在缓存查找中使用的查询字符串缓存键的数量。

返回值:始终返回

示例: 1

lambda_function_associations

复杂

缓存行为的 Lambda 函数关联。

返回值:始终返回

items

列表 / 元素=字符串

Lambda 函数关联列表。

返回值:列表不为空时返回

示例: [{"event_type": "viewer-response", "lambda_function_arn": "arn:aws:lambda:123456789012:us-east-1/lambda/lambda-function"}]

数量

整数

Lambda 函数关联的数量。

返回值:始终返回

示例: 1

max_ttl

整数

最大生存时间。

返回值:始终返回

示例: 31536000

min_ttl

整数

最小生存时间。

返回值:始终返回

示例: 0

path_pattern

字符串

确定此缓存行为的路径模式。

返回值:始终返回

示例: "/path/to/files/*"

smooth_streaming

布尔值

是否启用了平滑流。

返回值:始终返回

示例: false

target_origin_id

字符串

此缓存行为引用的源 ID。

返回值:始终返回

示例: "origin_abcd"

trusted_signers

复杂

受信任的签名者。

返回值:始终返回

enabled

布尔值

是否为此缓存行为启用了受信任的签名者。

返回值:始终返回

示例: false

数量

整数

受信任签名者的数量。

返回值:始终返回

示例: 1

viewer_protocol_policy

字符串

处理 http/https 的策略。

返回值:始终返回

示例: "redirect-to-https"

数量

整数

缓存行为的数量。

返回值:始终返回

示例: 1

caller_reference

字符串

创建 CloudFront 分发时提供的幂等性引用。

返回值:始终返回

示例: "1484796016700"

comment

字符串

您要包含的分发相关注释。

返回值:始终返回

示例: "my first CloudFront distribution"

custom_error_responses

复杂

用于错误处理的自定义错误响应。

返回值:始终返回

items

复杂

自定义错误响应列表。

返回值:始终返回

error_caching_min_ttl

整数

缓存此错误响应的最小时间。

返回值:始终返回

示例: 300

error_code

整数

触发此错误响应的源响应代码。

返回值:始终返回

示例: 500

response_code

字符串

返回给请求者的响应代码。

返回值:始终返回

示例: "500"

response_page_path

字符串

包含要显示的错误页面的路径。

返回值:始终返回

示例: "/errors/5xx.html"

数量

整数

自定义错误响应项的数量

返回值:始终返回

示例: 1

default_cache_behavior

复杂

默认缓存行为。

返回值:始终返回

allowed_methods

复杂

缓存行为允许的方法。

返回值:始终返回

cached_methods

复杂

缓存行为缓存的方法。

返回值:始终返回

items

列表 / 元素=字符串

已缓存方法的列表。

返回值:始终返回

示例: ["HEAD", "GET"]

数量

整数

已缓存方法的数量。

返回值:始终返回

示例: 2

items

列表 / 元素=字符串

缓存行为允许的方法列表。

返回值:始终返回

示例: ["HEAD", "GET"]

数量

整数

缓存行为允许的方法数量。

返回值:始终返回

示例: 2

compress

布尔值

缓存行为是否开启压缩。

返回值:始终返回

示例: false

default_ttl

整数

缓存行为的默认生存时间 (TTL)。

返回值:始终返回

示例: 86400

forwarded_values

复杂

转发到此缓存行为源的字段。

返回值:始终返回

cookies

复杂

转发到源的 Cookie。

返回值:始终返回

forward

字符串

要为此缓存行为转发到源的 Cookie。

返回值:始终返回

示例: "none"

whitelisted_names

复杂

要为此缓存行为转发到源的 Cookie 名称。

返回值:当 `forward=whitelist` 时返回

items

列表 / 元素=字符串

要转发的 Cookie 列表。

返回值:列表不为空时返回

示例: ["my_cookie"]

数量

整数

要转发的 Cookie 数量。

返回值:始终返回

示例: 1

headers

复杂

用于缓存检索变化的标头。

返回值:始终返回

items

列表 / 元素=字符串

要变化的标头列表。

返回值:列表不为空时返回

示例: ["Host"]

数量

整数

要变化的标头数量。

返回值:始终返回

示例: 1

query_string

布尔值

查询字符串是否用于缓存查找。

返回值:始终返回

示例: false

query_string_cache_keys

复杂

在缓存查找中使用的查询字符串键。

返回值:始终返回

items

列表 / 元素=字符串

在缓存查找中使用的查询字符串缓存键列表。

返回值:列表不为空时返回

数量

整数

在缓存查找中使用的查询字符串缓存键的数量。

返回值:始终返回

示例: 1

lambda_function_associations

复杂

缓存行为的 Lambda 函数关联。

返回值:始终返回

items

列表 / 元素=字符串

Lambda 函数关联列表。

返回值:列表不为空时返回

示例: [{"event_type": "viewer-response", "lambda_function_arn": "arn:aws:lambda:123456789012:us-east-1/lambda/lambda-function"}]

数量

整数

Lambda 函数关联的数量。

返回值:始终返回

示例: 1

max_ttl

整数

最大生存时间。

返回值:始终返回

示例: 31536000

min_ttl

整数

最小生存时间。

返回值:始终返回

示例: 0

path_pattern

字符串

确定此缓存行为的路径模式。

返回值:始终返回

示例: "/path/to/files/*"

smooth_streaming

布尔值

是否启用了平滑流。

返回值:始终返回

示例: false

target_origin_id

字符串

此缓存行为引用的源 ID。

返回值:始终返回

示例: "origin_abcd"

trusted_signers

复杂

受信任的签名者。

返回值:始终返回

enabled

布尔值

是否为此缓存行为启用了受信任的签名者。

返回值:始终返回

示例: false

数量

整数

受信任签名者的数量。

返回值:始终返回

示例: 1

viewer_protocol_policy

字符串

处理 http/https 的策略。

返回值:始终返回

示例: "redirect-to-https"

default_root_object

字符串

当查看者请求分发的根 URL 时,您希望 CloudFront 从您的源请求的对象(例如,index.html)。

返回值:始终返回

示例: ""

diff

字典

先前配置和新配置之间的差异。

返回值:始终返回

示例: {}

domain_name

字符串

CloudFront 分发的域名。

返回值:始终返回

示例: "d1vz8pzgurxosf.cloudfront.net"

enabled

布尔值

CloudFront 分发是否已启用。

返回值:始终返回

示例: true

http_version

字符串

分发支持的 HTTP 版本。

返回值:始终返回

示例: "http2"

id

字符串

CloudFront 分发 ID。

返回值:始终返回

示例: "E123456ABCDEFG"

in_progress_invalidation_batches

整数

当前正在进行的无效批次数量。

返回值:始终返回

示例: 0

is_ipv6_enabled

布尔值

是否启用了 IPv6。

返回值:始终返回

示例: true

last_modified_time

字符串

分发上次修改的日期和时间。

返回值:始终返回

示例: "2017-10-13T01:51:12.656000+00:00"

logging

复杂

日志信息。

返回值:始终返回

bucket

字符串

S3 存储桶日志目标。

返回值:始终返回

示例: "logs-example-com.s3.amazonaws.com"

enabled

布尔值

是否启用了日志记录。

返回值:始终返回

示例: true

include_cookies

布尔值

是否记录 Cookie。

返回值:始终返回

示例: false

prefix

字符串

添加到日志对象名称的前缀。

返回值:始终返回

示例: "cloudfront/test"

origins

复杂

CloudFront 分发中的源。

返回值:始终返回

items

复杂

源列表。

返回值:始终返回

connection_attempts

整数

CloudFront 尝试连接到源的次数。

返回值:始终返回

示例: 3

connection_timeout

整数

CloudFront 在尝试建立与源的连接时等待的秒数。

返回值:始终返回

示例: 10

custom_headers

复杂

传递到源的自定义标头。

返回值:始终返回

数量

整数

标头的数量。

返回值:始终返回

示例: 1

custom_origin_config

复杂

源的配置。

返回值:始终返回

http_port

整数

HTTP 监听的端口。

返回值:始终返回

示例: 80

https_port

整数

HTTPS 监听的端口。

返回值:始终返回

示例: 443

origin_keepalive_timeout

整数

保持活动超时。

返回值:始终返回

示例: 5

origin_protocol_policy

字符串

支持的协议策略。

返回值:始终返回

示例: "https-only"

origin_read_timeout

整数

读取源的超时。

返回值:始终返回

示例: 30

origin_ssl_protocols

复杂

源允许的 SSL 协议。

返回值:始终返回

items

列表 / 元素=字符串

SSL 协议列表。

返回值:始终返回

示例: ["TLSv1", "TLSv1.1", "TLSv1.2"]

数量

整数

SSL 协议的数量。

返回值:始终返回

示例: 3

domain_name

字符串

源的域名。

返回值:始终返回

示例: "test-origin.example.com"

id

字符串

源的 ID。

返回值:始终返回

示例: "test-origin.example.com"

origin_path

字符串

要为来自 S3 或 HTTP 源的请求添加前缀的子目录。

返回值:始终返回

示例: ""

origin_shield

复杂

在 community.aws 6.0.0 中添加

源 Shield 的配置。

返回值:始终返回

enabled

布尔值

源 Shield 是否已启用。

返回值:始终返回

示例: false

origin_shield_region

字符串

源 Shield 使用的区域。

返回值:已启用时返回

示例: "us-east-1"

s3_origin_config

字典

S3 源的源访问标识配置。

返回值:`s3_origin_access_identity_enabled` 为 true 时返回

origin_access_identity

字符串

源访问 ID 的路径。

返回值:成功时返回

示例: "origin-access-identity/cloudfront/EXAMPLEID"

数量

整数

源的数量。

返回值:始终返回

示例: 1

price_class

字符串

CloudFront 分发的价格等级。

返回值:始终返回

示例: "PriceClass_All"

restrictions

复杂

CloudFront 使用的限制。

返回值:始终返回

geo_restriction

复杂

控制内容分发的国家/地区。

返回值:始终返回

items

列表 / 元素=字符串

允许或不允许的国家/地区代码列表。

返回值:始终返回

示例: ["xy"]

数量

整数

限制的数量。

返回值:始终返回

示例: 1

restriction_type

字符串

限制的类型。

返回值:始终返回

示例: "blacklist"

状态

字符串

CloudFront 分发的状态。

返回值:始终返回

示例: "InProgress"

标签

字典

分发标签。

返回值:始终返回

示例: {"Hello": "World"}

viewer_certificate

复杂

CloudFront 分发使用的证书。

返回值:始终返回

acm_certificate_arn

字符串

ACM 证书的 ARN。

返回:证书来自 ACM 时

示例: "arn:aws:acm:us-east-1:123456789012:certificate/abcd1234-1234-1234-abcd-123456abcdef"

证书

字符串

证书的引用。

返回值:始终返回

示例: "arn:aws:acm:us-east-1:123456789012:certificate/abcd1234-1234-1234-abcd-123456abcdef"

证书来源

字符串

证书的来源。

返回值:始终返回

示例: "acm"

minimum_protocol_version

字符串

此分发支持的最低 SSL/TLS 协议。

返回值:始终返回

示例: "TLSv1"

ssl_support_method

字符串

是否支持预 SNI 浏览器。

返回值:始终返回

示例: "sni-only"

web_acl_id

字符串

Web 访问控制列表 (来自 WAF 服务) 的 ID。

返回值:始终返回

示例: "abcd1234-1234-abcd-abcd-abcd12345678"

作者

  • Willem van Ketwich (@wilvk)

  • Will Thames (@willthames)