google.cloud.gcp_storage_bucket 模块 – 创建 GCP 存储桶

注意

此模块是 google.cloud 集合(版本 1.4.1)的一部分。

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

要安装它,请使用:ansible-galaxy collection install google.cloud。您需要进一步的要求才能使用此模块,请参阅 要求 获取详细信息。

要在 playbook 中使用它,请指定:google.cloud.gcp_storage_bucket

注意

由于违反 Ansible 包含要求,google.cloud 集合将从 Ansible 12 中删除。该集合有 未解决的健全性测试失败。有关更多信息,请参阅讨论主题

概要

  • Buckets 资源表示 Google Cloud Storage 中的存储桶。所有存储桶共享一个全局命名空间。有关更多信息,请参阅存储桶名称要求。

  • 存储桶包含可以通过其自身方法访问的对象。除了 acl 属性外,存储桶还包含 bucketAccessControls,用于对现有存储桶的访问控制进行细粒度操作。

  • 存储桶始终由项目团队所有者组拥有。

要求

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

  • python >= 2.6

  • requests >= 2.18.4

  • google-auth >= 1.3.0

参数

参数

注释

access_token

字符串

如果凭据类型是 accesstoken,则为 OAuth2 访问令牌。

acl

列表 / 元素=字典

存储桶上的访问控制。

bucket

字典 / 必需

存储桶的名称。

此字段表示 GCP 中 Bucket 资源的链接。它可以通过两种方式指定。首先,您可以放置一个键为“name”且值为您的资源名称的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_storage_bucket 任务,然后将此 bucket 字段设置为“{{ name-of-resource }}”

entity

字符串 / 必需

持有权限的实体,采用以下形式之一:user-userId user-email group-groupId group-email domain-domain project-team-projectId allUsers allAuthenticatedUsers 示例:用户 liz@example.com 将是 user-liz@example.com

example@googlegroups.com 将是 group-example@googlegroups.com

要引用 Google Apps for Business 域 example.com 的所有成员,实体将是 domain-example.com。

entity_id

字符串

实体的 ID。

project_team

字典

与实体关联的项目团队。

project_number

字符串

与实体关联的项目团队。

team

字符串

团队。

一些有效的选择包括:“editors”、“owners”、“viewers”

role

字符串

实体的访问权限。

一些有效的选择包括:“OWNER”、“READER”、“WRITER”

auth_kind

字符串 / 必需

使用的凭据类型。

选择

  • “application”

  • “machineaccount”

  • “serviceaccount”

  • “accesstoken”

cors

列表 / 元素=字典

存储桶的跨域资源共享 (CORS) 配置。

max_age_seconds

整数

在预检响应中使用的 Access-Control-Max-Age 标头中返回的值(以秒为单位)。

method

列表 / 元素=字符串

要包含 CORS 响应标头的 HTTP 方法列表,(GET、OPTIONS、POST 等)注意:“*”允许在方法列表中,表示“任何方法”。

origin

列表 / 元素=字符串

有资格接收 CORS 响应标头的来源列表。

注意:“*”允许在来源列表中,表示“任何来源”。

response_header

列表 / 元素=字符串

除了简单响应标头之外的 HTTP 标头列表,用于授予用户代理跨域共享的权限。

default_event_based_hold

布尔值

是否将 eventBasedHold 自动应用于添加到存储桶的新对象。

选择

  • false

  • true

default_object_acl

列表 / 元素=字典

当未提供 ACL 时应用于新对象的默认访问控制。

bucket

字典 / 必需

存储桶的名称。

此字段表示 GCP 中 Bucket 资源的链接。它可以通过两种方式指定。首先,您可以放置一个键为“name”且值为您的资源名称的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_storage_bucket 任务,然后将此 bucket 字段设置为“{{ name-of-resource }}”

entity

字符串 / 必需

持有权限的实体,采用以下形式之一:* user-{{userId}} * user-{{email}}(例如“user-liz@example.com”)* group-{{groupId}} * group-{{email}}(例如“group-example@googlegroups.com”)* domain-{{domain}}(例如“domain-example.com”)* project-team-{{projectId}} * allUsers * allAuthenticatedUsers 。

object

字符串

对象的名称(如果应用于对象)。

role

字符串 / 必需

实体的访问权限。

一些有效的选择包括:“OWNER”,“READER”

env_type

字符串

指定您正在其中运行此 Ansible 模块的环境。

除非您知道自己在做什么,否则不应设置此项。

此项仅更改任何 API 请求的用户代理字符串。

labels

字典

应用于此存储桶的标签。一个键->值对的列表。

lifecycle

字典

存储桶的生命周期配置。

有关更多信息,请参见 https://developers.google.com/storage/docs/lifecycle

rule

列表 / 元素=字典

生命周期管理规则,由要执行的操作和执行该操作的条件组成。

action

字典

要执行的操作。

storage_class

字符串

目标存储类别。如果操作类型为 SetStorageClass,则为必需。

type

字符串

操作类型。目前,仅支持 Delete 和 SetStorageClass。

一些有效的选择包括:“Delete”,“SetStorageClass”

condition

字典

执行操作的条件。

age_days

整数

对象的存在天数(以天为单位)。当对象达到指定天数时,满足此条件。

created_before

字符串

采用 RFC 3339 格式的日期,仅包含日期部分(例如,“2013-01-15”)。当对象在 UTC 时间指定日期的午夜之前创建时,满足此条件。

custom_time_before

字符串

采用 RFC 3339 格式 YYYY-MM-DD 的日期。当对象的 customTime 元数据设置为早于此生命周期条件中使用的日期的日期时,满足此条件。

days_since_custom_time

整数

自对象 customTime 元数据中设置的日期起的天数。当当前日期和时间至少是 customTime 之后指定的天数时,满足此条件。

days_since_noncurrent_time

整数

仅与版本化对象相关。当对象处于非当前状态的时间超过指定天数时,满足此条件。

is_live

布尔值

仅与版本化对象相关。如果值为 true,则此条件匹配活动对象;如果值为 false,则匹配已存档的对象。

选择

  • false

  • true

matches_storage_class

列表 / 元素=字符串

将匹配具有此条件指定的任何存储类别的对象。值包括 MULTI_REGIONAL、REGIONAL、NEARLINE、COLDLINE、ARCHIVE、STANDARD 和 DURABLE_REDUCED_AVAILABILITY。

noncurrent_time_before

字符串

仅与版本化对象相关。采用 RFC 3339 格式 YYYY-MM-DD 的日期。对于在早于此条件中指定的日期成为非当前状态的对象,满足此条件。

num_newer_versions

整数

仅与版本化对象相关。如果该值为 N,则当存在至少 N 个比此对象版本更新的版本(包括活动版本)时,满足此条件。

location

字符串

存储桶的位置。存储桶中对象的对象数据驻留在此区域内的物理存储中。默认为美国。请参阅开发者指南以获取权威列表。

logging

字典

存储桶的日志记录配置,它定义了当前存储桶日志的目标存储桶和可选名称前缀。

log_bucket

字符串

应放置当前存储桶日志的目标存储桶。

log_object_prefix

字符串

日志对象名称的前缀。

metageneration

整数

此存储桶的元数据生成。

name

字符串

存储桶的名称。

owner

字典

存储桶的所有者。这始终是项目团队的所有者组。

entity

字符串

该实体,形式为 project-owner-projectId。

predefined_default_object_acl

字符串

对此存储桶应用一组预定义的默认对象访问控制。

可接受的值为:- “authenticatedRead”:对象所有者获得 OWNER 访问权限,所有已通过身份验证的用户获得 READER 访问权限。

  • “bucketOwnerFullControl”:对象所有者获得 OWNER 访问权限,项目团队所有者获得 OWNER 访问权限。

  • “bucketOwnerRead”:对象所有者获得 OWNER 访问权限,项目团队所有者获得 READER 访问权限。

  • “private”:对象所有者获得 OWNER 访问权限。

  • “projectPrivate”:对象所有者获得 OWNER 访问权限,项目团队成员根据其角色获得访问权限。

  • “publicRead”:对象所有者获得 OWNER 访问权限,所有用户获得 READER 访问权限。

一些有效的选择包括:“authenticatedRead”、“bucketOwnerFullControl”、“bucketOwnerRead”、“private”、“projectPrivate”、“publicRead”

project

字符串

要使用的 Google Cloud Platform 项目。

scopes

列表 / 元素=字符串

要使用的范围数组

service_account_contents

jsonarg

服务帐户 JSON 文件的内容,可以是字典或表示它的 JSON 字符串。

service_account_email

字符串

如果选择了 machineaccount 并且用户不希望使用默认电子邮件,则可选的服务帐户电子邮件地址。

service_account_file

path

如果选择了 serviceaccount 作为类型,则为服务帐户 JSON 文件的路径。

state

字符串

给定对象是否应存在于 GCP 中

选择

  • "present" ← (默认)

  • "absent"

storage_class

字符串

存储桶的默认存储类别,每当未为新创建的对象指定 storageClass 时使用。这定义了如何存储存储桶中的对象,并决定了 SLA 和存储成本。

值包括 MULTI_REGIONAL、REGIONAL、STANDARD、NEARLINE、COLDLINE、ARCHIVE 和 DURABLE_REDUCED_AVAILABILITY。如果创建存储桶时未指定此值,则默认值为 STANDARD。有关更多信息,请参见存储类别。

一些有效的选择包括:“MULTI_REGIONAL”、“REGIONAL”、“STANDARD”、“NEARLINE”、“COLDLINE”、“ARCHIVE”、“DURABLE_REDUCED_AVAILABILITY”

versioning

字典

存储桶的版本控制配置。

enabled

布尔值

当设置为 true 时,此存储桶的版本控制将完全启用。

选择

  • false

  • true

website

字典

存储桶的网站配置,控制当以网站形式访问存储桶内容时,服务的行为方式。有关更多信息,请参见静态网站示例。

main_page_suffix

字符串

如果请求的对象路径丢失,服务将确保该路径具有尾随“/”,附加此后缀,并尝试检索结果对象。这允许创建 index.html 对象来表示目录页面。

not_found_page

字符串

如果请求的对象路径丢失,并且任何 mainPageSuffix 对象丢失(如果适用),则服务将从此存储桶返回命名对象,作为 404 Not Found 结果的内容。

示例

- name: create a bucket
  google.cloud.gcp_storage_bucket:
    name: ansible-storage-module
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

返回值

通用返回值记录在此处,以下是此模块特有的字段

Key

描述

acl

complex

存储桶上的访问控制。

返回:成功

bucket

字典

存储桶的名称。

返回:成功

domain

字符串

与实体关联的域。

返回:成功

email

字符串

与实体关联的电子邮件地址。

返回:成功

entity

字符串

拥有权限的实体,以下列形式之一:user-userId user-email group-groupId group-email domain-domain project-team-projectId allUsers allAuthenticatedUsers 示例:用户 liz@example.com 将为 user-liz@example.com

example@googlegroups.com 将为 group-example@googlegroups.com

要引用 Google Apps for Business 域 example.com 的所有成员,实体将是 domain-example.com。

返回:成功

entityId

字符串

实体的 ID。

返回:成功

id

字符串

访问控制条目的 ID。

返回:成功

projectTeam

complex

与实体关联的项目团队。

返回:成功

projectNumber

字符串

与实体关联的项目团队。

返回:成功

team

字符串

团队。

返回:成功

role

字符串

实体的访问权限。

返回:成功

cors

complex

存储桶的跨域资源共享 (CORS) 配置。

返回:成功

maxAgeSeconds

整数

在预检响应中使用的 Access-Control-Max-Age 标头中返回的值(以秒为单位)。

返回:成功

method

列表 / 元素=字符串

要包含 CORS 响应标头的 HTTP 方法列表,(GET、OPTIONS、POST 等)注意:“*”允许在方法列表中,表示“任何方法”。

返回:成功

origin

列表 / 元素=字符串

有资格接收 CORS 响应标头的来源列表。

注意:“*”允许在来源列表中,表示“任何来源”。

返回:成功

responseHeader

列表 / 元素=字符串

除了简单响应标头之外的 HTTP 标头列表,用于授予用户代理跨域共享的权限。

返回:成功

defaultEventBasedHold

布尔值

是否将 eventBasedHold 自动应用于添加到存储桶的新对象。

返回:成功

defaultObjectAcl

complex

当未提供 ACL 时应用于新对象的默认访问控制。

返回:成功

bucket

字典

存储桶的名称。

返回:成功

domain

字符串

与实体关联的域。

返回:成功

email

字符串

与实体关联的电子邮件地址。

返回:成功

entity

字符串

拥有权限的实体,以下列形式之一:* user-{{userId}} * user-{{email}}(例如,“user-liz@example.com”) * group-{{groupId}} * group-{{email}}(例如,“group-example@googlegroups.com”) * domain-{{domain}}(例如,“domain-example.com”) * project-team-{{projectId}} * allUsers * allAuthenticatedUsers 。

返回:成功

entityId

字符串

实体的 ID。

返回:成功

generation

整数

如果应用于对象,则为对象的内容生成。

返回:成功

id

字符串

访问控制条目的 ID。

返回:成功

object

字符串

对象的名称(如果应用于对象)。

返回:成功

projectTeam

complex

与实体关联的项目团队。

返回:成功

projectNumber

字符串

与实体关联的项目团队。

返回:成功

team

字符串

团队。

返回:成功

role

字符串

实体的访问权限。

返回:成功

id

字符串

存储桶的 ID。对于存储桶,id 和 name 属性相同。

返回:成功

labels

字典

应用于此存储桶的标签。一个键->值对的列表。

返回:成功

lifecycle

complex

存储桶的生命周期配置。

有关更多信息,请参见 https://developers.google.com/storage/docs/lifecycle

返回:成功

rule

complex

生命周期管理规则,由要执行的操作和执行该操作的条件组成。

返回:成功

action

complex

要执行的操作。

返回:成功

storageClass

字符串

目标存储类别。如果操作类型为 SetStorageClass,则为必需。

返回:成功

type

字符串

操作类型。目前,仅支持 Delete 和 SetStorageClass。

返回:成功

condition

complex

执行操作的条件。

返回:成功

ageDays

整数

对象的存在天数(以天为单位)。当对象达到指定天数时,满足此条件。

返回:成功

createdBefore

字符串

采用 RFC 3339 格式的日期,仅包含日期部分(例如,“2013-01-15”)。当对象在 UTC 时间指定日期的午夜之前创建时,满足此条件。

返回:成功

customTimeBefore

字符串

采用 RFC 3339 格式 YYYY-MM-DD 的日期。当对象的 customTime 元数据设置为早于此生命周期条件中使用的日期的日期时,满足此条件。

返回:成功

daysSinceCustomTime

整数

自对象 customTime 元数据中设置的日期起的天数。当当前日期和时间至少是 customTime 之后指定的天数时,满足此条件。

返回:成功

daysSinceNoncurrentTime

整数

仅与版本化对象相关。当对象处于非当前状态的时间超过指定天数时,满足此条件。

返回:成功

isLive

布尔值

仅与版本化对象相关。如果值为 true,则此条件匹配活动对象;如果值为 false,则匹配已存档的对象。

返回:成功

matchesStorageClass

列表 / 元素=字符串

将匹配具有此条件指定的任何存储类别的对象。值包括 MULTI_REGIONAL、REGIONAL、NEARLINE、COLDLINE、ARCHIVE、STANDARD 和 DURABLE_REDUCED_AVAILABILITY。

返回:成功

noncurrentTimeBefore

字符串

仅与版本化对象相关。采用 RFC 3339 格式 YYYY-MM-DD 的日期。对于在早于此条件中指定的日期成为非当前状态的对象,满足此条件。

返回:成功

numNewerVersions

整数

仅与版本化对象相关。如果该值为 N,则当存在至少 N 个比此对象版本更新的版本(包括活动版本)时,满足此条件。

返回:成功

location

字符串

存储桶的位置。存储桶中对象的对象数据驻留在此区域内的物理存储中。默认为美国。请参阅开发者指南以获取权威列表。

返回:成功

logging

complex

存储桶的日志记录配置,它定义了当前存储桶日志的目标存储桶和可选名称前缀。

返回:成功

logBucket

字符串

应放置当前存储桶日志的目标存储桶。

返回:成功

logObjectPrefix

字符串

日志对象名称的前缀。

返回:成功

metageneration

整数

此存储桶的元数据生成。

返回:成功

name

字符串

存储桶的名称。

返回:成功

owner

complex

存储桶的所有者。这始终是项目团队的所有者组。

返回:成功

entity

字符串

该实体,形式为 project-owner-projectId。

返回:成功

entityId

字符串

实体的 ID。

返回:成功

predefinedDefaultObjectAcl

字符串

对此存储桶应用一组预定义的默认对象访问控制。

可接受的值为:- “authenticatedRead”:对象所有者获得 OWNER 访问权限,所有已通过身份验证的用户获得 READER 访问权限。

  • “bucketOwnerFullControl”:对象所有者获得 OWNER 访问权限,项目团队所有者获得 OWNER 访问权限。

  • “bucketOwnerRead”:对象所有者获得 OWNER 访问权限,项目团队所有者获得 READER 访问权限。

  • “private”:对象所有者获得 OWNER 访问权限。

  • “projectPrivate”:对象所有者获得 OWNER 访问权限,项目团队成员根据其角色获得访问权限。

  • “publicRead”:对象所有者获得 OWNER 访问权限,所有用户获得 READER 访问权限。

返回:成功

project

字符串

有效的 API 项目标识符。

返回:成功

projectNumber

字符串

存储桶所属项目的项目编号。

返回:成功

storageClass

字符串

存储桶的默认存储类别,每当未为新创建的对象指定 storageClass 时使用。这定义了如何存储存储桶中的对象,并决定了 SLA 和存储成本。

值包括 MULTI_REGIONAL、REGIONAL、STANDARD、NEARLINE、COLDLINE、ARCHIVE 和 DURABLE_REDUCED_AVAILABILITY。如果创建存储桶时未指定此值,则默认值为 STANDARD。有关更多信息,请参见存储类别。

返回:成功

timeCreated

字符串

采用 RFC 3339 格式的存储桶创建时间。

返回:成功

updated

字符串

采用 RFC 3339 格式的存储桶修改时间。

返回:成功

versioning

complex

存储桶的版本控制配置。

返回:成功

enabled

布尔值

当设置为 true 时,此存储桶的版本控制将完全启用。

返回:成功

website

complex

存储桶的网站配置,控制当以网站形式访问存储桶内容时,服务的行为方式。有关更多信息,请参见静态网站示例。

返回:成功

mainPageSuffix

字符串

如果请求的对象路径丢失,服务将确保该路径具有尾随“/”,附加此后缀,并尝试检索结果对象。这允许创建 index.html 对象来表示目录页面。

返回:成功

notFoundPage

字符串

如果请求的对象路径丢失,并且任何 mainPageSuffix 对象丢失(如果适用),则服务将从此存储桶返回命名对象,作为 404 Not Found 结果的内容。

返回:成功

作者

  • Google Inc. (@googlecloudplatform)