华为云用户手册

  • OMS如何迁移指定时间的文件? OMS支持迁移指定修改时间后的对象,您可以在创建迁移任务/迁移任务组时,设置迁移指定时间后的对象,使用时间过滤源端待迁移对象。 选择“否”,不过滤源端待迁移对象。 选择“是”,设置迁移指定时间后,OMS服务仅迁移在指定时间之后修改的源端待迁移对象。 输入的指定时间不能大于迁移任务开始执行时间,否则会导致迁移对象数量为0。 具体请参见创建迁移任务和创建迁移任务组。 父主题: 产品咨询
  • 自动备份场景 如果需要自动备份,建议存储库容量是备份资源容量的两倍,或者使用以下公式估算应创建的存储库大小: 准备好以下数据 磁盘容量(GB) :a 备份保留时长(天) :b 磁盘每日变化数据量(GB):c 根据以下公式进行计算 存储库容量(GB) =(a + b * c)* 120% 如果保留策略为按份数保留,也可以通过换算为保留时长进行计算。例如,某公司每天进行1次备份,保留份数设置为7份,则可以换算为保留时长为7天。 计算磁盘每日变化数据量时,删除、新增和修改的变化都需要包含在内。
  • 区别 备份能力:由于全量备份需要备份全部的数据,因此备份数据量通常会比增量备份要大,且备份耗时也会更长; 恢复能力:全量备份和增量备份都可作为独立的备份进行恢复,恢复速度没有差别; 可靠性:最新的增量备份依赖上一个全量备份及中间的增量备份,如果中间任意一个备份数据块损坏的话,可能导致后续备份都受影响,因此可靠性会减低一些。而全量备份所有的数据都是独立的,不依赖前序备份,因此可靠性更高。 建议周期性全量(比如每30天一次)搭配每日增量,减小增量备份依赖的长度,提升备份副本的可靠性。
  • 解释说明 全量备份:对某一个时间点上的所有数据进行的一个完整备份。 增量备份:在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比变化的数据。 云备份服务采用永久增量备份技术,每个资源的第一次备份是全量备份,后续备份为增量备份。如果全量备份过期被删除后,则全量备份的下一个增量备份将会继承成为实际意义上的全量备份。 比如服务器X按时间顺序先后生成A、B、C三个备份,首次备份A为全量备份,后续B和C为增量备份,增量备份只会备份变化的数据块,没有变化的数据块则通过指针方式进行引用。因此每个增量备份也可以看做是一个虚拟的全备。 当备份A被删除后,备份A中被后续备份引用的数据块将不会被删,只会删除独属于备份A的数据块,因此备份B和备份C还是可以继续用于数据恢复。或者备份A、B都被删除后,备份C也可以独立恢复数据,且恢复速度没有区别。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 execution_plans Array of ExecutionPlan objects 执行计划列表。默认按照生成时间降序排序,最新生成的在最前 表5 ExecutionPlan 参数 参数类型 描述 stack_name String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 stack_id String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36 execution_plan_id String 执行计划(execution_plan)的唯一Id。 此Id由资源编排服务在生成执行计划的时候生成,为UUID。 由于执行计划名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的执行计划,删除,再重新创建一个同名执行计划。 对于团队并行开发,用户可能希望确保,当前我操作的执行计划就是我认为的那个,而不是其他队友删除后创建的同名执行计划。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的执行计划所对应的ID都不相同,更新不会影响ID。如果给予的execution_plan_id和当前执行计划的ID不一致,则返回400 注意: 创建执行计划后,资源编排服务持久化请求并立即返回,客户端不等待请求最终处理完成,用户无法实时感知请求处理结果 资源编排服务最终会将异步部署请求排队,在服务端空闲的情况下逐个处理。用户最大等待时长为1小时 最小长度:36 最大长度:36 execution_plan_name String 执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 description String 执行计划的描述。可用于客户识别自己的执行计划。 最小长度:0 最大长度:1024 status String 执行计划的状态 * CREATION_IN_PROGRESS - 正在创建,请等待 * CREATION_FAILED - 创建失败,请从status_message获取错误信息汇总 * AVAILABLE - 创建完成,可以调用ApplyExecutionPlan API进行执行 * APPLY_IN_PROGRESS - 执行中,可通过GetStackMetadata查询资源栈状态,通过ListStackEvents获取执行过程中产生的资源栈事件 * APPLIED - 已执行 枚举值: CREATION_IN_PROGRESS CREATION_FAILED AVAILABLE APPLY_IN_PROGRESS APPLIED status_message String 当执行计划的状态为创建失败状态(即为 CREATION_FAILED 时),将会展示简要的错误信息总结以供debug create_time String 执行计划的生成时间,格式遵循RFC3339,精确到秒,UTC时区,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z apply_time String 执行计划的执行时间,格式遵循RFC3339,精确到秒,UTC时区,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 请求示例 列举用户指定资源栈下的所有的执行计划 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans 列举用户指定资源栈下的所有的执行计划,并提供资源栈id以校验是否与当前资源栈匹配 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans?stack_id=f689e9fd-97e7-4185-bd8a-7d5f708d45d7
  • 响应示例 状态码: 200 列举执行计划成功 { "execution_plans" : [ { "stack_name" : "my_hello_world_stack", "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "execution_plan_id" : "b3e7e15f-f96b-4190-94f4-bb8120f8c4dc", "execution_plan_name" : "my_third_execution_plan", "description" : "my third execution plan", "status" : "AVAILABLE", "create_time" : "2023-05-15T15:39:25Z" }, { "stack_name" : "my_hello_world_stack", "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "execution_plan_id" : "3ca87537-8d5c-4c9d-9292-d19068aaacbb", "execution_plan_name" : "my_second_execution_plan", "description" : "my second execution plan", "status" : "APPLIED", "create_time" : "2023-05-15T15:32:45Z" }, { "stack_name" : "my_hello_world_stack", "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "execution_plan_id" : "8c1fb31d-9eec-4ce3-a4e6-fd07059cec83", "execution_plan_name" : "my_first_execution_plan", "description" : "my first execution plan", "status" : "CREATION_FAILED", "status_message" : "Failed to init workflow due to bad template. Error: Invalid variable name A name must start with a letter or underscore and may contain only letters, digits, underscores, and dashes.", "create_time" : "2023-05-15T12:23:38Z" } ] }
  • 功能介绍 列举执行计划(ListExecutionPlans) 列举当前局点下用户指定资源栈下所有的执行计划 默认按照生成时间降序排序,最新生成的在最前 注意:目前暂时返回全量执行计划信息,即不支持分页 如果指定的资源栈下没有任何执行计划,则返回空list 如果指定的资源栈不存在,则返回404 ListExecutionPlans返回的只有摘要信息(具体摘要信息见ListExecutionPlansResponseBody),如果用户需要详细的执行计划元数据请调用GetExecutionPlanMetadata
  • URI GET /v1/{project_id}/stacks/{stack_name}/execution-plans 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36
  • 请求示例 继续回滚资源栈 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/rollbacks 继续回滚资源栈,并提供资源栈id以校验是否与当前资源栈匹配 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/rollbacks { "stack_id" : "8592967b-18b0-421b-b6c1-079c9ded3931" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 表3 请求Body参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36
  • 响应参数 状态码: 202 表4 响应Body参数 参数 参数类型 描述 deployment_id String 继续回滚触发部署生成的唯一的deployment_id,由资源编排服务生成,通常为UUID 接受请求,进行异步处理。可以调用GetStackMetadata来获取异步请求的部署状态 注意: 资源编排服务最终会将异步部署请求排队,在服务端空闲的情况下逐个处理。用户最大等待时长为6小时 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 409 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 功能介绍 继续回滚资源栈(ContinueRollbackStack) 此API用于继续回滚一个已有的资源栈 如果资源栈开启了自动回滚,在部署失败的时候则会自动回滚。但是自动回滚依然有可能失败,用户可以根据错误信息修复后,调用ContinueRollbackStack触发继续回滚,即重试回滚 如果资源栈当前可以回滚,即处于ROLLBACK_FAILED,则返回202与对应生成的deploymentId,否则将不允许回滚并返回响应的错误码 继续回滚也有可能会回滚失败。如果失败,用户可以从ListStackEvents获取对应的log,解决后可再次调用ContinueRollbackStack去继续触发回滚
  • URI POST /v1/{project_id}/stacks/{stack_name}/rollbacks 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128
  • 响应参数 状态码: 202 表4 响应Body参数 参数 参数类型 描述 deployment_id String 部署ID 接受请求,进行异步处理。可以调用GetStackMetadata来获取异步请求的部署状态 注意: 部署资源栈后,资源编排服务持久化请求并立即返回,客户端不等待请求最终处理完成,用户无法实时感知请求处理结果 资源编排服务最终会将异步部署请求排队,在服务端空闲的情况下逐个处理。用户最大等待时长为6小时 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 409 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • URI POST /v1/{project_id}/stacks/{stack_name}/continuations 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 表3 请求Body参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36
  • 请求示例 继续部署资源栈 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/continuations 继续部署资源栈,并提供资源栈id以校验是否与当前资源栈匹配 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/continuations { "stack_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3" }
  • 条件(Condition) 条件(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀为服务缩写,如vpc:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 vpc定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 vpc支持的服务级条件键 服务级条件键 类型 单值/多值 说明 vpc:VpcId string 多值 根据指定的虚拟私有云资源ID过滤访问。 vpc:SubnetId string 多值 根据指定的子网资源ID过滤访问。 vpc:SecurityGroupId string 多值 根据指定的安全组资源ID过滤访问。 vpc:PeeringId string 多值 根据指定的对等连接资源ID过滤访问。 vpc:AccepterVpcId string 多值 根据指定的接收方VPC资源ID过滤访问。 vpc:AccepterVpcOrgPath string 多值 根据指定的对等连接接收方VPC资源所有者的OrgPath过滤访问。 vpc:AccepterVpcOwner string 多值 根据指定的对等连接接收方VPC资源所有者的账号ID过滤访问。 vpc:RequesterVpcOrgPath string 多值 根据指定的对等连接请求方VPC资源所有者的OrgPath过滤访问。 vpc:RequesterVpcOwner string 多值 根据指定的对等连接请求方VPC资源所有者的账号ID过滤访问。 vpc:RequesterVpcId string 多值 根据指定的请求方VPC资源ID过滤访问。 vpc:RouteTableId string 多值 根据指定的路由表资源ID过滤访问。 vpc:FlowLogId string 多值 根据指定的流日志资源ID过滤访问。 vpc:AddressGroupId string 多值 根据指定的IP地址组资源ID过滤访问。 vpc:FirewallId string 多值 根据指定的网络ACL资源ID过滤访问。 vpc:PrivateIpId string 多值 根据指定的私有IP资源ID过滤访问。 vpc:PortId string 多值 根据指定的端口资源ID过滤访问。 vpc:SubNetworkInterfaceId string 多值 根据指定的辅助弹性网卡资源ID过滤访问。 vpc:FirewallRuleDirection string 多值 根据指定的网络ACL规则方向过滤访问,有效的条件值应为ingress、egress。 vpc:FirewallRuleProtocol string 多值 根据指定的网络ACL规则协议过滤访问,有效的条件值应为tcp、udp、icmp、icmpv6、any。 vpc:FirewallRuleAction string 多值 根据指定的网络ACL规则策略过滤访问,有效的条件值应为allow、deny。 vpc:FirewallRuleSourcePort numeric 多值 根据指定的网络ACL规则源端口过滤访问。 vpc:FirewallRuleDestinationPort numeric 多值 根据指定的网络ACL规则目的端口过滤访问。 vpc:FirewallOperationType string 多值 根据指定的网络ACL操作类型过滤访问,有效的条件值应为updateAcl、associateSubnet、disassociateSubnet、insertRule、updateRule、removeRule。
  • 和其他服务的关系 对象存储迁移服务与其他服务的关系如表1所示。 表1 与其他服务的关系 相关服务 交互功能 位置 对象存储服务(Object Storage Service,OBS) 将源端对象数据迁移至华为云创建的OBS桶中。 创建单个迁移任务 创建迁移任务组 数据加密服务(Data Encryption Workshop,DEW) 将迁移到华为云OBS桶中的文件进行KMS加密。 消息通知服务(Simple Message Notification,SMN) 及时获取迁移任务的结果。 云审计服务(Cloud Trace Service,CTS) 记录与对象存储迁移服务相关的操作事件,便于日后的查询、审计和回溯。 查看审计日志
  • 步骤三:设置环境变量 进入check_retry_task函数详情页,在设置页签,选择环境变量。 单击“添加环境变量”,根据表1,配置环境变量,完成后单击“保存”。 表1 环境变量参数说明 环境变量 说明 region_id 目的端桶所在区域,例如华北-北京4的region_id为cn-north-4 task_id 指定迁移任务id max_retry_count 重试次数 dst_ak 目标端账号的ak(加密参数) dst_sk 目标端账号的sk(加密参数) src_ak 源端账号的ak(加密参数) src_sk 源端账号的sk(加密参数)
  • 方案概述 通过API调用启动迁移任务/迁移任务组后,由于网络波动或其他原因导致迁移任务失败,需要重新启动迁移任务/迁移任务组,可以通过以下方式重新启动: 手动调用API重新启动迁移任务/迁移任务组。 在业务代码中自动检测并调用API重新启动迁移任务/迁移任务组。 使用函数工作流自动检查并重启失败的迁移任务。 本方案指导用户使用函数工作流检查指定任务id的迁移任务,若该任务迁移失败则自动重启。 该方案只提供参考,需要根据实际情况做出调整,函数工作流的使用方式请参见函数工作流 FunctionGraph。 图1 逻辑架构图 启动OMS迁移任务之后,触发函数工作流循环检查该迁移任务的执行状态,当迁移任务状态为失败时: 如果该迁移任务为单个迁移任务,函数工作流调用OMS的API重启该迁移任务。 如果该迁移任务为迁移任务组中的任务,函数工作流调用OMS的API检查迁移任务组的状态,直至迁移任务组的状态为失败,重新启动迁移任务。 当迁移成功或重试次数超过指定次数,则停止检查。
  • 步骤四:配置事件源 函数创建完成后,为函数添加事件源,可以通过添加定时触发器定时检查指定任务的迁移状态并重启。 进入check_retry_task函数详情页,在设置页签,选择“触发器”。 单击“创建触发器”,弹出“创建触发器”界面。 设置以下信息: 触发器类型:选择“定时触发器 (TIMER)”。 定时器名称:您自定义的定时器名称,例如:Timer。 触发规则:固定频率和Cron表达式。 固定频率:固定时间间隔触发函数,该类型下支持配置单位为分、时、天,每种类型仅支持整数配置,其中分钟支持范围(0,60],小时支持范围(0,24],天支持范围(0,30]。 Cron表达式:设置更为复杂的函数执行计划,例如:周一到周五上午08:30:00执行函数等,具体请参见函数定时触发器Cron表达式规则。 是否开启:可选择是否开启定时触发器。 附加信息:如果用户配置了触发事件,会将该事件填写到TIMER事件源的“user_event”字段,详情请参见支持的事件源。 配置完成后,单击“确定”,完成触发器创建。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 调用本服务API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": "********", //IAM用户密码 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } } } 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 请求参数 参数 是否必选 参数类型 描述 reset-password 是 Object reset-password信息详情。请参见表2。 表2 reset-password字段结构说明 参数名称 是否必选 参数类型 说明 new_password 是 String 裸金属服务器新密码。 该接口不做密码安全性校验,设置的密码复杂度请遵循密码规则。 密码规则: 密码长度范围为8到26位。 密码至少包含以下4种字符中的3种: 大写字母 小写字母 数字 特殊字符 Windows:!@$%-_=+[]:./? Linux:!@%^-_=+[]{}:,./? 密码不能包含用户名或用户名的逆序。 Windows系统的裸金属服务器,不能包含用户名中超过两个连续字符的部分。
  • URI PUT /v1/{project_id}/baremetalservers/{server_id}/os-reset-password 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。 server_id 是 裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)获取。
  • 请求示例 一键重置ID为77616c78-0bc4-4156-b24b-4286586ac350的裸金属服务器的密码,新密码为Fusion@123。 1 PUT https://{BMS Endpoint}/v1/2e62dec99940499d93717c2789759015/baremetalservers/77616c78-0bc4-4156-b24b-4286586ac350/os-reset-password 1 2 3 4 5 { "reset-password": { "new_password": "Fusion@123" } }
  • 请求示例 重装操作系统,裸金属服务器ID为cf2a8b97-b5c6-47ef-9714-eb27adf26e5b,密钥信息为KeyPair-350b,用户ID为7e25b1da389f4697a79df3a0e5bd494e。 1 POST https://{BMS Endpoint}/v1/bbf1946d374b44a0a2a95533562ba954/baremetalservers/cf2a8b97-b5c6-47ef-9714-eb27adf26e5b/reinstallos 1 2 3 4 5 6 7 8 9 { "os-reinstall": { "keyname": "$key_name", "userid": "7e25b1da389f4697a79df3a0e5bd494e", "metadata": { "user_data": "$USER_DATA" } } }
  • 约束 使用私有镜像创建的裸金属服务器,请确保已经安装了Cloud-init(Linux镜像)或Cloudbase-init(Windows镜像)。如使用未安装Cloud-init或Cloudbase-init的镜像,该接口不能注入密钥或密码。公共镜像默认已安装Cloud-init或Cloudbase-init。 执行重装操作系统任务时,请勿并行执行其他任务,否则可能会引起重装操作系统失败。 关机状态或者重装操作系统失败的裸金属服务器,才能执行重装操作。 目前Windows镜像不支持注入密码,Linux镜像的user_data为加密后的密码。
共100000条