> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensor9.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Virtual Machines

> Virtual Machines APIs with Cloud Adapter.

This page describes how Virtual Machines maps to services in the environment where the application runs. Some profiles adapt origin API calls; others translate infrastructure or document target-native behavior.

## Supported environments

| Environment  | Mapping |
| ------------ | ------- |
| AWS          | API     |
| Google Cloud | API     |

API means the profile adapts origin API behavior. Infrastructure means the profile changes provisioned resources or documents a target-native alternative without promising an origin API endpoint. Check the operation and capability tables for the behavior your application depends on.

## How the targets compare

Each row compares a capability of Virtual Machines with its adaptation on each target.
A dash means this profile does not state the capability for that target.

### Cloud Adapter

| Capability   | Virtual Machines | AWS  | Google Cloud |
| ------------ | ---------------- | ---- | ------------ |
| API coverage | full             | high | high         |

## On AWS

### EC2 Instances

| Operation                                                    | Area      | Support        | Depth        | Notes                                                                                                                                                                                                                                           |
| ------------------------------------------------------------ | --------- | -------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| VM extensions                                                | Bootstrap | Partial        | Most usage   | The extension's work becomes instance startup configuration. The build requires acknowledgement of the rewritten extension set.                                                                                                                 |
| Instance metadata and managed identity token                 | Identity  | Adapter-served | Common       | For client libraries using Azure managed identity, the adapter serves the Azure metadata endpoint and identity token inside the VM.                                                                                                             |
| runCommand                                                   | Instances | Partial        | Most usage   | The target's guest-command service executes the script. The build identifies this change from the Azure control-plane API.                                                                                                                      |
| virtualMachines.createOrUpdate / delete / start / deallocate | Instances | Supported      | Common       | The VM becomes an EC2 instance with its network interface, operating-system disk, mapped capacity and a target-compatible image. Boot configuration is adapted for the target image. The build identifies unsupported size or image selections. |
| Dynamically allocated public address                         | Network   | Out of scope   | Full surface | Rejected at build time: this mapping cannot reproduce a public address allocated on VM start and released on stop. It does not substitute a static address.                                                                                     |
| Data disks                                                   | Storage   | Out of scope   | Most usage   | Data disks require attached block volumes. The build flags VMs that need them; it does not silently create a VM with only its operating-system disk.                                                                                            |

An Azure virtual machine becomes an EC2 instance with a network interface, operating-system disk, mapped capacity and a target-compatible image. Boot settings are adapted for that image. For Azure client libraries using managed identity, the adapter serves the Azure metadata endpoint and identity token inside the guest.

### Runtime management

Azure lifecycle requests go to the adapter, which saves the requested configuration and creates or updates the target VM and network resources. A request can be accepted while the cloud is still applying it. Poll the Azure-facing provisioning state before treating the machine as ready.

### Guest startup and identity

The guest must boot an appropriate target image, run its startup configuration, and reach the expected identity endpoint. The in-guest adapter answers Azure managed-identity requests, while the adaptations for the services the application calls handle those credentials. Check disk contents and application startup separately from VM creation.

### Compatibility differences

VM extensions become instance startup configuration, which requires acknowledgement at build time. Dynamically allocated public addresses are rejected because this mapping does not reproduce their allocation on start and release on stop.

## On Google Cloud

### Compute Engine

| Operation                                                    | Area      | Support        | Depth        | Notes                                                                                                                                                                                                                                         |
| ------------------------------------------------------------ | --------- | -------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| VM extensions                                                | Bootstrap | Partial        | Most usage   | The extension's work becomes instance startup configuration. The build requires acknowledgement of the rewritten extension set.                                                                                                               |
| Instance metadata and managed identity token                 | Identity  | Adapter-served | Common       | For client libraries using Azure managed identity, the adapter serves the Azure metadata endpoint and identity token inside the VM.                                                                                                           |
| runCommand                                                   | Instances | Partial        | Most usage   | The target's guest-command service executes the script. The build identifies this change from the Azure control-plane API.                                                                                                                    |
| virtualMachines.createOrUpdate / delete / start / deallocate | Instances | Supported      | Common       | The VM becomes a Compute Engine instance with its network interface, boot disk, mapped capacity and a target-compatible image. Boot configuration is adapted for the target image. The build identifies unsupported size or image selections. |
| Dynamically allocated public address                         | Network   | Out of scope   | Full surface | Rejected at build time: the mapping cannot allocate a public address on VM start and release it on stop. It does not substitute a reserved address.                                                                                           |
| Public address on the interface                              | Network   | Out of scope   | Most usage   | Public access requires an access configuration on the target interface. The build flags VMs that need a reachable public address.                                                                                                             |
| Data disks                                                   | Storage   | Out of scope   | Most usage   | Data disks require attached persistent disks. The build flags VMs that need them; it does not silently create a VM with only its boot disk.                                                                                                   |

An Azure virtual machine becomes a Compute Engine instance with a network interface and boot disk. The adapter serves the Azure metadata endpoint and managed-identity token inside the guest for client libraries that use them.

### Runtime management

Azure lifecycle requests go to the adapter, which saves the requested configuration and creates or updates the target VM and network resources. A request can be accepted while the cloud is still applying it. Poll the Azure-facing provisioning state before treating the machine as ready.

### Guest startup and identity

The guest must boot an appropriate target image, run its startup configuration, and reach the expected identity endpoint. The in-guest adapter answers Azure managed-identity requests, while the adaptations for the services the application calls handle those credentials. Check disk contents and application startup separately from VM creation.

### Compatibility differences

A reachable public address requires an access configuration on the target interface, which this mapping does not configure. The build flags VMs that need that public address. This exclusion concerns public addressing, not all outbound Internet traffic. Dynamically allocated addresses are also rejected: the mapping cannot reproduce their allocation on VM start and release on stop, and does not substitute a reserved address.

## Existing data and credentials

Selecting a backend does not copy existing data, credentials or access policies. Plan and verify migration separately before changing an application's endpoint. Do not assume an identifier, credential or encrypted value from the origin service works unchanged on the target.

## Configure, tune and debug

Start with [setup](/cloud-adapter/getting-started/overview) and [configuration](/cloud-adapter/configuration/overview). Use [tuning](/cloud-adapter/tuning/overview) to understand supported request tags, [debugging](/cloud-adapter/debugging/overview) to investigate a request, and [High Fidelity Cloud Emulators](/cloud-adapter/local-testing/overview) to validate a bounded reproduction.
