阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。当需要在不同的区域创建多个存储空间时,此时可以使用OOS服务执行特定模版来实现自动化创建存储空间。
前提条件
- 确保创建的Bucket名称不存在。(详情请查看OSS文档)
- 本模版属于ROA风格,与REST风格模版稍有区别。
模版说明:
本模版主要功能为在不同的Region下可以同时创建相同类型的Bucket,也可以仅在一个Region下创建Bucket。
FormatVersion: OOS-2019-06-01
Description:
en: Create multiple buckets in different region at the same time.
zh-cn: 同时创建多个不同区域的Bucket。
Parameters:
Regions:
Description:
en: The region id..
zh-cn: 区域Id。
Type: List
AllowedValues:
- cn-qingdao
- cn-beijing
- cn-zhangjiakou
- cn-huhehaote
- cn-hangzhou
- cn-shanghai
- cn-shenzhen
- cn-chengdu
- cn-hongkong
- ap-northeast-1
- ap-southeast-1
- ap-southeast-2
- ap-southeast-3
- ap-southeast-5
- ap-south-1
- us-east-1
- us-west-1
- eu-west-1
- me-east-1
- eu-central-1
BucketName:
Description:
en: The bucket name.
zh-cn: Bucket名称。
Type: String
DataRedundancyType:
Description:
en: Specifies the data disaster tolerance type of the bucket.
zh-cn: 指定Bucket的数据容灾类型。
Type: String
AllowedValues:
- LRS
- ZRS
StorageClass:
Description:
en: Specify the bucket storage type.
zh-cn: 指定Bucket存储类型。
Type: String
AllowedValues:
- Standard
- IA
- Archive
XOssAcl:
Description:
en: Specify bucket access rights.
zh-cn: 指定Bucket访问权限。
Type: String
AllowedValues:
- public-read-write
- public-read
- private
RateControl:
Description:
en: Concurrency ratio of task execution.
zh-cn: 任务执行的并发比率。
Type: Json
AssociationProperty: RateControl
OOSAssumeRole:
Description: The RAM role to be assumed by OOS.
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: PutBucket
Action: 'ACS::ExecuteAPI'
Description:
en: Create buckets in different regions.
zh-cn: 创建不同区域的Bucket。
Properties:
Service: OSS
API: PutBucket
Method: PUT
URI: ''
Headers:
x-oss-acl: '{{ XOssAcl }}'
Parameters:
BucketName: '{{ BucketName }}-{{ACS::TaskLoopItem}}'
RegionId: '{{ACS::TaskLoopItem}}'
Body: |
<?xml version="1.0" encoding="UTF-8"?>
<CreateBucketConfiguration>
<StorageClass>{{ StorageClass }}</StorageClass>
<DataRedundancyType>{{ DataRedundancyType }}</DataRedundancyType>
</CreateBucketConfiguration>
Loop:
Items: '{{ Regions }}'
RateControl: '{{ RateControl }}'
模版参数说明:
参数 | 说明 | 示例 |
---|---|---|
Regions | 创建Bucket的区域 | cn-hangzhou |
BucketName | 创建Bucket的名称 | test-put-bucket |
DataRedundancyType | 指定Bucket的数据容灾类型。 有效值: - LRS(本地容灾类型) - ZRS(同城容灾类型) |
LRS |
StorageClass | 指定Bucket存储类型。 有效值: - Standard(标准) - IA - Archive |
Standard |
XOssAcl | 指定Bucket访问权限。 有效值: - public-read-write(公共可读可写) - public-read(公共可读) - private(私有) |
private |
RateControl | 固定参数。 - 速率控制类型:并发控制 - 并发速率:1 - 最大错误次数:0 |
|
OOSAssumeRole | 可选参数。 - (默认设置)当前账号的已有权限:执行您使用的账号的权限动作。请确保您拥有创建自定义镜像涉及的所有ECS API调用权限。 - 指定RAM角色,使用该角色的权限:如果指定了RAM角色名称,OOS扮演该RAM角色执行运维任务。 |
当前账号的已有权限 |
操作步骤
- 请登录运维编排OOS的控制台。
- 单击自定义模板,单击创建模板按钮,选取空白模板。
- 将上述提供的子模板粘贴到yaml栏,输入名称CreateDifferentRegionBucket,点击创建模板。
- 单击创建执行。
- 保持基本信息的默认设置,单击下一步:设置参数。
- 完成参数设置填写,单击下一步:确认。
- 查看参数设置是否无误,确认无误后单击创建执行。
- 在执行管理中查看创建的运维任务。
- 执行结果
如下所示,已经根据自己需求创建出相应的存储空间。
附录一:
此模版属于ROA风格的模版,编写风格与REST风格稍有变化。因此简单介绍ROA的编写风格:
- 根据OSS的PutBucket的文档可见。在此模版中的参数 x-oss-acl 在源OSS文档中是属于请求头,因此放到本文的模版中,存在于Headers下。
- 此模版中的参数RegionId、BucketName是属于公共参数是直接放到模版中的Parameters下。
- 此模版中的请求参数StorageClass与DataRedundancyType,在原文档中是属于请求元素,因此放到模版中是编写到Body下。
附录二:
编辑OOS模版时,与本文中的模版拥有一样模版形式的有以下服务:
系列文章
主题文章
最佳实践
玩转运维编排服务的权限:Assume Role+Pass Role
阿里云运维编排新功能:一键批量克隆ECS
批量在多台ECS内执行命令
场景系列
运维编排场景系列----更新ECS镜像
运维编排场景系列----给ECS实例自动打TAG
运维编排场景系列----从实例中拷贝文件到OSS
运维编排场景系列----给实例加到SLS机器组
运维编排场景系列----检测MFA功能状态
运维编排场景系列----每日统计多Region实例的运行状态
运维编排场景系列----如何使用jq
运维编排场景系列----分批到机器上运行命令
运维编排场景系列----更新镜像后自动更新伸缩配置镜像
运维编排场景系列----向Linux实例上传文件
运维编排场景系列----运行远端shell脚本
运维编排场景系列----在ECS实例上运行Ansible-playbook
运维编排场景系列----下载JVM堆栈到OSS
运维编排系列场景----将实例的固定公网IP转换为其它新EIP
运维编排场景系列----自动定时升级临时带宽
运维编排场景系列----批量更新云助手客户端
运维编排系列场景----批量释放实例
运维编排场景系列----ECS实例系统快照下载到本地
运维编排场景系列----批量更换系统盘