使用 AWS 在 UiPath Amazon EC2 上自动设置 RPA 机器人 CloudFormation - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS 在 UiPath Amazon EC2 上自动设置 RPA 机器人 CloudFormation

由 Rahul Sharad Gaikwad 博士 (AWS) 和 Tamilselvan P (AWS) 编写

环境:PoC 或试点

技术:基础设施; DevOps

工作负载:所有其他工作负载

AWS 服务:亚马逊 CloudWatch;亚马逊 EC2 Image Builder;AWS Systems Manager;AWS CloudFormation

Summary

此模式说明了如何在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上部署机器人流程自动化 (RPA)。它使用 EC2 Image Builder 管道创建自定义亚马逊机器映像(AMI)。AMI 是一个预配置的虚拟机映像,其中包含用于部署 EC2 实例的操作系统 (OS) 和预装软件。此模式使用 AWS CloudFormation 模板在自定义 AMI 上安装 UiPath Studio 社区版。 UiPath 是一款 RPA 工具,可帮助您设置机器人来自动执行任务。

作为该解决方案的一部分,使用基本 AMI 启动 EC2 Windows 实例,并在实例上安装 UiPath Studio 应用程序。该模式使用 Microsoft 系统准备(Sysprep)工具复制自定义的 Windows 安装。之后,它删除主机信息并从实例创建最终 AMI。然后,您可以使用最终的 AMI 以及您自己的命名约定和监控设置来按需启动实例。

注意:此模式不提供有关使用 RPA 机器人的任何信息。有关该信息,请参阅UiPath 文档。您也可使用此模式根据您的要求自定义安装步骤来设置其他 RPA 机器人应用程序。

此模式提供以下自动化和优点:

  • 应用程序部署和共享:您可以为应用程序部署构建 Amazon EC2 AMI,并通过 EC2 Image Builder 管道在多个账户之间共享它们,该管道使用 AWS CloudFormation 模板作为基础设施即代码 (IaC) 脚本。

  • Amazon EC2 配置和扩展: CloudFormation iaC 模板提供自定义计算机名称序列和 Active Directory 自动加入功能。

  • 可观察性和监控:该模式设置了亚马逊 CloudWatch 控制面板,以帮助您监控 Amazon EC2 指标(例如 CPU 和磁盘使用率)。

  • RPA 为您的企业带来的好处:RPA 提高了准确性,因为机器人可以自动、一致地执行分配的任务。RPA 还可以提高速度和生产力,因为它消除了不增加价值的操作并处理重复的活动。

先决条件和限制

先决条件

架构

用于在 Amazon EC2 设置 RPA 机器人的目标架构
  1. 管理员在ec2-image-builder.yaml文件中提供基本 Windows AMI,并在 CloudFormation 控制台中部署堆栈。

  2. CloudFormation 堆栈部署了 EC2 Image Builder 管道,其中包括以下资源:

    • Ec2ImageInfraConfiguration

    • Ec2ImageComponent

    • Ec2ImageRecipe

    • Ec2AMI

  3. EC2 Image Builder 管道使用基本 AMI 启动一个临时 Windows EC2 实例,并安装所需的组件(在本例中为 UiPath Studio)。

  4. EC2 Image Builder 会删除所有主机信息,并从 Windows Server 中创建 AMI。

  5. 您可以使用自定义 AMI 更新 ec2-provisioning yaml 文件并根据您的要求启动许多 EC2 实例。

  6. 您可以使用 CloudFormation 模板部署 Count 宏。此宏为 CloudFormation 资源提供了 C ount 属性,因此您可以轻松地指定多个相同类型的资源。

  7. 更新 CloudFormation ec2-provisioning.yaml文件中宏的名称并部署堆栈。

  8. 管理员根据要求更新 ec2-provisioning.yaml 文件并启动堆栈。

  9. 该模板使用 UiPath Studio 应用程序部署 EC2 实例。

工具

Amazon Web Services

  • AWS CloudFormation 可帮助您以自动且安全的方式对基础设施资源进行建模和管理。

  • Amazon CloudWatch 可帮助您观察和监控 AWS、本地和其他云上的资源和应用程序。

  • Amazon Elastic Compute Cloud (Amazon EC2) 在 Amazon Web Services Cloud 中提供安全且可调整大小的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。

  • EC2 Image Builder 简化在 AWS 上或本地使用的虚拟机和容器镜像的构建、测试和部署。

  • Amazon EventBridge 可帮助您在 AWS、现有系统或软件即服务 (SaaS) 应用程序中大规模构建事件驱动型应用程序。

  • AWS Identity and Access Management (IAM) 可帮助您安全地控制对您 AWS 资源的访问。借助 IAM,您可以集中管理控制用户可访问哪些 AWS 资源的权限。可以使用 IAM 来控制谁通过了身份验证(准许登录)并获得授权(拥有权限)来使用资源。

  • AWS Lambda 是一项无服务器、事件驱动计算服务,让您能够为几乎任何类型的应用程序或后端服务运行代码,而无需预调配或管理服务器。您可以从 200 多种 Amazon Web Services 和 SaaS 应用程序中调用 Lambda 函数,并且只需按实际使用量付费。

  • Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。

  • AWS Systems Manager Agent (SSM Agent) 可帮助 Systems Manager 更新、管理和配置 EC2 实例、边缘设备、本地服务器和虚拟机 (VM)。

代码存储库

此模式的代码可在使用 CloudFormation存储库的 GitHub UiPath RPA 机器人设置中找到。该模式还使用 A WS Mac CloudFormation ros 存储库中提供的宏。

最佳实践

  • AWS 每月都会发布新的 Windows AMI。其中包含最新的操作系统补丁、驱动程序和启动代理。您应该在启动新实例或构建自己的自定义镜像时利用最新的 AMI。

  • 在镜像生成期间应用所有可用的 Windows 或 Linux 安全补丁。

操作说明

任务描述所需技能

设置 EC2 Image Builder 管道。

  1. 使用 CloudFormation存储库克隆 UiPath RPA 机器人设置,或者从存储库下载ec2-image-builder.yaml模板。

  2. 登录 AWS 管理控制台,然后打开 AWS CloudFormation 控制台

  3. 选择创建堆栈

  4. 指定模板部分,选择上传模板文件

  5. 在您的计算机上找到并上传 ec2-image-builder.yaml 模板,然后选择下一步

  6. 为堆栈提供输入参数或者接受默认值。选择下一步

    注意:参数的数量和值可能会因您的输入值而异。

  7. (可选)配置堆栈选项,然后选择下一步

  8. 查看堆栈详细信息。

  9. 在屏幕末尾,选中确认权能的复选框,然后选择提交

  10. 监控堆栈的进度。如果状态为 CREATE_COMPLETE,则部署已准备就绪。

AWS DevOps

查看 EC2 Image Builder 设置。

EC2 Image Builder 设置包括基础设施配置、分发设置和安全扫描设置。若要查看设置,请执行以下操作:

  1. 打开 EC2 Image Builder 控制台

  2. 在导航窗格中导航到各种 Image Builder 设置。

注意:作为最佳实践,您应仅通过 CloudFormation 模板对 EC2 Image Builder 进行任何更新。

AWS DevOps

查看镜像管道。

要查看已部署的镜像管道,请执行以下操作:

  1. 在 EC2 Image Builder 控制台,从导航窗格中选择镜像管道

  2. 选择您所创建的镜像管道。

  3. 查看输出映像、图像配方、基础设施配置、分发设置、Amazon EventBridge 规则和标签的配置详情。

AWS DevOps

查看 Image Builder 日志。

EC2 Image Builder 日志按 CloudWatch 日志组汇总。要查看日志,请执行 CloudWatch以下操作:

  1. 打开CloudWatch 控制台

  2. 在导航窗格中,依次选择日志日志组

  3. 选择日志组名称。EC2 Image Builder 日志汇总到日志组 /aws/imagebuilder/XXX 中。

  4. 检查相应日志流中的最新日志,了解运行镜像管道时是否遇到任何错误。

EC2 Image Builder 日志也存储在 S3 存储桶。若要查看存储桶中的日志,请执行以下操作:

  1. 打开 Amazon S3 控制台

  2. 存储桶列表中,请选择桶名称。日志聚合在 S3 存储桶 <stack-name>-XXXXXX 中。

AWS DevOps

将 UiPath 文件上传到 S3 存储桶。

  1. https://download.uipath.com/ UiPathStudioCommunity .ms i 的位置下载 UiPath Studio 的.msi文件

  2. 将文件上传到 S3 存储桶。

  3. 更新 ec2-image-builder.yaml 模板中用户数据部分第 310 行中的存储桶名称和文件密钥。

AWS DevOps
任务描述所需技能

部署计数宏。

  1. 克隆或下载计数 CloudFormation 宏

  2. 导航到 Count文件夹。

  3. 您将需要一个 S3 存储桶来存储 CloudFormation 项目。如果您还没有 S3 存储桶,请使用名称 aws s3 mb s3://<bucket name> 创建一个存储桶。

  4. 将 Count 宏模板打包。该模板使用 AWS 无服务器应用程序模型 (SAM),在部署之前必须对其进行转换。

    aws cloudformation package \ --template-file template.yaml \ --s3-bucket <your bucket name here> \ --output-template-file packaged.yaml

    例如:

    aws cloudformation package \ --template-file template.yaml \ --s3-bucket count-macro-ec2 \ --output-template-file packaged.yaml
  5. 部署打包的模板以创建 CloudFormation 堆栈。

    aws cloudformation deploy \ --stack-name Count-macro \ --template-file packaged.yaml \ --capabilities CAPABILITY_IAM

如果要使用控制台,请按照上一篇长篇故事或CloudFormation 文档中的说明进行操作。 

DevOps 工程师

测试计数宏。

若要测试宏的功能,请尝试启动宏附带的示例模板。 

aws cloudformation deploy \ --stack-name Count-test \ --template-file test.yaml \ --capabilities CAPABILITY_IAM
DevOps 工程师
任务描述所需技能

部署 Amazon EC2 配置模板。

要部署 EC2 映像管道,请使用 CloudFormation以下方法:

  1. GitHub 存储库下载ec2-provisioning.yaml模板,或者如果您克隆了存储库,则可以在计算机上找到该模板。

  2. 打开CloudFormation 控制台

  3. 重复第一个长篇故事中的步骤(或按照CloudFormation 文档中的说明进行操作)进行部署ec2-provisioning.yaml

AWS DevOps

查看 Amazon EC2 设置。

Amazon EC2 设置包含安全、联网、存储、状态检查、监控和标签配置。若要查看这些配置,请执行以下操作:

  1. 打开 Amazon EC2 控制台

  2. 在导航窗格中,选择实例,然后选择由 Amazon EC2 预置模板创建的 EC2 实例。

  3. 在实例摘要中,选择选项卡,以查看相应的 Amazon EC2 设置。

AWS DevOps

查看 CloudWatch 控制面板。

  1. 打开CloudWatch 控制台

  2. 在导航窗格中,选择控制面板

  3. 选择包含堆栈名称的控制面板。

注意事项:配置堆栈后,需要一段时间才能在控制面板中填充指标。

控制面板提供以下指标:CPUUtilizationDiskUtilizationMemoryUtilizationNetworkInNetworkOutStatusCheckFailed

AWS DevOps

查看关于内存和磁盘使用情况的自定义指标。

  1. CloudWatch 控制台上,选择仪表板

  2. 在导航窗格中,依次选择指标所有指标

  3. 选择自定义命名空间CWAgent

AWS DevOps

查看内存与磁盘使用情况警报。

  1. CloudWatch 控制台的导航窗格中,选择仪表板

  2. 选择所有警报

AWS DevOps

验证快照生命周期规则。

  1. 打开 Amazon EC2 控制台

  2. 在导航窗格中,选择生命周期管理器

  3. 验证 AMI 生命周期设置。

AWS DevOps
任务描述所需技能

删除堆栈。

PoC 或试点项目完成后,我们建议您删除创建的堆栈,以确保您无需为这些资源付费。

  1. 打开 A WS CloudFormation 控制台。 

  2. 在导航窗格中,选择堆栈,然后选择您之前创建的要删除的一个或两个堆栈。该堆栈当前必须处于运行状态。

  3. 在堆栈详细信息窗格中,选择删除

  4. 当系统提示时,选择 Delete stack(删除堆栈)

重要提示:堆栈删除操作开始后就无法停止。堆栈进入 DELETE_IN_PROGRESS状态。

如果删除失败,则堆栈将处于 DELETE_FAILED 状态。有关解决方案,请参阅 AWS CloudFormation 疑难解答文档中的删除堆栈失败

有关保护堆栈不被意外删除的信息,请参阅 AWS CloudFormation 文档中的保护堆栈不被删除

AWS DevOps

故障排除

问题解决方案

当您部署 Amazon EC2 配置模板时,您会收到错误消息:收到来自转换 123xxxx::Count 的格式错误的响应

这是一个已知问题。(参见 AW CloudFormation S 宏存储库中的自定义解决方案和 PR。)

要修复此问题,请打开 AWS Lambda 控制台并index.py使用存储库中的GitHub 内容进行更新。 

相关资源

GitHub 存储库

AWS 参考

其他参考资料