Subscribe

UiPath Orchestrator

The UiPath Orchestrator Guide

Elastic robot orchestration

Overview


Elastic robot orchestration provides a way to automatically scale your unattended robots by allowing UiPath to scale and manage your robots for you, in the cloud. We manage them on your behalf, but they are still in your cloud, and you can choose how much of the robot orchestration process you want to delegate to us.

You can customize the auto-scaling strategy of robots through controls such as:

  • setting a maximum number of machines you want to allow us to create
  • choosing to optimize for speed, for cost, or choosing a balanced model
  • scheduling different settings for certain periods when, by exception, you need more or less speed.

Supported cloud providers

You can use one of the following cloud service providers to host your virtual machines (VMs) in the cloud for elastic robot orchestration:

  • Amazon Web Services (AWS)
  • Google Cloud Platform (GCP)
  • Microsoft Azure.

Machine provisioning options

You can:

  • Create a generalized virtual machine image that we use as a template to create machines on demand whenever a robot needs to run a job. You can set the limits for how many and when we create these machines and then leave it to us to get the job done.
  • Add your custom virtual machines to use when robots are needed to run processes.

Here is a summary of the differences between the two options:

Manually Create Machines

Automatically Create Machines

Create and delete machines

you create and delete the machines yourself

we can automatically create new machines when needed for better performance and delete any machines not in use

Machine scaling

limited to the number of machines provided

we create as many machines as needed to optimally handle the workload, within parameters you set

Virtual machine setup

set up multiple individual VMs

set up a single VM image

Install and set up UiPath Robot on each machine

automated

automated

Connect to Orchestrator

automated

automated

Run jobs

automated

automated

Start and stop VMs

automated

automated

VM customization

customize the VMs you use (domain-joined, machine size, machine name, network options, and more)

VM image must be configured as recommended:
For Azure | For AWS | For GCP

 

Sample configuration

The setup process in Orchestrator is similar for both cloud service providers. The main differences are in how you set up each provider and create the virtual machines.
Here is an overview of the process when using Microsoft Azure as the cloud services provider and a generalized virtual machine:

Requirements


To opt in for elastic robot orchestration, you need one of the following:

Azure requirements

You need a Microsoft Azure subscription for hosting your cloud robots.
You must set up Azure and get the following details from your Azure administrator to connect Orchestrator:

  • Client Id - the unique identifier for the client app registration
  • Client Secret Key - the password for the app registration
  • Subscription Id - the unique key for your organization's Azure subscription
  • Directory (tenant) Id - the unique key for the tenant you use within the Azure subscription.

See Setup in Azure for instructions.

AWS requirements

You need an Amazon Web Services (AWS) subscription with Amazon Elastic Compute Cloud (Amazon EC2) for hosting your cloud robots.
You must set up AWS and get an AWS access key from your AWS administrator, which consists of:

  • Access Key ID - the unique identifier for the Orchestrator connection
  • Secret Access Key - the password for this connection.

These are long-term credentials and, like a username and password, Orchestrator needs to use the access key ID and secret access key together to authenticate requests it makes to the AWS API.

See Setup in AWS for instructions.

GCP requirements

You need a Google Cloud Platform (GCP) subscription which includes Compute Engine for hosting your cloud robots.
You must set up a GCP project and get the following details from your GCP administrator to connect Orchestrator:

  • Client Id - the unique identifier for your GCP project
  • Private Key - the key for the GCP service account used for the integration.

See Setup in GCP for instructions.

Cloud provider setup


Setup in Azure

If your cloud service provider is Microsoft Azure, follow the instructions in this section to prepare to connect Orchestrator to Azure.

If you are not the Azure administrator, skip this section and instead reach out to your IT team to perform these steps and ask them to provide the details listed under Azure Requirements.

  1. Sign in to Azure with an administrator account.
  2. Navigate to App registrations and create an app registration for your Orchestrator instance.
  3. Copy the Application (Client) ID and Directory (Tenant) ID and save them for later use.
  1. Navigate to Certificates & secrets and create a client secret.
  2. Copy the Value of the client secret and save it for later use.
  1. Navigate to Resource groups and create a resource group for your Orchestrator.
  2. Copy the Subscription ID and save it for later use.
    If you already have a resource group that you want to use, open the overview for that resource group to get the Subscription ID.
  1. Navigate to Access Control (IAM), search for the name you gave to your Orchestrator app registration, and assign the Owner role to it.

Preparing a virtual machine image


📘

Note:

If you intend to use customized VMs instead of a template VM, skip this section and instead create the VMs you want to use for elastic robot orchestration.

Robots need a machine on which to run. As part of elastic robot orchestration, we can use your cloud-hosted virtual machine (VM) to create machines on demand for robots to run when needed.

When creating a virtual machine in Azure, Microsoft provides a set of images to build your virtual machines. They are images of different operating systems, such as Windows Server or Windows 10 Pro, that allow you to install the software you need to run automation jobs.

To capture a virtual machine image:

  1. Create a virtual machine in your Azure account and connect to it:
    a. Navigate to Virtual machines and create a virtual machine for the resource group you created earlier.
    You must use a Windows 10 or a Windows Server image which is v1 generation to provision the machine.
    b. Connect to your virtual machine.

  2. Create the local user and install the needed automation software:
    Do not join the virtual machine to a domain.
    a. Update Windows and reboot if necessary.
    b. Create a local user for the unattended robot (for example, uirobot). Assign the Administrator role to the local user, clear User must change password at next login, and select Password never expires.
    c. Grant remote access permissions on the virtual machine to the local user.
    d. Log out from the administrator account and log in as the local user.
    e. Install any supporting software you need for automations, such as Microsoft Excel or Google Chrome. You do not need to install UiPath software, we do that for you.
    f. Log out from the robot account and log in as an administrator.

    If you have installed the robot (optional), make sure you do not connect it to Orchestrator, otherwise you won't be able to use the Virtual Machine image.

  3. Create a generalized Virtual Machine image:
    a. Use the Sysprep tool to generalize the virtual machine.
    sysprep.exe disconnects your session halfway through.

  1. After the status of the virtual machine changes to Stopped, create a managed image of your virtual machine.
    Select the same resource group as for the virtual machine. Also, select No, capture only a managed image.

You now have a fully configured image that you can use to create new virtual machines for automation.

Setup in AWS

If you cloud services provider is Amazon Web Services (AWS), follow the instructions in this section to configure Amazon Elastic Compute Cloud (Amazon EC2) for elastic robot orchestration.

If you are not the AWS administrator, skip this section and instead reach out to your IT team to perform these steps and ask them to provide the details listed under AWS Requirements.

AWS best practices

Choosing the right AWS region: Ensure Amazon Virtual Private Cloud (Amazon VPC) is located in an appropriate region. We recommend you always pick the AWS region that is closest to the region where your Orchestrator instance is hosted when creating an elastic robot pool. Consider both latency and data transfer costs between Orchestrator, Robots, and the customer application when determining the location of the VPC. Contact the UiPath support team for details on how to allocate all your assets close to each other. Learn more about regions and instances in the Getting Started guide.

Capacity and cost optimization: Ensure Amazon Elastic Compute Cloud (Amazon EC2) resources are sized appropriately according to the deployment, customer requirements, and UiPath best practices. Amazon EC2 passes on to you the financial benefits of Amazon’s scale. See Amazon EC2 Instance Purchasing Options for a more detailed description of Amazon EC2 pricing. UiPath allows you to use your existing machines to take advantage of your optimized EC2 size configuration. We recommend downsizing or terminating idle or underutilized Amazon EC2 instances to optimize costs.

Calculate the costs: You can use the AWS pricing calculator to get an estimate of Total Cost of Ownership (TCO) for UiPath infrastructure deployed on AWS, by using the AWS label UiPath:Managed: true. The cost displayed in the calculator is for the infrastructure only. To get a more accurate TCO value, also consider the cost of UiPath licenses.

Generate an AWS access key

  1. Log in to the Amazon EC2 console as a user who has the following permissions:

Permission Category

Read / List

Update

Create

Delete

ec2:*

All

All

All

All

cloudformation:*

All

All

All

All

ssm:*

All

All

All

All

iam.*

iam:GetInstanceProfile
iam:ListInstanceProfiles
iam:GetRole
iam:ListRoles

iam:PutRole
iam:PutRolePolicy
iam:PassRole

iam:AddRoleToInstanceProfile
iam:CreateInstanceProfile
iam:CreateRole

iam:RemoveRoleFromInstanceProfile
iam:DeleteInstanceProfile
iam:DeleteRole
iam:DeleteRolePolicy

  1. Follow the Amazon documentation to create an access key.
  2. Save the access key ID and secret access key for later use.

Create an AWS EC2 image

📘

Note:

If you intend to use customized VMs instead of a template VM, skip this section and instead create the VMs you want to use for elastic robot orchestration.

  1. Log in to the Amazon EC2 console.

  2. Follow the Amazon documentation to create an AWS EC2 instance and perform the following as part of the process:
    a. For the AMI, choose a Windows 10 or a Windows Server image. If one does not exist, you must create it.
    b. While connected over RDP, install any Windows updates and reboot if necessary.
    c. After rebooting, install any supporting applications you need for automations, such as Microsoft Excel or Google Chrome. You do not need to install UiPath software, we do that for you.
    d. Delete the folder C:\Windows\Panther.
    e. Create a Windows local user for the robot, for example, robot and grant remote desktop rights to it.
    f. Press Ctrl + Alt + Delete and change the password for the robot user.
    g. Open the Ec2 Launch Settings and click Shutdown with Sysprep along the bottom.
    Sysprep is a Microsoft tool and you use it to create a generalized machine image for EC2.

  3. After Sysprep finishes, in the Amazon EC2 console, wait for the instance to shut down, then right-click and go to Image and templates > Create image:

You can see the new image in the Amazon EC2 console, on the left under Images > AMIs. You now have a fully configured image that you can use to create new virtual machines for automation.

Setup in GCP

If your cloud service provider is Google Cloud Platform (GCP), follow the instructions in this section to prepare to connect Orchestrator to GCP.
If you are not the GCP administrator, skip this section and instead reach out to your IT team to perform these steps and ask them to provide the details listed under GCP Requirements.

  1. Create a new project in GCP.
  2. Get the Project ID and save it for later use.
  3. Create a service account in your GCP project.
  4. Create a service account key in JSON and save the Private Key value for later use.

Creating virtual machines

If you want to use elastic robot orchestration and have us create machines for you on demand, you must create custom machine images in your GCP project.

The following instructions are a sample configuration for creating an image from a persistent disk, which is created from an existing Windows VM you have under your project.

  1. Log in to the Google Cloud Console.
  2. Click Compute Engine, and then under Virtual machines click VM instances.
  3. Click Create Instance at the top of the page.
  4. Fill in the details as follows:
    • For Name, Region, and Zone, you can specify whatever you want.
    • For Machine configuration, you can leave the default values.
    • Under Boot disk, click Change and then click Public Images.
    • For Operating system, select Windows.
    • Under Version select any of the Windows Server 2019 options.
    • You can accept the defaults for Boot disk type and Size (GB), or you can modify them according to your needs.
  5. Click Create.
  6. After boot disk is ready, you can click Create and GCP creates the virtual machine (VM) for you.
  7. To be able to use a custom image created from the VM, stop the VM you just created.
  8. At the side of the page, go to Storage and click Images.
  9. At the top of the page, click Create Image.
  10. Continue with these instructions to create a Windows image.

 

Setup in Orchestrator


Now that your cloud service provider is set up, you can proceed to connect Orchestrator to it and set up the elastic robots.

Configuring the cloud provider connection

In Orchestrator:

  1. Select Tenant on the left.
  2. Go to Settings > Cloud Connections.
  3. Click the Add Cloud Provider Subscription icon and select your provider:
  1. Type a name for the connection on the left.
  2. Add the cloud connection details applicable for the selected cloud provider:
  1. Click Save.

Your provider validates the information and then connects your Orchestrator.

Creating an elastic robot pool

To connect elastic robots to Orchestrator in the cloud, you need to provision a machine template of the type Elastic robot pool. This machine template is used when UiPath manages the robots and they run in your cloud.

When creating the elastic robot pool, you have two options:

  • You can allow us to automatically create machines when they're needed based on your generalized cloud VM. This automates the provisioning process for both machines and robots. Whenever a process needs to run, the required number of machines are created. In addition, when the elastic robot pool is first used, we install the required UiPath software to run the robot on the new machines.
  • (AWS or Azure only) You can add specific VMs that you want us to use for elastic robot orchestration. This is a limited version of elastic robot orchestration where we can start and stop the VM as needed to run processes and install the required UiPath software to run the robot, but we only use the specified machines. We cannot create new machines for you, nor can we remove machines that you created.

To create the elastic robot pool:

  1. Select Tenant in the top left and then go to Machines.
  2. Click Add machine in the top right of the grid and select Elastic robot pool:

The Add Elastic Robot Pool page opens:

  1. Enter a name and optionally add a description for the elastic robot pool.
  2. From the Cloud Connection list, select the cloud service provider connection you previously created in Orchestrator.
  3. For Azure, select the Resource Group used for the connection. For AWS, select the Region. For GCP, select the Zone.
  4. If you want us to use your VM template to automatically provision machines and robots on demand, keep the Automatically Create Machines toggle switched on.
    If you have custom VMs and want us to use those, switch the toggle off.
    If you cloud provider is GCP, this option is not available.
  5. From the Machine Image or Machine(s) list, select the VM template or the custom VMs you created for elastic robot orchestration, respectively.
    If you have switched off Automatically Create Machines, we only use the selected machines for elastic robot orchestration. When choosing this option, make sure that the machines you select are not used in any other elastic robot pool. In addition, for VMs hosted in AWS, the AWS EC2 Instance must have the AmazonSSMManagedInstanceCore instance profile attached. For instructions, see the AWS documentation.
    If it is switched on, we use the selected template to create the required number of machines when needed.
  6. Click Advanced Settings to show additional options.
  1. If you have switched off Automatically Create Machines, skip to step 13.
  2. From the Machine Size list, select one of the available options:
  • Small: dual-core processor, 8 GB RAM;
  • Medium: quad-core processor, 16 GB RAM;
  • Large: 8-core processor, 32 GB RAM.

The size of the machine depends on your cloud subscription. A small-sized machine is typically sufficient for day-to-day automations.

  1. For Maximum no. of Machines, select one of the following options:
  • Use the max available: when you want to allow the pool to scale up to the maximum available licenses for the tenant;
    Your cloud provider subscription plan may limit the maximum value.
  • Specify a limit: if you want to limit the maximum number of machines, select this option and type in the maximum number of machines we can create.
  1. From the Virtual Network list, you can select Automatic to allow your machine template to provision its own virtual network, or select the virtual network used for your cloud provider to use that virtual network and subnet, if defined.

  2. Under License Details enter the number of robot licenses needed per machine.
    We recommend selecting 1 for unattended licenses and 0 for non-production and test licenses. If you're running Test Sets, set 1 license for test execution slots.

  3. For Scheduling, select how you want us to prioritize machines allocation:

  • Cost Efficient: minimize the costs of running VMs at the expense of increased wait time for pending jobs needing to be scheduled
  • Balanced: balance between costs with running VMs and speeding up job scheduling
  • Fast: minimize the scheduling wait time of pending jobs at the expense of increased costs with running VMs.
    For each option above, we determine when it's time to allocate or deallocate a machine by considering several details, including the number of VMs that are running, the amount of time to wait for a machine to become available, the number of job items queued for a machine, and the cooldown time.
  • Advanced: manually set parameters to control how quickly new machines are allocated when needed:

Using an Advanced profile can incur additional costs since it can keep machines running longer, depending on the settings you use.

  1. Optionally, under Profile Scheduling, you can set a different profile than the one configured above to use only for a specified duration. For more information and instructions, see Configuring Profile Scheduling.
  2. Click Provision.

Your elastic robot pool is now set up and ready to be used in a modern folder to run jobs.

Configuring profile scheduling

You can use profile scheduling to set an elastic robot pool to use a different allocation profile than the one that is set, but only during a specified period of time.
For example, if you are typically experiencing a busier period only at the end of the month and your pool uses the Balanced profile, use Profile Scheduling to set the Fast profile during the final days of each month to allow for better performance when you need it.

To set profile scheduling for an elastic robot pool:

  1. Select Tenant in the top left and then go to Machines.
  2. At the right end of the row, click (More Actions) and select Edit Machine.
    The Edit Cloud Machine Pool page opens.
  3. Scroll down to the bottom of the page and, under Profile Scheduling, click Add Interval.
    A new line appears where you can set the interval and profile to use:
  1. In the Start Time column, either click the calendar icon to choose a date and time, or type in the values.
    This is the moment when the pool's set allocation profile ceases to be used and the one you select starts to be used instead.
  2. In the End Time column, set the day and time when the pool should switch back to its default allocation profile.
    The default profile, which is used anytime except during the specified interval, is mentioned under the Profile Scheduling heading.
  3. In the Profile column, select which allocation profile you want to use during the specified interval, instead of the default one.
  4. Optionally click Add Interval to schedule another interval or profile.
    You can choose the same or a different profile than the one set for the previous interval, but make sure the intervals do not overlap.
  5. Click Update to apply your changes.

The allocation profile for this pool now automatically changes to the selected profiles for the intervals you have defined, and then switches back to the default profile when outside of those intervals.

Configuring the modern folder and account roles

You need to add the elastic robot pool to a modern folder and grant automation permissions for the folder to the account that uses the virtual machine.

  1. Select a modern folder on the left and go to Settings > Machines.
  2. In the top right of the page, click Manage Machines in Folder.
  3. Select the elastic robot pool and click Update.
  4. Switch to the Manage Access page to see the available accounts.
  5. If the account you want to be running the automations, which should be the local user of the virtual machine, is not listed, add it and give it the Robot role.
    We recommend using a robot account, which is a type of account dedicated for running unattended automations.
  6. At the right of the account row, click the More Actions icon and select Edit. Make the following changes:
    a. For Robot Setup > Attended Robot, switch the toggle off. (Not applicable for robot accounts.)
    b. For Robot Setup > Unattended Robot, switch the toggle on. (Already enabled for robot accounts.)
    c. Select the Run foreground automations (Credentials required) checkbox. In the Domain\Username field, type .\username (for example, .\uirobot). In the Password field, type the account password.
    d. For Robot Settings, switch the toggle on for Login to console and select No to prevent the robot from timing out.

Your modern folder is now set up and the account is configured.

📘

Sub-folders

As opposed to regular machine templates, adding an elastic robot pool to a folder does not also add it to its sub-folders. If you want to use the machine in a sub-folder as well, you must perform the above steps for the sub-folder.

Now that setup in Orchestrator is also complete, you can start running automations in the cloud.

Test running an automation in the cloud

Test the elastic robot orchestration setup by running your first automation in the cloud.

Creating the first virtual machine can take some time - from 10 minutes to several hours (observed only in Azure). A virtual machine must be available to run a job before you can test-run an automation.

In Orchestrator:

  1. Make sure you have published a project or uploaded a package to Orchestrator.
  2. Go to Automations > Processes from your modern folder.
  3. Create a new process.
  4. Start the job.

Troubleshooting


Monitoring

You can monitor elastic robot orchestration to check for errors on the following pages:

  • You can see pending jobs that are waiting for an available machine on the Jobs page. If jobs are pending longer than expected, check your cloud service provider setup to make sure everything is configured properly.
  • In Azure, AWS, or GCP, you can see the virtual machines being created. You can also see the created virtual machines in Orchestrator, on the Monitoring page of the modern folder. When one becomes available, it is already connected to Orchestrator, so it runs the next pending job. If virtual machines are not being created, check the configuration of your machine template in your cloud service provider and the elastic robot pool in Orchestrator.
  • On the Alerts page in Orchestrator, you can set the State filter to All to see details about the Cloud Robots component and see as new robots are created or any errors. You must have the Administrator role directly assigned to your account (not inherited from groups) to see alerts, and to be added to the necessary folders.

Machine pool setup

With Automatically Create Machines switched off, if you find the machines you selected during setup are not shown when later editing the elastic robot pool, this may be caused by some machines being currently or previously allocated in your other elastic robot pools. You can use the same machine in only one elastic robot pool at a time.

To recover from this problem:

  1. Go to the Alerts page to find the message for machine import.
  2. Check the message to see if any machines got skipped. If so, continue with this process. Otherwise, check the configuration of the VM in your cloud service provider.
  3. Remove the machine from any other pools.
  4. Wait for the current task running on the machine to get terminated, usually less than 1 minute.
  5. Add the machine in the elastic robot pool.

Machine provisioning failed (AWS only)

If you are using AWS and machine provisioning failed with the error Machine provisioning failed and the details include status CREATE_FAILED for stack <name>, you can track stack events to determine the cause.
Errors can occur during CloudFormation stack creation, most frequently due to AWS permissions or quota.

To recover from this problem:

  1. Log in to the CloudFormation portal at https://console.aws.amazon.com/cloudformation/.
  2. Select Stacks.
  3. Select the stack indicated in the error details. It shows the CREATE_FAILED message:
  1. Check the Status reason column for information about the cause of the error.
  2. Resolve the cause.
  3. In Orchestrator, go to Tenant > Machines and edit the elastic robot pool to force creating a new version of the pool. For example, change the Size value, save, then edit it again to change back to the original value, and save.
    The CloudFormation stack cannot resume or retry by itself once it has failed. Making changes to the elastic robot pool triggers the process to start again.

Frequently asked questions


Will the machine images that I created be automatically updated with the latest Windows version and updates?

No. If you want to have the latest Windows version and updates, you need to rebuild your image in the cloud services provider (CSP).

Updated about a month ago


Elastic robot orchestration


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.