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_access_key_id 别名在 5.1.0 版本中添加,以与 AWS botocore SDK 保持一致。

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 回调将输出到在 playbook 期间进行的总列表。

也可以使用 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

字符串

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_keyaws_secret_keysecurity_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_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

字符串

分发的所需状态。

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中用于HTTPS连接的证书的ID。

如果设置了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中用于HTTPS连接的证书的ID。

如果设置了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

整数

最大生存时间 (TTL)。

返回:始终

示例: 31536000

min_ttl

整数

最小生存时间 (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

整数

最大生存时间 (TTL)。

返回:始终

示例: 31536000

min_ttl

整数

最小生存时间 (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 使用的区域。

返回:启用为 true 时

示例: "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)