はじめに

Azure Container Instances を Azure Powershell で操作しようとコマンド一覧を確認していたが、次の通り Get(参照), New(作成), Remove(削除)などしか用意されていない。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
PS Azure:\> gcm *Az*ContainerGroup*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Get-AzureRmContainerGroup
Alias           New-AzureRmContainerGroup
Alias           Remove-AzureRmContainerGroup
Cmdlet          Get-AzContainerGroup                               1.0.1      Az.ContainerInstance
Cmdlet          New-AzContainerGroup                               1.0.1      Az.ContainerInstance
Cmdlet          Remove-AzContainerGroup                            1.0.1      Az.ContainerInstance

Azure:/
PS Azure:\> gcm *Az*ContainerInstance*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Get-AzureRmContainerInstanceLog
Cmdlet          Get-AzContainerInstanceLog                         1.0.1      Az.ContainerInstance

REST API では、start、stop、restart も用意されているけど、Azure Powershell のコマンドとしては提供されていないみたい。

どうしようか工夫した結果、Invoke-AzResourceAction で Azure Powershell コマンドからの操作が可能だった。

コマンド例

Container Instance の起動

1
Invoke-AzResourceAction -ResourceGroupName <YourResourceGroup> -ResourceName <YourACI> -Action Start -ResourceType Microsoft.ContainerInstance/containerGroups -Force

Container Instance の停止

1
Invoke-AzResourceAction -ResourceGroupName <YourResourceGroup> -ResourceName <YourACI> -Action Stop -ResourceType Microsoft.ContainerInstance/containerGroups -Force

Container Instance の再起動

1
Invoke-AzResourceAction -ResourceGroupName <YourResourceGroup> -ResourceName <YourACI> -Action Restart -ResourceType Microsoft.ContainerInstance/containerGroups -Force

おわり

Invoke-AzResourceAction は便利。これで Automation 経由で ACI を Restart できる。