Container Groups - Create Or Update

Create or update container groups.
Create or update container groups with specified configurations.

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

URI Parameters

Name In Required Type Description
subscriptionId
path True
  • string

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

resourceGroupName
path True
  • string

The name of the resource group.

containerGroupName
path True
  • string

The name of the container group.

api-version
query True
  • string

Client API version

Request Body

Name Required Type Description
identity

The identity of the container group, if configured.

location
  • string

The resource location.

properties.containers True

The containers within the container group.

properties.diagnostics

The diagnostic information for a container group.

properties.dnsConfig

The DNS config information for a container group.

properties.imageRegistryCredentials

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

properties.ipAddress

The IP address type of the container group.

properties.networkProfile

The network profile information for a container group.

properties.osType True

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

properties.restartPolicy

Restart policy for all containers within the container group.

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

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

OK

201 Created

Created - the container group is created.

Other Status Codes

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

PUT https://management.azure.com/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1?api-version=2018-10-01
{
  "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
  "location": "west us",
  "name": "demo1",
  "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"
        }
      }
    ]
  },
  "type": "Microsoft.ContainerInstance/containerGroups"
}

Sample Response

{
  "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"
}
{
  "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

AzureFileVolume

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

CloudError

An error response from the Batch service.

CloudErrorBody

An error response from the Batch 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
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

ContainerState

The container instance state.

DnsConfiguration

DNS configuration for the container group.

EmptyDirVolume

The empty directory volume.

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.

ImageRegistryCredential

Image registry credential.

InstanceView

The instance view of the container instance. 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.

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 Batch service.

Name Type Description
error

An error response from the Batch service.

CloudErrorBody

An error response from the Batch service.

Name Type Description
code
  • string

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

details

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

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

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

properties.livenessProbe

The liveness probe.

properties.ports

The exposed ports on the container instance.

properties.readinessProbe

The readiness probe.

properties.resources

The resource requirements of the container instance.

properties.volumeMounts

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

The identity of the container group, if configured.

location
  • string

The resource location.

name
  • string

The resource name.

properties.containers

The containers within the container group.

properties.diagnostics

The diagnostic information for a container group.

properties.dnsConfig

The DNS config information for a container group.

properties.imageRegistryCredentials

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

properties.instanceView

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

properties.ipAddress

The IP address type of the container group.

properties.networkProfile

The network profile information for a container group.

properties.osType

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

Restart policy for all containers within the container group.

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

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

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

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

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.

Name Type Description
Private
  • string
Public
  • string

ContainerGroupNetworkProfile

Container group network profile information.

Name Type Description
id
  • string

The identifier for a network profile.

ContainerGroupNetworkProtocol

The protocol associated with the port.

Name Type Description
TCP
  • string
UDP
  • string

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
Name Type Description
Always
  • string
Never
  • string
OnFailure
  • string

ContainerHttpGet

The container Http Get settings, for liveness or readiness probe

Name Type Description
path
  • string

The path to probe.

port
  • integer

The port number to probe.

scheme enum:
  • http
  • https

The scheme.

ContainerNetworkProtocol

The protocol associated with the port.

Name Type Description
TCP
  • string
UDP
  • string

ContainerPort

The port exposed on the container instance.

Name Type Description
port
  • integer

The port number exposed within the container group.

protocol

The protocol associated with the port.

ContainerProbe

The container probe, for liveness or readiness

Name Type Description
exec

The execution command to probe

failureThreshold
  • integer

The failure threshold.

httpGet

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.

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.

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

The SKU of the GPU resource.

GpuSku

The SKU of the GPU resource.

Name Type Description
K80
  • string
P100
  • string
V100
  • string

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.

InstanceView

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

Name Type Description
currentState

Current container instance state.

events

The events of the container instance.

previousState

Previous container instance state.

restartCount
  • integer

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

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

The list of ports exposed on the container group.

type

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

LogAnalytics

Container group log analytics information.

Name Type Description
logType

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

LogAnalyticsLogType

The log type to be used.

Name Type Description
ContainerInsights
  • string
ContainerInstanceLogs
  • string

OperatingSystemTypes

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

Name Type Description
Linux
  • string
Windows
  • string

Port

The port exposed on the container group.

Name Type Description
port
  • integer

The port number.

protocol

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.

Name Type Description
None
  • string
SystemAssigned
  • string
SystemAssigned, UserAssigned
  • string
UserAssigned
  • string

ResourceLimits

The resource limits.

Name Type Description
cpu
  • number

The CPU limit of this container instance.

gpu

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

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

The resource limits of this container instance.

requests

The resource requests of this container instance.

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

The Azure File volume.

emptyDir

The empty directory volume.

gitRepo

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.