Container Groups - Create Or Update

Create or update container groups with specified configurations.

HTTP
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}?api-version=2021-03-01

URI Parameters

Name In Required Type Description
containerGroupName
path True

string

The name of the container group.

resourceGroupName
path True

string

The name of the resource group.

subscriptionId
path True

string

Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.

api-version
query True

string

Client API version

Request Body

Name Required Type Description
properties.containers True

Container[]

The containers within the container group.

properties.osType True

OperatingSystemTypes

The operating system type required by the containers in the container group.

identity

ContainerGroupIdentity

The identity of the container group, if configured.

location

string

The resource location.

properties.diagnostics

ContainerGroupDiagnostics

The diagnostic information for a container group.

properties.dnsConfig

DnsConfiguration

The DNS config information for a container group.

properties.encryptionProperties

EncryptionProperties

The encryption properties for a container group.

properties.imageRegistryCredentials

ImageRegistryCredential[]

The image registry credentials by which the container group is created from.

properties.initContainers

InitContainerDefinition[]

The init containers for a container group.

properties.ipAddress

IpAddress

The IP address type of the container group.

properties.networkProfile

ContainerGroupNetworkProfile

The network profile information for a container group.

properties.restartPolicy

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
properties.sku

ContainerGroupSku

The SKU for a container group.

properties.volumes

Volume[]

The list of volumes that can be mounted by containers in this container group.

tags

object

The resource tags.

Responses

Name Type Description
200 OK

ContainerGroup

OK

201 Created

ContainerGroup

Created - the container group is created.

Other Status Codes

CloudError

Error response describing why the operation failed.

Security

azure_auth

Azure Active Directory OAuth2 Flow

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
user_impersonation Impersonate your user account

Examples

ContainerGroupsCreateOrUpdate

Sample request

HTTP
PUT https://management.azure.com/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1?api-version=2021-03-01

{
  "location": "west us",
  "identity": {
    "type": "SystemAssigned, UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name": {}
    }
  },
  "properties": {
    "containers": [
      {
        "name": "demo1",
        "properties": {
          "command": [],
          "environmentVariables": [],
          "image": "nginx",
          "ports": [
            {
              "port": 80
            }
          ],
          "resources": {
            "requests": {
              "cpu": 1,
              "memoryInGB": 1.5,
              "gpu": {
                "count": 1,
                "sku": "K80"
              }
            }
          },
          "volumeMounts": [
            {
              "name": "volume1",
              "mountPath": "/mnt/volume1",
              "readOnly": false
            },
            {
              "name": "volume2",
              "mountPath": "/mnt/volume2",
              "readOnly": false
            },
            {
              "name": "volume3",
              "mountPath": "/mnt/volume3",
              "readOnly": true
            }
          ]
        }
      }
    ],
    "diagnostics": {
      "logAnalytics": {
        "workspaceId": "workspaceid",
        "workspaceKey": "workspaceKey",
        "logType": "ContainerInsights",
        "metadata": {
          "test-key": "test-metadata-value"
        }
      }
    },
    "networkProfile": {
      "id": "test-network-profile-id"
    },
    "dnsConfig": {
      "nameServers": [
        "1.1.1.1"
      ],
      "searchDomains": "cluster.local svc.cluster.local",
      "options": "ndots:2"
    },
    "imageRegistryCredentials": [],
    "ipAddress": {
      "ports": [
        {
          "protocol": "TCP",
          "port": 80
        }
      ],
      "type": "Public",
      "dnsNameLabel": "dnsnamelabel1"
    },
    "osType": "Linux",
    "volumes": [
      {
        "name": "volume1",
        "azureFile": {
          "shareName": "shareName",
          "storageAccountName": "accountName",
          "storageAccountKey": "accountKey"
        }
      },
      {
        "name": "volume2",
        "emptyDir": {}
      },
      {
        "name": "volume3",
        "secret": {
          "secretKey1": "SecretValue1InBase64",
          "secretKey2": "SecretValue2InBase64"
        }
      }
    ]
  }
}

Sample response

JSON
{
  "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
  "location": "WestUs",
  "name": "demo1",
  "properties": {
    "containers": [
      {
        "name": "demo1",
        "properties": {
          "command": [],
          "environmentVariables": [],
          "image": "nginx",
          "ports": [
            {
              "port": 80
            }
          ],
          "resources": {
            "requests": {
              "cpu": 1,
              "memoryInGB": 1.5,
              "gpu": {
                "count": 1,
                "sku": "K80"
              }
            }
          },
          "volumeMounts": [
            {
              "name": "volume1",
              "mountPath": "/mnt/volume1",
              "readOnly": false
            },
            {
              "name": "volume2",
              "mountPath": "/mnt/volume2",
              "readOnly": false
            },
            {
              "name": "volume3",
              "mountPath": "/mnt/volume3",
              "readOnly": true
            }
          ]
        }
      }
    ],
    "diagnostics": {
      "logAnalytics": {
        "workspaceId": "workspaceid",
        "workspaceKey": ""
      }
    },
    "dnsConfig": {
      "nameServers": [
        "1.1.1.1"
      ],
      "searchDomains": "cluster.local svc.cluster.local",
      "options": "ndots:2"
    },
    "imageRegistryCredentials": [],
    "ipAddress": {
      "ip": "10.0.0.1",
      "ports": [
        {
          "port": 80,
          "protocol": "TCP"
        }
      ],
      "type": "Public",
      "dnsNameLabel": "dnsnamelabel1",
      "fqdn": "dnsnamelabel1.azure-container.io"
    },
    "osType": "Linux",
    "provisioningState": "Succeeded",
    "volumes": [
      {
        "name": "volume1",
        "azureFile": {
          "shareName": "shareName",
          "storageAccountName": "accountName"
        }
      },
      {
        "name": "volume2",
        "emptyDir": {}
      },
      {
        "name": "volume3",
        "secret": {}
      }
    ]
  },
  "type": "Microsoft.ContainerInstance/containerGroups"
}
JSON
{
  "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
  "location": "WestUs",
  "name": "demo1",
  "properties": {
    "containers": [
      {
        "name": "demo1",
        "properties": {
          "command": [],
          "environmentVariables": [],
          "image": "nginx",
          "ports": [
            {
              "port": 80
            }
          ],
          "resources": {
            "requests": {
              "cpu": 1,
              "memoryInGB": 1.5,
              "gpu": {
                "count": 1,
                "sku": "K80"
              }
            }
          },
          "volumeMounts": [
            {
              "name": "volume1",
              "mountPath": "/mnt/volume1",
              "readOnly": false
            },
            {
              "name": "volume2",
              "mountPath": "/mnt/volume2",
              "readOnly": false
            },
            {
              "name": "volume3",
              "mountPath": "/mnt/volume3",
              "readOnly": true
            }
          ]
        }
      }
    ],
    "dnsConfig": {
      "nameServers": [
        "1.1.1.1"
      ]
    },
    "imageRegistryCredentials": [],
    "ipAddress": {
      "ip": "10.0.0.1",
      "ports": [
        {
          "port": 80,
          "protocol": "TCP"
        }
      ],
      "type": "Public",
      "dnsNameLabel": "dnsnamelabel1",
      "fqdn": "dnsnamelabel1.azure-container.io"
    },
    "osType": "Linux",
    "provisioningState": "Succeeded",
    "volumes": [
      {
        "name": "volume1",
        "azureFile": {
          "shareName": "shareName",
          "storageAccountName": "accountName"
        }
      },
      {
        "name": "volume2",
        "emptyDir": {}
      },
      {
        "name": "volume3",
        "secret": {}
      }
    ]
  },
  "type": "Microsoft.ContainerInstance/containerGroups"
}

Definitions

Name Description
AzureFileVolume

The properties of the Azure File volume. Azure File shares are mounted as volumes.

CloudError

An error response from the Container Instance service.

CloudErrorBody

An error response from the Container Instance service.

Container

A container instance.

ContainerExec

The container execution command, for liveness or readiness probe

ContainerGroup

A container group.

ContainerGroupDiagnostics

Container group diagnostic information.

ContainerGroupIdentity

Identity for the container group.

ContainerGroupIpAddressType

Specifies if the IP is exposed to the public internet or private VNET.

ContainerGroupNetworkProfile

Container group network profile information.

ContainerGroupNetworkProtocol

The protocol associated with the port.

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
ContainerGroupSku

The container group SKU.

ContainerHttpGet

The container Http Get settings, for liveness or readiness probe

ContainerNetworkProtocol

The protocol associated with the port.

ContainerPort

The port exposed on the container instance.

ContainerProbe

The container probe, for liveness or readiness

ContainerProperties.InstanceView

The instance view of the container instance. Only valid in response.

ContainerState

The container instance state.

DnsConfiguration

DNS configuration for the container group.

EmptyDirVolume

The empty directory volume.

EncryptionProperties

The container group encryption properties.

EnvironmentVariable

The environment variable to set within the container instance.

Event

A container group or container instance event.

GitRepoVolume

Represents a volume that is populated with the contents of a git repository

GpuResource

The GPU resource.

GpuSku

The SKU of the GPU resource.

HttpHeader

The HTTP header

ImageRegistryCredential

Image registry credential.

InitContainerDefinition

The init container definition.

InitContainerPropertiesDefinition.InstanceView

The instance view of the init container. Only valid in response.

InstanceView

The instance view of the container group. Only valid in response.

IpAddress

IP address for the container group.

LogAnalytics

Container group log analytics information.

LogAnalyticsLogType

The log type to be used.

OperatingSystemTypes

The operating system type required by the containers in the container group.

Port

The port exposed on the container group.

ResourceIdentityType

The type of identity used for the container group. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the container group.

ResourceLimits

The resource limits.

ResourceRequests

The resource requests.

ResourceRequirements

The resource requirements.

Scheme

The scheme.

UserAssignedIdentities

The list of user identities associated with the container group. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Volume

The properties of the volume.

VolumeMount

The properties of the volume mount.

AzureFileVolume

The properties of the Azure File volume. Azure File shares are mounted as volumes.

Name Type Description
readOnly

boolean

The flag indicating whether the Azure File shared mounted as a volume is read-only.

shareName

string

The name of the Azure File share to be mounted as a volume.

storageAccountKey

string

The storage account access key used to access the Azure File share.

storageAccountName

string

The name of the storage account that contains the Azure File share.

CloudError

An error response from the Container Instance service.

Name Type Description
error

CloudErrorBody

An error response from the Container Instance service.

CloudErrorBody

An error response from the Container Instance service.

Name Type Description
code

string

An identifier for the error. Codes are invariant and are intended to be consumed programmatically.

details

CloudErrorBody[]

A list of additional details about the error.

message

string

A message describing the error, intended to be suitable for display in a user interface.

target

string

The target of the particular error. For example, the name of the property in error.

Container

A container instance.

Name Type Description
name

string

The user-provided name of the container instance.

properties.command

string[]

The commands to execute within the container instance in exec form.

properties.environmentVariables

EnvironmentVariable[]

The environment variables to set in the container instance.

properties.image

string

The name of the image used to create the container instance.

properties.instanceView

ContainerProperties.InstanceView

The instance view of the container instance. Only valid in response.

properties.livenessProbe

ContainerProbe

The liveness probe.

properties.ports

ContainerPort[]

The exposed ports on the container instance.

properties.readinessProbe

ContainerProbe

The readiness probe.

properties.resources

ResourceRequirements

The resource requirements of the container instance.

properties.volumeMounts

VolumeMount[]

The volume mounts available to the container instance.

ContainerExec

The container execution command, for liveness or readiness probe

Name Type Description
command

string[]

The commands to execute within the container.

ContainerGroup

A container group.

Name Type Description
id

string

The resource id.

identity

ContainerGroupIdentity

The identity of the container group, if configured.

location

string

The resource location.

name

string

The resource name.

properties.containers

Container[]

The containers within the container group.

properties.diagnostics

ContainerGroupDiagnostics

The diagnostic information for a container group.

properties.dnsConfig

DnsConfiguration

The DNS config information for a container group.

properties.encryptionProperties

EncryptionProperties

The encryption properties for a container group.

properties.imageRegistryCredentials

ImageRegistryCredential[]

The image registry credentials by which the container group is created from.

properties.initContainers

InitContainerDefinition[]

The init containers for a container group.

properties.instanceView

InstanceView

The instance view of the container group. Only valid in response.

properties.ipAddress

IpAddress

The IP address type of the container group.

properties.networkProfile

ContainerGroupNetworkProfile

The network profile information for a container group.

properties.osType

OperatingSystemTypes

The operating system type required by the containers in the container group.

properties.provisioningState

string

The provisioning state of the container group. This only appears in the response.

properties.restartPolicy

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
properties.sku

ContainerGroupSku

The SKU for a container group.

properties.volumes

Volume[]

The list of volumes that can be mounted by containers in this container group.

tags

object

The resource tags.

type

string

The resource type.

ContainerGroupDiagnostics

Container group diagnostic information.

Name Type Description
logAnalytics

LogAnalytics

Container group log analytics information.

ContainerGroupIdentity

Identity for the container group.

Name Type Description
principalId

string

The principal id of the container group identity. This property will only be provided for a system assigned identity.

tenantId

string

The tenant id associated with the container group. This property will only be provided for a system assigned identity.

type

ResourceIdentityType

The type of identity used for the container group. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the container group.

userAssignedIdentities

UserAssignedIdentities

The list of user identities associated with the container group. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

ContainerGroupIpAddressType

Specifies if the IP is exposed to the public internet or private VNET.

Value Description
Private
Public

ContainerGroupNetworkProfile

Container group network profile information.

Name Type Description
id

string

The identifier for a network profile.

ContainerGroupNetworkProtocol

The protocol associated with the port.

Value Description
TCP
UDP

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
Value Description
Always
Never
OnFailure

ContainerGroupSku

The container group SKU.

Value Description
Dedicated
Standard

ContainerHttpGet

The container Http Get settings, for liveness or readiness probe

Name Type Description
httpHeaders

HttpHeader[]

The HTTP headers.

path

string

The path to probe.

port

integer

The port number to probe.

scheme

Scheme

The scheme.

ContainerNetworkProtocol

The protocol associated with the port.

Value Description
TCP
UDP

ContainerPort

The port exposed on the container instance.

Name Type Description
port

integer

The port number exposed within the container group.

protocol

ContainerNetworkProtocol

The protocol associated with the port.

ContainerProbe

The container probe, for liveness or readiness

Name Type Description
exec

ContainerExec

The execution command to probe

failureThreshold

integer

The failure threshold.

httpGet

ContainerHttpGet

The Http Get settings to probe

initialDelaySeconds

integer

The initial delay seconds.

periodSeconds

integer

The period seconds.

successThreshold

integer

The success threshold.

timeoutSeconds

integer

The timeout seconds.

ContainerProperties.InstanceView

The instance view of the container instance. Only valid in response.

Name Type Description
currentState

ContainerState

Current container instance state.

events

Event[]

The events of the container instance.

previousState

ContainerState

Previous container instance state.

restartCount

integer

The number of times that the container instance has been restarted.

ContainerState

The container instance state.

Name Type Description
detailStatus

string

The human-readable status of the container instance state.

exitCode

integer

The container instance exit codes correspond to those from the docker run command.

finishTime

string

The date-time when the container instance state finished.

startTime

string

The date-time when the container instance state started.

state

string

The state of the container instance.

DnsConfiguration

DNS configuration for the container group.

Name Type Description
nameServers

string[]

The DNS servers for the container group.

options

string

The DNS options for the container group.

searchDomains

string

The DNS search domains for hostname lookup in the container group.

EmptyDirVolume

The empty directory volume.

EncryptionProperties

The container group encryption properties.

Name Type Description
keyName

string

The encryption key name.

keyVersion

string

The encryption key version.

vaultBaseUrl

string

The keyvault base url.

EnvironmentVariable

The environment variable to set within the container instance.

Name Type Description
name

string

The name of the environment variable.

secureValue

string

The value of the secure environment variable.

value

string

The value of the environment variable.

Event

A container group or container instance event.

Name Type Description
count

integer

The count of the event.

firstTimestamp

string

The date-time of the earliest logged event.

lastTimestamp

string

The date-time of the latest logged event.

message

string

The event message.

name

string

The event name.

type

string

The event type.

GitRepoVolume

Represents a volume that is populated with the contents of a git repository

Name Type Description
directory

string

Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.

repository

string

Repository URL

revision

string

Commit hash for the specified revision.

GpuResource

The GPU resource.

Name Type Description
count

integer

The count of the GPU resource.

sku

GpuSku

The SKU of the GPU resource.

GpuSku

The SKU of the GPU resource.

Value Description
K80
P100
V100

HttpHeader

The HTTP header

Name Type Description
name

string

The header name.

value

string

The header value.

ImageRegistryCredential

Image registry credential.

Name Type Description
password

string

The password for the private registry.

server

string

The Docker image registry server without a protocol such as "http" and "https".

username

string

The username for the private registry.

InitContainerDefinition

The init container definition.

Name Type Description
name

string

The name for the init container.

properties.command

string[]

The command to execute within the init container in exec form.

properties.environmentVariables

EnvironmentVariable[]

The environment variables to set in the init container.

properties.image

string

The image of the init container.

properties.instanceView

InitContainerPropertiesDefinition.InstanceView

The instance view of the init container. Only valid in response.

properties.volumeMounts

VolumeMount[]

The volume mounts available to the init container.

InitContainerPropertiesDefinition.InstanceView

The instance view of the init container. Only valid in response.

Name Type Description
currentState

ContainerState

The current state of the init container.

events

Event[]

The events of the init container.

previousState

ContainerState

The previous state of the init container.

restartCount

integer

The number of times that the init container has been restarted.

InstanceView

The instance view of the container group. Only valid in response.

Name Type Description
events

Event[]

The events of this container group.

state

string

The state of the container group. Only valid in response.

IpAddress

IP address for the container group.

Name Type Description
dnsNameLabel

string

The Dns name label for the IP.

fqdn

string

The FQDN for the IP.

ip

string

The IP exposed to the public internet.

ports

Port[]

The list of ports exposed on the container group.

type

ContainerGroupIpAddressType

Specifies if the IP is exposed to the public internet or private VNET.

LogAnalytics

Container group log analytics information.

Name Type Description
logType

LogAnalyticsLogType

The log type to be used.

metadata

object

Metadata for log analytics.

workspaceId

string

The workspace id for log analytics

workspaceKey

string

The workspace key for log analytics

workspaceResourceId

object

The workspace resource id for log analytics

LogAnalyticsLogType

The log type to be used.

Value Description
ContainerInsights
ContainerInstanceLogs

OperatingSystemTypes

The operating system type required by the containers in the container group.

Value Description
Linux
Windows

Port

The port exposed on the container group.

Name Type Description
port

integer

The port number.

protocol

ContainerGroupNetworkProtocol

The protocol associated with the port.

ResourceIdentityType

The type of identity used for the container group. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the container group.

Value Description
None
SystemAssigned
SystemAssigned, UserAssigned
UserAssigned

ResourceLimits

The resource limits.

Name Type Description
cpu

number

The CPU limit of this container instance.

gpu

GpuResource

The GPU limit of this container instance.

memoryInGB

number

The memory limit in GB of this container instance.

ResourceRequests

The resource requests.

Name Type Description
cpu

number

The CPU request of this container instance.

gpu

GpuResource

The GPU request of this container instance.

memoryInGB

number

The memory request in GB of this container instance.

ResourceRequirements

The resource requirements.

Name Type Description
limits

ResourceLimits

The resource limits of this container instance.

requests

ResourceRequests

The resource requests of this container instance.

Scheme

The scheme.

Value Description
http
https

UserAssignedIdentities

The list of user identities associated with the container group. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Name Type Description

Volume

The properties of the volume.

Name Type Description
azureFile

AzureFileVolume

The Azure File volume.

emptyDir

EmptyDirVolume

The empty directory volume.

gitRepo

GitRepoVolume

The git repo volume.

name

string

The name of the volume.

secret

object

The secret volume.

VolumeMount

The properties of the volume mount.

Name Type Description
mountPath

string

The path within the container where the volume should be mounted. Must not contain colon (:).

name

string

The name of the volume mount.

readOnly

boolean

The flag indicating whether the volume mount is read-only.