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 Workspace 商业版域 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 未找到结果的内容。

示例

- 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

存储桶上的访问控制。

返回:success

bucket

字典

存储桶的名称。

返回:success

domain

字符串

与实体关联的域。

返回:success

email

字符串

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

返回:success

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 Workspace 商业版域 example.com 的所有成员,实体将是 domain-example.com。

返回:success

entityId

字符串

实体的 ID。

返回:success

id

字符串

访问控制条目的 ID。

返回:success

projectTeam

complex

与实体关联的项目团队。

返回:success

projectNumber

字符串

与实体关联的项目团队。

返回:success

team

字符串

团队。

返回:success

role

字符串

实体的访问权限。

返回:success

cors

complex

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

返回:success

maxAgeSeconds

整数

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

返回:success

method

列表 / 元素=字符串

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

返回:success

origin

列表 / 元素=字符串

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

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

返回:success

responseHeader

列表 / 元素=字符串

除简单响应标头以外的 HTTP 标头列表,允许用户代理跨域共享。

返回:success

defaultEventBasedHold

布尔值

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

返回:success

defaultObjectAcl

complex

在没有提供 ACL 时应用于新对象的默认访问控制。

返回:success

bucket

字典

存储桶的名称。

返回:success

domain

字符串

与实体关联的域。

返回:success

email

字符串

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

返回:success

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。

返回:success

entityId

字符串

实体的 ID。

返回:success

generation

整数

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

返回:success

id

字符串

访问控制条目的 ID。

返回:success

object

字符串

如果应用于对象,则为对象的名称。

返回:success

projectTeam

complex

与实体关联的项目团队。

返回:success

projectNumber

字符串

与实体关联的项目团队。

返回:success

team

字符串

团队。

返回:success

role

字符串

实体的访问权限。

返回:success

id

字符串

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

返回:success

labels

字典

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

返回:success

lifecycle

complex

存储桶的生命周期配置。

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

返回:success

rule

complex

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

返回:success

action

complex

要执行的操作。

返回:success

storageClass

字符串

目标存储类。如果操作的类型为 SetStorageClass,则需要此项。

返回:success

type

字符串

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

返回:success

condition

complex

执行该操作的条件。

返回:success

ageDays

整数

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

返回:success

createdBefore

字符串

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

返回:success

customTimeBefore

字符串

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

返回:success

daysSinceCustomTime

整数

自对象 customTime 元数据中设置的日期以来的天数。当当前日期和时间至少比 customTime 晚指定的天数时,满足此条件。

返回:success

daysSinceNoncurrentTime

整数

仅适用于版本化的对象。当对象非当前状态超过指定天数时,满足此条件。

返回:success

isLive

布尔值

仅适用于版本化的对象。如果值为 true,则此条件匹配活动对象;如果值为 false,则匹配存档对象。

返回:success

matchesStorageClass

列表 / 元素=字符串

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

返回:success

noncurrentTimeBefore

字符串

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

返回:success

numNewerVersions

整数

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

返回:success

location

字符串

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

返回:success

logging

complex

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

返回:success

logBucket

字符串

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

返回:success

logObjectPrefix

字符串

日志对象名称的前缀。

返回:success

metageneration

整数

此存储桶的元数据生成。

返回:success

name

字符串

存储桶的名称。

返回:success

owner

complex

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

返回:success

entity

字符串

实体,格式为 project-owner-projectId。

返回:success

entityId

字符串

实体的 ID。

返回:success

predefinedDefaultObjectAcl

字符串

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

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

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

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

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

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

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

返回:success

project

字符串

有效的 API 项目标识符。

返回:success

projectNumber

字符串

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

返回:success

storageClass

字符串

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

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

返回:success

timeCreated

字符串

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

返回:success

updated

字符串

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

返回:success

versioning

complex

存储桶的版本控制配置。

返回:success

enabled

布尔值

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

返回:success

website

complex

存储桶的网站配置,控制服务在将存储桶内容作为网站访问时的行为。有关更多信息,请参阅静态网站示例。

返回:success

mainPageSuffix

字符串

如果请求的对象路径不存在,服务将确保路径具有尾随“/”,追加此后缀,然后尝试检索结果对象。这允许创建 index.html 对象以表示目录页。

返回:success

notFoundPage

字符串

如果请求的对象路径不存在,并且任何 mainPageSuffix 对象(如果适用)不存在,服务将返回此存储桶中的命名对象作为 404 未找到结果的内容。

返回:success

作者

  • Google Inc. (@googlecloudplatform)