我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
对 亚马逊云科技 Backup 的自动前脚本和后脚本进行故障排除
客户可以使用带有解耦任务的事件驱动架构来自动化和协调备份任务的自定义脚本。在事件驱动架构中,故障排除是了解组件级别故障的关键,这样才能解决出现的问题并保持整个自动化工作流程平稳运行。
在这个由两部分组成的博客系列
在这篇文章中,我们将重点介绍对 Step Functions 执行路径进行故障排除,每当执行导致失败时,都会密切关注这些组件。
了解输入 JSON
- 一切都已启用:执行预脚本 | 停止 EC2 实例 | 运行备份任务 | 启动 EC2 实例 | 执行后脚本 | 在 DynamoDB 表中记录详细信息。
- 无发布脚本:执行预脚本 | 停止 EC2 实例 | 运行备份任务 | 启动 EC2 实例 | 在 DynamoDB 表中记录详细信息。
- 无预脚本:停止 EC2 实例 | 运行备份任务 | 执行后脚本 | 启动 EC2 实例 | 在 DynamoDB 表中记录执行详情。
- 没有前置和事后脚本:停止 EC2 实例 | 运行备份任务 | 启动 EC2 实例 | 在 DynamoDB 表中记录执行详情。
- 未终止实例;其他所有功能均已启用:执行预脚本 | 运行备份作业 | 执行后脚本 | 在 DynamoDB 表中记录详细信息。
- 不终止实例,没有后置脚本:执行预脚本 | 运行备份作业 | 在 DynamoDB 表中记录详细信息。
- 不终止实例,没有预脚本:运行备份作业 | 执行后脚本 | 在 DynamoDB 表中记录详细信息。
- 不终止实例,没有前后脚本:运行备份作业 | 在 DynamoDB 表中记录详细信息。
有关根据您的 用例启用和禁用这些配置的更多信息,请参阅本
故障排除
在具有解耦任务的事件驱动架构中,您必须了解哪些组件可能出现故障以及如何解决这些问题。本节简要概述了如何排除故障并知道应从何处查找。
状态机
每个状态机执行都将有一个图形视图,您可以在其中可视化对不同状态进行颜色编码的工作流程(图 1)。如果在任何步骤中出现错误,则可以选择以红色突出显示的单个失败步骤来获取有关该错误的更多详细信息。下图是成功执行步骤的示例。它提供以下内容:
- 输入和输出 :发送到步骤的输入和相应的输出。如果任何步骤失败,则此处将显示失败详情。
-
详情
:您可以查看支持此步骤的资源,在本例中为
亚马逊云科技 L am bda 函数,以及与该步骤对应的日志。
图 1:显示状态机中 stopec2Instance 步骤详细信息的示意图
Amazon DynamoDB
每个关于失败的边缘案例都没有记录在
-
sm_execution_ID:执行
步骤函数的亚马逊资源名称 (ARN) 。 - 开始时间:执行的开始时间。
- 结束时间:执行的结束时间。
- Workflow_Overall_Status:它包含实例列表以及每项操作的状态,即停止 EC2 实例、运行预脚本、运行备份、启动 EC2 实例、运行后脚本。
以下是 Workflow_Overall_Status 代码段示例,供您参考:
[
{
"InstanceId": "i-0d7ac8ebf0957190a",
"PreBackupScriptStatus": "Success",
"StopEc2InstanceStatus": "skipped",
"BackupJobStatus": "COMPLETED",
"PostBackupScriptStatus": "Success",
"StartEc2InstanceStatus": "skipped",
"FailureMessage": ""
}
]
备份作业
使用唯一的 backupJobid 为每个实例创建了一个
备份任务。
如果备份任务花费的时间过长,则可以从步骤函数步骤 r
unbackupJob 中获取此 ID, 并使用 亚马逊云科技 命令行接口 (亚马逊云科技
有关对备份任务进行故障排除的更多信息,请参阅
亚马逊云科技 Systems Manager
该解决方案利用系统管理器的运行命令在目标 EC2 实例上执行脚本。要对任何运行命令失败进行故障排除,请 从状态机步骤的输入和输出部分获取 Comman
dID
,然后在 S
按如下方式验证配置:
-
确保 EC2 实例具有正确的权限并安装了 Systems Manager 代理,如
先决条件部分所述。 这可能导致无法在目标上执行远程运行命令。 -
确保您在输入中传递的标签密钥和值与 EC2 实例
上的标签 相匹配 。 -
确保
输入文件 中的所有属性都 指向正确的资源——backupJobExecutionroLearn、backupVaultName、Amazon Simple Storage Service(Amazon S3)脚本的托管位置。 -
验证是否为预期结果传递了正确的输入组合。
请参阅属性文档 。
正在清理
为了避免将来产生费用,请删除在此解决方案中创建的示例资源。有关更多详细信息,请参阅
结论
在这篇文章中,我们展示了如何使用步骤函数、Lambda 和系统管理器对集成 亚马逊云科技 Backup 与 Amazon EC2 的工作流程进行故障排除,以便在备份任务之前和之后运行脚本和操作。在这个无服务器解决方案中,考虑到编排中涉及的服务数量,可观察性是最重要的方面。了解各个组件的工作原理并采用必要的日志记录策略以最大限度地缩短故障排除时间至关重要。
如果你在 Step Functions 工作流程中遇到问题,这篇文章可以用作指南。最后,请注意,随着您向 Step Functions 工作流程添加更多功能,您需要建立更好的可追溯性,以识别编排中的瓶颈。 为步进功能@@
有关步骤函数的更多信息,请参阅
感谢您的阅读!如果您有任何评论、反馈或问题,请将其留在评论部分。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。