-
删除对象操作会同步复制到跨区域复制的桶中吗? 如果您通过OBS控制台设置跨区域复制规则,那么源桶的删除对象操作默认不会同步复制到目标桶中。 如果您通过API设置跨区域复制规则,那么源桶的删除对象操作是否会同步复制到目标桶中取决于DeleteData参数的设置: DeleteData参数值为Enabled,表示源桶的删除对象操作会同步复制到目标桶中。 源桶中生命周期规则到期删除对象的操作不会被复制到目标桶中,即源桶中通过生命周期规则删除的对象,在目标桶中不会被同步删除。 例如:您在1月16日配置了跨区域复制规则,将源桶A中的对象a.txt和aa.txt全部复制到了目标桶B中,而在1月20日a.txt被源桶A配置的生命周期规则删除,那么已经复制到目标桶B中的a.txt不会同步被删除。 DeleteData参数值为Disabled,表示源桶的删除对象操作不会同步复制到目标桶中。 启用跨区域复制规则后,符合以下条件的对象会复制到目标桶中: 新上传的对象(归档存储或深度归档存储对象除外)。 有更新的对象,比如对象内容有更新,或者某一对象跨区域复制成功后源桶对象ACL设置有更新。 桶中的历史对象(需要开启“同步历史对象”功能,且归档存储或深度归档存储对象除外)。 父主题: 跨区域复制
-
响应示例 状态码: 200 OK,请求响应成功。 {
"region_list" : [ {
"region_id" : "xx-xxxx-xxx",
"region_name" : "xxx",
"region" : "xx-xxxx-xxx"
}, {
"region_id" : "mock-region",
"region_name" : "xxxx",
"region" : "mock-region"
} ]
}
-
命名SQL描述符区域 一个命名SQL描述符区域由一个头部以及一个或多个条目描述符区域构成。头部包含与整个描述区域相关的信息,而条目描述符区域则描述结果行中的某一列。 在使用SQL描述符区域之前,需要分配一个SQL描述符区域: EXEC SQL ALLOCATE DESCRIPTOR identifier; 当不再需要这个描述符区域时,应及时释放: EXEC SQL DEALLOCATE DESCRIPTOR identifier; 要使用一个描述符区域,需要使用INTO子句声明: EXEC SQL FETCH NEXT FROM mycursor INTO SQL DESCRIPTOR mydesc; 如果结果集为空,该描述符区域仍会包含查询的元数据。 对于还没有执行的预备查询,可以使用DESCRIBE得到其结果集的元数据: EXEC SQL BEGIN DECLARE SECTION;
char *sql_stmt = "SELECT * FROM table1";
EXEC SQL END DECLARE SECTION;
EXEC SQL PREPARE stmt1 FROM :sql_stmt;
EXEC SQL DESCRIBE stmt1 INTO SQL DESCRIPTOR mydesc; 在DESCRIBE和FETCH语句中,INTO和USING关键词的使用相似:它们产生结果集以及一个描述符区域的元数据。 从头部检索一个描述符区域的值并且将其存储到一个宿主变量中: EXEC SQL GET DESCRIPTOR name :hostvar = field; 当前只定义了一个头部描述符区域COUNT,它存放描述符区域的条目(即结果集中包含多少列),宿主变量为一个整数类型,需从条目描述符区域中得到一个具体值: EXEC SQL GET DESCRIPTOR name VALUE num :hostvar = field; num可以是一个字符整数或者一个包含整数的宿主变量。可能的类型如下: CARDINALITY(整数):结果集中的行数 DATA:实际的数据项(这个范围的实际数据类型取决于查询) DATETIME_INTERVAL_CODE(整数):当TYPE是9时,DATETIME_INTERVAL_CODE将具有以下值之一:1表示DATE,2表示TIME,3表示TIMESTAMP,4表示TIME WITH TIME ZONE,5表示TIMESTAMP WITH TIME ZONE。 INDICATOR(整数):指示符(表示一个空值或者一个值截断) LENGTH(整数):以字符计的数据长度 NAME(string):列名 OCTET_LENGTH(整数):以字节计的数据字符表达的长度 PRECISION(整数):精度(用于类型numeric) RETURNED_LENGTH(整数):以字符计的数据长度 RETURNED_OCTET_LENGTH(整数):以字节计的数据字符表达的长度 SCALE(整数):比例(用于类型numeric) TYPE(整数):列的数据类型的数字编码 要检索字段数值并且把它存储到一个宿主变量里,使用如下命令: EXEC SQL GET DESCRIPTOR mydesc VALUE num :hostvar = field num可以是一个字符整数或者一个包含整数的宿主变量。可能的字段有: DATA 实际数据项(这个字段的数据类型依赖于这个查询) NAME(string) 字段名称 手动建立一个描述符区域为一个查询或游标提供输入参数,使用如下命令: EXEC SQL SET DESCRIPTOR name VALUE numfield = :hostvar; 在一个FETCH语句中检索多行记录且用数组类型的宿主变量来存储数据,示例如下: EXEC SQL BEGIN DECLARE SECTION;
int id[5];
EXEC SQL END DECLARE SECTION;
EXEC SQL FETCH 5 FROM mycursor INTO SQL DESCRIPTOR mydesc;
EXEC SQL GET DESCRIPTOR mydesc VALUE 1 :id = DATA; 父主题: SQL描述符区域
-
命名SQL描述符区域 一个命名SQL描述符区域由一个头部以及一个或多个条目描述符区域构成。头部包含与整个描述区域相关的信息,而条目描述符区域则描述结果行中的某一列。 在使用SQL描述符区域之前,需要分配一个SQL描述符区域: EXEC SQL ALLOCATE DESCRIPTOR identifier; 当不再需要这个描述符区域时,应及时释放: EXEC SQL DEALLOCATE DESCRIPTOR identifier; 要使用一个描述符区域,需要使用INTO子句声明: EXEC SQL FETCH NEXT FROM mycursor INTO SQL DESCRIPTOR mydesc; 如果结果集为空,该描述符区域仍会包含查询的元数据。 对于还没有执行的预备查询,可以使用DESCRIBE得到其结果集的元数据: EXEC SQL BEGIN DECLARE SECTION;
char *sql_stmt = "SELECT * FROM table1";
EXEC SQL END DECLARE SECTION;
EXEC SQL PREPARE stmt1 FROM :sql_stmt;
EXEC SQL DESCRIBE stmt1 INTO SQL DESCRIPTOR mydesc; 在DESCRIBE和FETCH语句中,INTO和USING关键词的使用相似:它们产生结果集以及一个描述符区域的元数据。 从头部检索一个描述符区域的值并且将其存储到一个宿主变量中: EXEC SQL GET DESCRIPTOR name :hostvar = field; 当前只定义了一个头部描述符区域COUNT,它存放描述符区域的条目(即结果集中包含多少列),宿主变量为一个整数类型,需从条目描述符区域中得到一个具体值: EXEC SQL GET DESCRIPTOR name VALUE num :hostvar = field; num可以是一个字符整数或者一个包含整数的宿主变量。可能的类型如下: CARDINALITY(整数):结果集中的行数 DATA:实际的数据项(这个范围的实际数据类型取决于查询) DATETIME_INTERVAL_CODE(整数):当TYPE是9时,DATETIME_INTERVAL_CODE将具有以下值之一:1表示DATE,2表示TIME,3表示TIMESTAMP,4表示TIME WITH TIME ZONE,5表示TIMESTAMP WITH TIME ZONE INDICATOR(整数):指示符(表示一个空值或者一个值截断) LENGTH(整数):以字符计的数据长度 NAME(string):列名 OCTET_LENGTH(整数):以字节计的数据字符表达的长度 PRECISION(整数):精度(用于类型numeric) RETURNED_LENGTH(整数):以字符计的数据长度 RETURNED_OCTET_LENGTH(整数):以字节计的数据字符表达的长度 SCALE(整数):比例(用于类型numeric) TYPE(整数):列的数据类型的数字编码 要检索字段数值并且把它存储到一个宿主变量里,使用如下命令: EXEC SQL GET DESCRIPTOR mydesc VALUE num :hostvar = field num可以是一个字符整数或者一个包含整数的宿主变量。可能的字段有: DATA 实际数据项(这个字段的数据类型依赖于这个查询) NAME(string) 字段名称 手动建立一个描述符区域为一个查询或游标提供输入参数,使用如下命令: EXEC SQL SET DESCRIPTOR name VALUE numfield = :hostvar; 在一个FETCH语句中检索多行记录且用数组类型的宿主变量来存储数据,示例如下: EXEC SQL BEGIN DECLARE SECTION;
int id[5];
EXEC SQL END DECLARE SECTION;
EXEC SQL FETCH 5 FROM mycursor INTO SQL DESCRIPTOR mydesc;
EXEC SQL GET DESCRIPTOR mydesc VALUE 1 :id = DATA; 父主题: SQL描述符区域
-
响应参数 表2 响应Body参数 参数 参数类型 描述 links Object 资源链接信息。 regions Array of objects 区域信息列表。 表3 links 参数 参数类型 描述 self String 资源链接地址。 previous String 前一邻接资源链接地址,不存在时为null。 next String 后一邻接资源链接地址,不存在时为null。 表4 regions 参数 参数类型 描述 description String 区域描述信息。 parent_region_id String null. links Object 区域的资源链接信息。 locales Object 区
域名 ,受区域信息注册影响,不一定返回对象中所有字段。 id String 区域ID。 type String 区域类型。 表5 regions.links 参数 参数类型 描述 self String 资源链接地址。 表6 regions.locales 参数 参数类型 描述 zh-cn String 区域的中文名称。 en-us String 区域的英文名称。 pt-br String 区域的葡萄牙语名称。 es-us String 区域的美国西班牙语名称。 es-es String 区域的西班牙语名称。
-
响应示例 状态码为 200 时: 请求成功。 {
"regions": [
{
"parent_region_id": null,
"description": "",
"links": {
"self": "https://iam.myhuaweicloud.com/v3/regions/cn-north-1"
},
"type": "public",
"id": "cn-north-1",
"locales": {
"zh-cn": "华北-北京一",
"en-us": "cn-north-1"
}
},
{
"parent_region_id": null,
"description": "",
"links": {
"self": "https://iam.myhuaweicloud.com/v3/regions/la-south-2"
},
"type": "public",
"id": "la-south-2",
"locales": {
"pt-br": "AL-Santiago",
"zh-cn": "拉美-圣地亚哥",
"en-us": "LA-Santiago",
"es-us": "AL-Santiago de Chile1",
"es-es": "LA-Santiago"
}
}
],
"links": {
"self": "https://iam.myhuaweicloud.com/v3/regions",
"previous": null,
"next": null
}
}
-
解决方案 针对需求1:当前华为云提供的企业管理服务(EPS)和
统一身份认证 服务(
IAM ),均可实现项目之间的资源隔离,但两种服务的实现逻辑及功能不同。 企业管理服务:在企业管理服务中创建企业项目,企业项目之间的资源是逻辑隔离,针对企业不同项目间的资源进行分组和管理,一个企业项目中可以包含多个区域的资源。企业项目内的资源可以动态的迁入和迁出,某些服务可以实现指定资源的迁入迁出,例如迁入迁出某一台E
CS 服务器。 统一身份认证服务:在统一身份认证服务中创建IAM项目可以实现资源之间的物理隔离,针对同一个区域内的资源进行分组和隔离,一个IAM项目中只能包含一个区域中的资源。 综上,企业管理服务能够实现项目间跨区域的资源隔离,隔离逻辑更加灵活,因此,推荐A公司使用企业管理服务进行项目资源管理,以下需求将基于企业管理服务提出解决方案。如需了解更多统一身份认证和企业管理的区别,请参见:统一身份认证和企业管理的区别。 针对需求2:A公司需要配合使用企业管理服务和统一身份认证服务,在统一身份认证服务中创建用户组、为每个员工创建IAM用户并加入用户组,再将用户组添加至需求1创建的企业项目,并按照表1为各企业项目中的用户组授予相应的资源使用权限。 图1 A公司人员配置模型 表1 A公司各用户组权限配置模型 用户组 职责 所需权限 描述 财务组 负责管理项目费用的使用情况。 Enterprise Project BSS FullAccess 企业项目费用的管理权限。 开发组 负责使用资源进行项目开发。 ECS FullAccess 弹性云服务器(ECS)的所有执行权限。 OBS FullAccess
对象存储服务 (OBS)的所有执行权限。 ELB FullAccess 弹性负载均衡(ELB)的所有执行权限。 安全维护组 负责项目的安全运维。 ECS CommonOperations 弹性云服务器(ECS)的普通操作权限。 CAD Administrator
DDoS高防服务 (AAD)的所有执行权限。 运营组 负责所有项目的总体运营。 EPS FullAccess 企业管理服务的所有执行权限,包括修改、启用、停用、查看企业项目。 如需了解华为云所有云服务的系统权限,请参见:系统权限。
-
企业需求 需求1:A公司需要同时在“华北-北京四”和“华东-上海一”多地域购买多种资源,A公司希望将资源按需分配给两个项目团队,某些服务可实现指定资源的分配,例如某一台ECS服务器只分配给指定IAM用户使用,且两个项目中的资源相互隔离。 需求2:每个项目团队的成员只能访问其所在项目团队的资源,且仅拥有能够完成工作的资源使用最小权限。 需求3:A公司希望两个项目团队能够独立核算成本,项目费用一目了然。
-
如何选择区域? 选择区域时,您需要考虑以下几个因素: 地理位置 一般情况下,建议就近选择靠近您或者您的目标用户的区域,这样可以减少网络时延,提高访问速度。 在除中国大陆以外的亚太地区有业务的用户,可以选择“中国-香港”、“亚太-曼谷”或“亚太-新加坡”区域。 在非洲地区有业务的用户,可以选择“非洲-约翰内斯堡”区域。 在拉丁美洲地区有业务的用户,可以选择“拉美-圣地亚哥”区域。 资源的价格 不同区域的资源价格可能有差异,请参见华为云服务价格详情。
-
什么是区域、可用区? 通常使用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。
-
规划资源 企业路由器ER、
虚拟私有云VPC 、弹性
云服务器ECS 只要位于同一个区域内即可,可用区可以任意选择,不用保持一致。 以下资源规划详情仅为示例,您可以根据需要自行修改。 企业路由器ER:1个,资源规划详情如表5所示。 表5 ER资源规划详情 ER名称 AS号 默认路由表关联 默认路由表传播 关联路由表 传播路由表 连接 er-test-01 64800 开启 开启 默认路由表 默认路由表 er-attach-01 er-attach-02 er-attach-03 er-attach-04 虚拟私有云VPC:4个,VPC的网段不能重复,资源规划详情如表6所示。 表6 VPC资源规划详情 VPC名称 VPC网段 子网名称 子网网段 关联路由表 vpc-demo-01 192.168.0.0/16 subnet-demo-01 192.168.1.0/24 默认路由表 vpc-demo-02 172.16.0.0/16 subnet-demo-02 172.16.1.0/24 默认路由表 vpc-demo-03 10.1.0.0/16 subnet-demo-03 10.1.1.0/24 默认路由表 vpc-demo-04 10.2.0.0/16 subnet-demo-04 10.2.1.0/24 默认路由表 弹性云服务器ECS:4个,分别接入4个不同的VPC,资源规划详情如表7所示。 表7 ECS资源规划详情 ECS名称 镜像 VPC名称 子网名称 安全组 私有IP地址 ecs-demo-01 公共镜像: EulerOS 2.5 6 vpc-demo-01 subnet-demo-01 sg-demo: 通用Web服务器 192.168.1.12 ecs-demo-02 vpc-demo-02 subnet-demo-02 172.16.1.189 ecs-demo-03 vpc-demo-03 subnet-demo-03 10.1.1.105 ecs-demo-04 vpc-demo-04 subnet-demo-04 10.2.1.83
-
规划组网 同区域VPC互通组网规划如图1所示,将4个VPC接入ER中,组网规划说明如表2所示。 图1 同区域VPC互通组网规划 表1 网络流量路径说明 场景 说明 请求路径:VPC1→VPC3 在VPC1路由表中,通过下一跳为ER的路由将流量转送到ER。 在ER路由表中,通过下一跳为VPC3连接的传播路由将流量送达VPC3。 响应路径:VPC3→VPC1 在VPC3路由表中,通过下一跳为ER的路由将流量转送到ER。 在ER路由表中,通过下一跳为VPC1连接的传播路由将流量送达VPC1。 表2 同区域VPC互通组网规划说明 资源 说明 VPC VPC网段(CIDR)不能重叠。 本示例中,ER路由表使用的是“虚拟私有云(VPC)”连接的传播路由,由ER自动学习VPC网段作为目的地址,不支持修改,因此重叠的VPC网段会导致路由冲突。 如果您已有的VPC存在网段重叠,则不建议您使用传播路由,请在ER路由表中手动添加静态路由,目的地址可以为VPC子网网段或者范围更小的网段。 VPC有一个默认路由表。 VPC默认路由表中的路由说明如下: local:表示VPC本地IPV4的默认路由条目,用于VPC内子网通信,系统自动配置。 ER:表示将VPC子网流量路由至ER,建议您在VPC路由表中增加三个VPC的网段10.0.0.0/8、172.16.0.0/12、192.168.0.0/16,路由信息如表3所示。 ER 开启“默认路由表关联”和“默认路由表传播”功能,添加完“虚拟私有云(VPC)”连接,系统会自动执行以下配置: 将4个“虚拟私有云(VPC)”连接关联至ER默认路由表。 在默认路由表中创建“虚拟私有云(VPC)”连接的传播,路由自动学习VPC网段,路由信息如表4所示。 ECS 4个ECS分别位于不同的VPC内,VPC中的ECS如果位于不同的安全组,需要在安全组中添加规则放通网络。 表3 VPC路由表 目的地址 下一跳 路由类型 10.0.0.0/8 企业路由器 静态路由:自定义 172.16.0.0/12 企业路由器 静态路由:自定义 192.168.0.0/16 企业路由器 静态路由:自定义 如果您在创建连接时开启“配置连接侧路由”选项,则不用手动在VPC路由表中配置静态路由,系统会在VPC的所有路由表中自动添加指向ER的路由,目的地址固定为10.0.0.0/8,172.16.0.0/12,192.168.0.0/16。 如果VPC路由表中的路由与这三个固定网段冲突,则会添加失败。此时建议您不要开启“配置连接侧路由”选项,并在连接创建完成后,手动添加路由。 不建议在VPC路由表中将ER的路由配置为默认路由网段0.0.0.0/0,如果VPC内的ECS绑定了EIP,会在ECS内增加默认网段的策略路由,并且优先级高于ER路由,此时会导致流量转发至EIP,无法抵达ER。 表4 ER路由表 目的地址 下一跳 路由类型 VPC1网段:192.168.0.0/16 VPC1连接:er-attach-01 传播路由 VPC2网段:172.16.0.0/16 VPC2连接:er-attach-02 传播路由 VPC3网段:10.1.0.0/16 VPC3连接:er-attach-03 传播路由 VPC4网段:10.2.0.0/16 VPC4连接:er-attach-04 传播路由
-
步骤六:购买带宽包 云连接实例默认跨区域互通带宽为10kbps,仅用于测试连通性。为了实现相同大区不同区域或不同大区之间的互通,用户需要先购买带宽包,绑定到对应的云连接实例中,并配置域间带宽以保证业务正常使用。 这里需要登录账号A操作。 一个云连接实例只能绑定一个相同规格的带宽包。 进入购买带宽包页面。 在购买带宽包页面中,根据表12填写对应参数,单击“立即购买”。 表12 购买带宽包参数 参数 说明 取值样例 基础配置 计费模式 包年/包月。 用户根据需要选择购买时长,按照年或月为单位进行购买。 包年/包月 名称 带宽包的名称。 长度为1~64个字符,支持数字,英文字母,下划线,中划线,点。 bandwidthPackge-test 企业项目 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 default 标签 带宽包的标识,包括键和值。可以为带宽包创建20个标签。 说明: 如果已经通过TMS的预定义标签功能预先创建了标签,则可以直接选择对应的标签键和值。 预定义标签的详细内容,请参见预定义标签简介。 - 带宽配置 计费方式 按宽带计费。 按带宽带计费 互通类型 互通大区的类型。支持: 大区内互通:指配置域间带宽的区域在同一个大区内。 跨大区互通:指配置域间带宽的区域在不同的大区内。 大区内互通 互通大区 需要实现互通的区域,即配置域间带宽时涉及的区域。 中国大陆 带宽 带宽是所有基于该带宽包配置的域间带宽总和,请根据网络情况提前做好规划。 单位Mbit/s。 10 购买时长 按照用户需求,选择对应的购买时间。 可支持自动续费。 1 云连接实例 选择需要绑定的云连接名称。支持: 绑定 暂不绑定 暂不绑定 在订单确认页面再次确认购买带宽包的信息,单击“提交”。 在带宽包列表中可查看带宽包信息,如果“状态”为“正常”,表示购买成功。 为带宽包绑定云连接实例 如果购买带宽包时没有绑定云连接实例,则需要将购买的带宽包和云连接实例绑定。 进入云连接实例列表页面。 单击目标云连接实例(cc-test)名称,进入基本信息页面。 单击“带宽包”页签。 单击“绑定带宽包”,在弹出的对话框中,选择已经购买的带宽包(bandwidthPackge-test)和云连接实例(cc-test)绑定。
-
步骤七:配置域间带宽 云连接实例默认跨区域互通带宽为10kbps,仅用于测试连通性,需配置域间带宽以保证业务正常使用。 这里需要登录账号A操作。 进入云连接实例列表页面。 单击目标云连接实例名称,进入基本信息页面。 单击“域间带宽”页签。 单击“配置域间带宽”,根据表13填写对应参数。 表13 配置域间带宽参数 参数 说明 取值样例 互通区域 需要实现互通的区域名称。 请选择两个需要互通的区域。 华北-北京四 华东-上海一 带宽包 云连接实例绑定的带宽包。 bandwidthPackge-test 带宽 两个区域实现互通的带宽。 所有基于该带宽包配置的域间带宽总和不超过带宽包的带宽,请预先做好规划。 10 单击“确定”,完成配置。 配置完域间带宽后,配置了带宽的区域间就可以进行正常通信。 系统默认安全组规则是入方向访问受限,请确认区域内互访资源的安全组出方向、入方向规则配置正确,保证跨区域通信正常。
-
步骤三:(可选) 创建VPC和ECS 您需要参考以下操作,创建虚拟私有云VPC和弹性云服务器ECS。如果您已有VPC和ECS资源,则可以不用执行本章节操作。 约束与限制 VPC网段(CIDR)不能重叠。 重叠的VPC网段会导致路由冲突,如果您已有的VPC存在网段重叠,则需要修改网段。 本示例中VPC-A和VPC-B的ECS位于不同的安全组,需要在安全组中添加规则放通网络,本示例中需要放通的安全组规则详情请参见表4。 操作步骤