RemoteCompute class

Definition

Manages a remote compute target for use in Azure Machine Learning.

Azure Machine Learning supports using attaching a remote compute resource to your workspace. The remote resource can can be an Azure VM, a remote server in your organization, or on-premises, as long as the resource is accessible to Azure Machine Learning. For more information, see What are compute targets in Azure Machine Learning?

RemoteCompute(workspace, name)
Inheritance
RemoteCompute

Parameters

workspace
Workspace

The workspace object containing the RemoteCompute object to retrieve.

name
str

The name of the of the RemoteCompute object to retrieve.

Remarks

The following Azure regions do not support using the public IP address of a virtual machine or HDInsight cluster to attach the compute target.

  • US East

  • US West 2

  • US South Central

Instead, use the Azure Resource Manager ID of the VM or HDInsight cluster. The resource ID of the VM can be constructed using the subscription ID, resource group name, and VM name using the following string format: /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Compute/virtualMachines/<vm_name>.

The following example show how to create and attach a Data Science Virtual Machine (DSVM) as a compute target.


   from azureml.core.compute import ComputeTarget, RemoteCompute
   from azureml.core.compute_target import ComputeTargetException

   username = os.getenv('AZUREML_DSVM_USERNAME', default='<my_username>')
   address = os.getenv('AZUREML_DSVM_ADDRESS', default='<ip_address_or_fqdn>')

   compute_target_name = 'cpudsvm'
   # if you want to connect using SSH key instead of username/password you can provide parameters private_key_file and private_key_passphrase
   try:
       attached_dsvm_compute = RemoteCompute(workspace=ws, name=compute_target_name)
       print('found existing:', attached_dsvm_compute.name)
   except ComputeTargetException:
       attach_config = RemoteCompute.attach_configuration(address=address,
                                                          ssh_port=22,
                                                          username=username,
                                                          private_key_file='./.ssh/id_rsa')


   # Attaching a virtual machine using the public IP address of the VM is no longer supported.
   # Instead, use resourceId of the VM.
   # The resourceId of the VM can be constructed using the following string format:
   # /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Compute/virtualMachines/<vm_name>.
   # You can also use subscription_id, resource_group and vm_name without constructing resourceId.
       attach_config = RemoteCompute.attach_configuration(resource_id='<resource_id>',
                                                          ssh_port=22,
                                                          username='username',
                                                          private_key_file='./.ssh/id_rsa')
       attached_dsvm_compute.wait_for_completion(show_output=True)

Full sample is available from https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-on-remote-vm/train-on-remote-vm.ipynb

Methods

attach(workspace, name, username, address, ssh_port=22, password='', private_key_file='', private_key_passphrase='')

DEPRECATED. Use the attach_configuration method instead.

Associate an existing remote compute resource with the provided workspace.

attach_configuration(username, subscription_id=None, resource_group=None, vm_name=None, resource_id=None, address=None, ssh_port=22, password='', private_key_file='', private_key_passphrase='')

Create a configuration object for attaching a remote compute target.

Attaching a virtual machine using the public IP address of the VM is no longer supported. Instead, use the resourceId of the VM. The resourceId of the VM can be constructed using the following string format: "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/ providers/Microsoft.Compute/virtualMachines/<vm_name>".

You can also use subscription_id, resource_group and vm_name without constructing resourceId. For more information, see https://aka.ms/azureml-compute-vm.

delete()

Delete is not supported for a RemoteCompute object. Use detach() instead.

deserialize(workspace, object_dict)

Convert a JSON object into a RemoteCompute object.

detach()

Detach the RemoteCompute object from its associated workspace.

Underlying cloud objects are not deleted, only the association is removed.

get_credentials()

Retrieve the credentials for the RemoteCompute target.

refresh_state()

Perform an in-place update of the properties of the object.

This method updates the properties based on the current state of the corresponding cloud object. This is primarily used for manual polling of compute state.

serialize()

Convert this RemoteCompute object into a JSON serialized dictionary.

attach(workspace, name, username, address, ssh_port=22, password='', private_key_file='', private_key_passphrase='')

DEPRECATED. Use the attach_configuration method instead.

Associate an existing remote compute resource with the provided workspace.

attach(workspace, name, username, address, ssh_port=22, password='', private_key_file='', private_key_passphrase='')

Parameters

workspace
Workspace

The workspace object to associate the compute resource with.

name
str

The name to associate with the compute resource inside the provided workspace. Does not have to match the name of the compute resource to be attached.

username
str

The username needed to access the resource.

address
str

The address of the resource to be attached.

ssh_port
int
default value: 22

The exposed port for the resource. Defaults to 22.

password
str

The password needed to access the resource.

private_key_file
str

Path to a file containing the private key for the resource.

private_key_passphrase
str

Private key phrase needed to access the resource.

Returns

A RemoteCompute object representation of the compute object.

Return type

Exceptions

attach_configuration(username, subscription_id=None, resource_group=None, vm_name=None, resource_id=None, address=None, ssh_port=22, password='', private_key_file='', private_key_passphrase='')

Create a configuration object for attaching a remote compute target.

Attaching a virtual machine using the public IP address of the VM is no longer supported. Instead, use the resourceId of the VM. The resourceId of the VM can be constructed using the following string format: "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/ providers/Microsoft.Compute/virtualMachines/<vm_name>".

You can also use subscription_id, resource_group and vm_name without constructing resourceId. For more information, see https://aka.ms/azureml-compute-vm.

attach_configuration(username, subscription_id=None, resource_group=None, vm_name=None, resource_id=None, address=None, ssh_port=22, password='', private_key_file='', private_key_passphrase='')

Parameters

username
str

The username needed to access the resource.

subscription_id
str
default value: None

The Azure subscription ID in which virtual machine is located.

resource_group
str
default value: None

The name of the resource group in which virtual machine is located.

vm_name
str
default value: None

The virtual machine name.

resource_id
str
default value: None

The Azure Resource Manager (ARM) resource ID for the existing resource.

address
str
default value: None

The address for the existing resource.

ssh_port
int
default value: 22

The exposed port for the resource. Defaults to 22.

password
str

The password needed to access the resource.

private_key_file
str

Path to a file containing the private key for the resource.

private_key_passphrase
str

The private key phrase needed to access the resource.

Returns

A configuration object to be used when attaching a Compute object.

Return type

Exceptions

delete()

Delete is not supported for a RemoteCompute object. Use detach() instead.

delete()

Exceptions

deserialize(workspace, object_dict)

Convert a JSON object into a RemoteCompute object.

deserialize(workspace, object_dict)

Parameters

workspace
Workspace

The workspace object the RemoteCompute object is associated with.

object_dict
dict

A JSON object to convert to a RemoteCompute object.

Returns

The RemoteCompute representation of the provided JSON object.

Return type

Exceptions

Remarks

Raises a ComputeTargetException if the provided workspace is not the workspace the Compute is associated with.

detach()

Detach the RemoteCompute object from its associated workspace.

Underlying cloud objects are not deleted, only the association is removed.

detach()

Exceptions

get_credentials()

Retrieve the credentials for the RemoteCompute target.

get_credentials()

Returns

The credentials for the RemoteCompute target.

Return type

Exceptions

refresh_state()

Perform an in-place update of the properties of the object.

This method updates the properties based on the current state of the corresponding cloud object. This is primarily used for manual polling of compute state.

refresh_state()

Exceptions

serialize()

Convert this RemoteCompute object into a JSON serialized dictionary.

serialize()

Returns

The JSON representation of this RemoteCompute object.

Return type

Exceptions