火山引擎云服务器实践教程-查询与响应“因基础设施升级实例重新部署”事件

axin 2025-04-17 9人围观 ,发现0个评论 火山引擎云服务器云服务器云服务器教程



本文介绍如何通过控制台及火山引擎提供的OpenAPI,查询与响应InfrastructureUpgrade.Redeploy(因基础设施升级实例重新部署)事件,快速排除故障、确保云产品稳定运行。

操作场景

随着业务发展和云服务器宿主机(物理机)的健康状态变化,火山引擎将对部分老旧、性能不佳的基础设施进行升级和改造。
此种情况下,火山引擎将生成InfrastructureUpgrade.Redeploy(因基础设施升级实例重新部署)事件并通知您。收到通知后,您需要选择运维时间窗口,并授权火山引擎运维人员将您的云服务器部署到新的宿主机,避免由于基础设施升级影响您的实例运行。

操作流程

操作步骤

在控制台响应事件

本实践以“事件监控”页面响应事件为例,您还可以前往实例详情页响应事件,操作详情可查看在云服务器控制台查询并处理事件中的实例详情页
  1. 登录云服务器控制台。

  1. 在左侧导航树,选择“运维与监控 > 事件监控”,进入事件监控列表页。

  1. 在顶部导航栏,选择目标实例所属的项目和地域。

  1. 通过事件ID或时间筛选目标事件。

以实例触发InfrastructureUpgrade.Redeploy(因基础设施升级实例重新部署)事件为例,更多事件类型可查看ECS事件类型汇总。
    1. 单击事件“操作”列的“授权重新部署”按钮,进行授权响应。

    1. 选择重新部署实例的时间窗并同意授权。

    1. 单击“确定”按钮,完成授权响应。

  1. 成功授权后,事件状态将更新为执行中

火山引擎运维人员将按您设置的时间窗重新部署实例,部署成功后,事件状态将更新为执行成功

使用OpenAPI响应事件

以JAVA语言接口为例,您可以参考如下顺序调用OpenAPI接口,查询、响应云服务器事件。
说明
  • 本节通过火山引擎SDK调用相关接口,请在您的项目中导入火山引擎SDK,操作详情可查看SDK概述。

  • 若您不想在项目中引入SDK,可自行构造HTTP/HTTPS请求,操作详情可查看调用方法。

  • 高性能计算集群内的GPU型实例事件不支持使用OpenAPI响应事件。

  1. 调用DescribeSystemEvents接口,查询云服务器实例触发的事件信息。

请求示例:
public void queryInstanceEvents(){//设置您的akString ak = "Your AK";//设置您的skString sk = "Your SK";//设置您要访问的地域,本示例为北京地域String region = "cn-beijing";//初始化apiclientApiClient apiClient = new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region);EcsApi ecsApi = new EcsApi(apiClient);DescribeSystemEventsRequest describeSystemEventsRequest = new DescribeSystemEventsRequest();// 指定待查询的实例IDdescribeSystemEventsRequest.setResourceIds(Arrays.asList("<A实例ID>","<B实例ID>","<C实例ID>"));// 筛选生成事件的起始时间describeSystemEventsRequest.setCreatedAtStart("2023-05-20T01:29:38+08:00");// 筛选生成事件的结束时间describeSystemEventsRequest.setCreatedAtEnd("2023-05-25T18:29:38+08:00");try {DescribeSystemEventsResponse describeSystemEventsResponse = ecsApi.describeSystemEvents(describeSystemEventsRequest);System.out.println(describeSystemEventsResponse);} catch (ApiException e) {System.out.println(e.getResponseBody());}}
返回示例:
class DescribeSystemEventsResponse {nextToken:systemEvents: [class SystemEventForDescribeSystemEventsOutput {createdAt: 2023-05-25T14:15:21+08:00id: e-ycfroor651gh9zxxxoperatedEndAt: 2023-05-29T11:58:30+08:00operatedStartAt: 2023-05-28T23:58:30+08:00resourceId: <A实例ID>status: Inquiringtype: InfrastructureUpgrade_RedeployupdatedAt: 2023-05-26T11:58:30+08:00}, class SystemEventForDescribeSystemEventsOutput {createdAt: 2023-05-24T10:27:02+08:00id: e-ycfoo7134kgsnzdvxxxoperatedEndAt:operatedStartAt:resourceId: <B实例ID>status: Succeededtype: CreateInstanceupdatedAt: 2023-05-24T10:27:12+08:00}, class SystemEventForDescribeSystemEventsOutput {createdAt: 2023-05-23T17:44:17+08:00id: e-ycfmuzgy5im0xxxxoperatedEndAt:operatedStartAt:resourceId: <C实例ID>status: Succeededtype: RunInstanceupdatedAt: 2023-05-23T17:44:20+08:00}]}
  1. 调用DescribeEventTypes接口,查询实例触发的所有事件是否需要响应。

请求示例:
public void queryEventType(){//设置您的akString ak = "Your AK";//设置您的skString sk = "Your SK";//设置您要访问的地域,本示例为北京地域String region = "cn-beijing";//初始化apiclientApiClient apiClient = new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region);EcsApi ecsApi = new EcsApi(apiClient);DescribeEventTypesRequest describeEventTypesRequest = new DescribeEventTypesRequest();// 指定待查询的事件类型describeEventTypesRequest.setTypes(Arrays.asList("InfrastructureUpgrade_Redeploy","CreateInstance","RunInstance"));// 筛选需要响应的事件describeEventTypesRequest.setResponseRequired(true);try {DescribeEventTypesResponse describeEventTypesResponse = ecsApi.describeEventTypes(describeEventTypesRequest);System.out.println(describeEventTypesResponse);} catch (ApiException e) {System.out.println(e.getResponseBody());}}
返回示例:
本实践中,实例A触发的InfrastructureUpgrade_Redeploy(因基础设施升级实例重新部署)事件需要响应。
class DescribeEventTypesResponse {eventTypes: [class EventTypeForDescribeEventTypesOutput {kind: PlannedOperationsresponseRequired: truestatus: [Inquiring, Executing, Succeeded, Rejected, Canceled]title: 因基础设施升级实例重新部署type: InfrastructureUpgrade_Redeploy}]nextToken:}
  1. 调用UpdateSystemEvents接口,响应InfrastructureUpgrade_Redeploy(因基础设施升级实例重新部署)事件,授权火山引擎运维人员进行重新部署实例,排除故障。

说明
  • 仅InfrastructureUpgrade_Redeploy(因基础设施升级实例重新部署)事件授权时,支持使用OperatedStartAt、OperatedEndAt参数调整运维时间窗。

  • OperatedStartAt、 OperatedEndAt 参数仅支持传入如下时间段:

    • 事件发生时间 ~ 事件发生时间+12h

    • 事件发生时间+12h ~ 事件发生时间+24h

    • 事件发生时间+24h ~ 事件发生时间+36h

    • 事件发生时间+36h ~ 事件发生时间+48h

    • 事件发生时间+48h ~ 事件发生时间+60h

    • 事件发生时间+60h ~ 事件发生时间+72h

请求示例:
public void updateEvents(){//设置您的akString ak = "Your AK";//设置您的skString sk = "Your SK";//设置您要访问的地域,本示例为北京地域String region = "cn-beijing";//初始化apiclientApiClient apiClient = new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region);EcsApi ecsApi = new EcsApi(apiClient);UpdateSystemEventsRequest updateSystemEventsRequest = new UpdateSystemEventsRequest();// 传入需要响应的事件IDupdateSystemEventsRequest.setEventIds(Arrays.asList("e-ycfu1fit1f8hcczyxxx"));// 响应事件updateSystemEventsRequest.setStatus("Executing");// 指定重新部署实例时间窗updateSystemEventsRequest.setOperatedStartAt("2023-05-28T23:58:30+08:00");updateSystemEventsRequest.setOperatedEndAt("2023-05-29T11:58:30+08:00");try {UpdateSystemEventsResponse updateSystemEventsResponse = ecsApi.updateSystemEvents(updateSystemEventsRequest);System.out.println(updateSystemEventsResponse);} catch (ApiException e) {System.out.println(e.getResponseBody());}}
返回示例:
class UpdateSystemEventsResponse {operationDetails: [class OperationDetailForUpdateSystemEventsOutput {error: nulleventId: e-ycfu1fit1f8hcczxxx}]}
  1. 调用DescribeSystemEvents接口,传入已响应的事件ID,查询事件当前状态等信息。

请求示例:
public void queryInstanceEvents(){//设置您的akString ak = "Your AK";//设置您的skString sk = "Your SK";//设置您要访问的地域,本示例为北京地域String region = "cn-beijing";//初始化apiclientApiClient apiClient = new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region);EcsApi ecsApi = new EcsApi(apiClient);DescribeSystemEventsRequest describeSystemEventsRequest = new DescribeSystemEventsRequest();// 指定待查询事件IDdescribeSystemEventsRequest.setEventIds(Arrays.asList("e-ycfu1fit1f8hcczyxxx"));try {DescribeSystemEventsResponse describeSystemEventsResponse = ecsApi.describeSystemEvents(describeSystemEventsRequest);System.out.println(describeSystemEventsResponse);} catch (ApiException e) {System.out.println(e.getResponseBody());}}
返回示例:
    • 事件处于执行中状态示例如下:

class DescribeSystemEventsResponse {nextToken:systemEvents: [class SystemEventForDescribeSystemEventsOutput {createdAt: 2023-05-26T11:58:30+08:00id: e-ycfu1fit1f8hcczyxxxoperatedEndAt: 2023-05-29T11:58:30+08:00operatedStartAt: 2023-05-28T23:58:30+08:00resourceId: <A实例ID>status: Executingtype: InfrastructureUpgrade_RedeployupdatedAt: 2023-05-26T14:19:19+08:00}]}
    • 事件执行成功示例如下:

class DescribeSystemEventsResponse {nextToken:systemEvents: [class SystemEventForDescribeSystemEventsOutput {createdAt: 2023-05-26T11:58:30+08:00id: e-ycfu1fit1f8hcczyxxxoperatedEndAt: 2023-05-29T11:58:30+08:00operatedStartAt: 2023-05-28T23:58:30+08:00resourceId: <A实例ID>status: Succeededtype: InfrastructureUpgrade_RedeployupdatedAt: 2023-05-28T23:58:30+08:00}]}


请关注微信公众号
微信二维码
不容错过
Powered By TOPYUN 云产品资讯