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

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

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

由 Rahul Sharad Gaikwad 博士 () 和 Tamilselvan P () AWS 创作 AWS

摘要

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

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

注意

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

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

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

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

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

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

先决条件和限制

先决条件

架构

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

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

    • Ec2ImageInfraConfiguration

    • Ec2ImageComponent

    • Ec2ImageRecipe

    • Ec2AMI

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

  4. EC2Image Builder 会删除所有主机信息,然后AMI从 Windows Server 中创建一个。

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

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

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

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

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

工具

AWS 服务

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

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

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

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

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

  • AWSIdent@@ ity and Access Management (IAM) 可帮助您安全地控制对AWS资源的访问。借IAM助,您可以集中管理权限,控制用户可以访问哪些AWS资源。您可以使用 IAM 控制对哪个用户进行身份验证 (登录) 和授权 (具有权限) 以使用资源。

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

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

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

代码存储库

此模式的代码可在 GitHub UiPath RPA机器人设置中使用 CloudFormation存储库获得。该模式还使用 Macros 存储库中提供的AWS CloudFormation 宏。

最佳实践

  • AWSAMIs每个月都会发布新的 Windows。其中包含最新的操作系统补丁、驱动程序和启动代理。我们建议您在启动新实例或构建自己的自定义镜像时使用最新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 设置。

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

  1. 打开 EC2Image Builder 控制台

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

注意

最佳做法是,应仅通过 CloudFormation 模板对 EC2 Image Builder 进行任何更新。

AWS DevOps

查看镜像管道。

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

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

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

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

AWS DevOps

查看 Image Builder 日志。

EC2Image Builder 日志按 CloudWatch 日志组进行聚合。要查看日志,请执行 CloudWatch以下操作:

  1. 打开 CloudWatch 管理控制台

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

  3. 选择日志组名称。 EC2Image Builder 日志聚合到日志组中/aws/imagebuilder/XXX

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

EC2Image 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 配置模板。

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

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

  2. 打开 CloudFormation 管理控制台

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

AWS DevOps

查看亚马逊EC2设置。

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

  1. 打开亚马逊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. 打开亚马逊EC2控制台

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

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

AWS DevOps
任务描述所需技能

删除堆栈。

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

  1. 打开 AWS CloudFormation 管理控制台。 

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

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

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

重要

堆栈删除操作开始后无法停止。堆栈进入 DELETE_IN_PROGRESS状态。

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

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

AWS DevOps

故障排除

事务解决方案

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

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

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

相关资源

GitHub 存储库

AWS参考文献

其他参考资料