VirtualMachine

VirtualMachine

Certified
Enterprise Edition

Task runner that executes a task natively on an Azure Virtual Machine

yaml
type: io.kestra.plugin.ee.azure.runner.VirtualMachine
yaml
id: azure_vm_python_task
namespace: company.team

tasks:
  - id: run_python
    type: io.kestra.plugin.scripts.python.Script
    taskRunner:
      type: io.kestra.plugin.ee.azure.runner.VirtualMachine
      tenantId: "{{ secret('AZURE_TENANT_ID') }}"
      clientId: "{{ secret('AZURE_CLIENT_ID') }}"
      clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
      subscriptionId: "{{ secret('AZURE_SUBSCRIPTION_ID') }}"
      resourceGroupName: kestra-runners
      region: eastus
      vmSize: Standard_DS2_v2
      subnetId: "/subscriptions/{{ secret('AZURE_SUBSCRIPTION_ID') }}/resourceGroups/kestra-runners/providers/Microsoft.Network/virtualNetworks/kestra-vnet/subnets/kestra-subnet"
    script: |
      print("Hello from Azure VM!")

yaml
id: azure_vm_reuse
namespace: company.team

tasks:
  - id: process
    type: io.kestra.plugin.scripts.shell.Commands
    taskRunner:
      type: io.kestra.plugin.ee.azure.runner.VirtualMachine
      tenantId: "{{ secret('AZURE_TENANT_ID') }}"
      clientId: "{{ secret('AZURE_CLIENT_ID') }}"
      clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
      subscriptionId: "{{ secret('AZURE_SUBSCRIPTION_ID') }}"
      resourceGroupName: kestra-runners
      vmName: my-existing-vm
      stopVm: false
      deleteVm: false
    commands:
      - echo "Processing on reused VM"

yaml
id: azure_vm_with_input_files
namespace: company.team

inputs:
  - id: file
    type: FILE

tasks:
  - id: shell
    type: io.kestra.plugin.scripts.shell.Commands
    inputFiles:
      data.txt: "{{ inputs.file }}"
    outputFiles:
      - out.txt
    taskRunner:
      type: io.kestra.plugin.ee.azure.runner.VirtualMachine
      tenantId: "{{ secret('AZURE_TENANT_ID') }}"
      clientId: "{{ secret('AZURE_CLIENT_ID') }}"
      clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
      subscriptionId: "{{ secret('AZURE_SUBSCRIPTION_ID') }}"
      resourceGroupName: kestra-runners
      region: eastus
      vmSize: Standard_DS1_v2
      subnetId: "/subscriptions/{{ secret('AZURE_SUBSCRIPTION_ID') }}/resourceGroups/kestra-runners/providers/Microsoft.Network/virtualNetworks/kestra-vnet/subnets/kestra-subnet"
      blobStorage:
        connectionString: "{{ secret('AZURE_CONNECTION_STRING') }}"
        containerName: kestra-vm-staging
    commands:
      - cp {{ workingDir }}/data.txt {{ workingDir }}/out.txt
Properties
Definitions
containerName*Requiredstring
connectionStringstring
endpointstring
sharedKeyAccountAccessKeystring
sharedKeyAccountNamestring
DefaultPT5S
Defaulttrue
DefaultCanonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2
DefaultPT5M
Defaulttrue
Defaulttrue
Defaultfalse
DefaultPT1H