Overview
Microsoft Azureを利用することになったので作ってみた。
WebUI操作は嫌だ。コマンド操作もあるがそのたびにターミナルを起動するのも面倒くさい。
というかCLIの利点が薄れまくる。
どうすれば良いか
- REST APIをつかう
- SDKを使ってアクセスする
- azure-cli を呼び出す
採択した方法は3番目。
というのも、1も2も利用するためにはPermissionを定義しなければならず
がっつりとAzureを使う時に使用するだけでユーザ追加、みたいな操作だけを実行するには
重たすぎるからだ。
Environment
- CentOS7
- python3.4
Install azure-cli
azure-cliを使う以上、azure-cliをインストールしなければならない。
python2.7 ベースで良いならば azure-cli公式ドキュメントの通り
yum repoを取得してyum install してしまえば良い。
せっかくだからpython3.4 等を使いたいという場合は、
python3系で呼び出せるようにインストールする必要がある為、
以下のような形で入れる。
# pip3 install azure-cli
How to call azure-cli from python script
az コマンドは az.cli.core から get_default_cli をimportすれば良いようだ。
従って、実行には以下のようにpython scriptを書く。
# -*- coding: utf-8 -*-
import logging
from azure.cli.core import get_default_cli
# Login to Azure
LOGIN = [
'login',
'-u', '<username>',
'-p', '<password>'
]
get_default_cli().invoke(LOGIN)
# Logout from Azure
LOGOUT = [
'logout',
]
get_default_cli().invoke(LOGOUT)
ものすごくやっつけだが、標準的な実行としてはこれで良い。
これでログイン、ログアウトが可能
get_default_cli が az
コマンドに相当するので
その後に繋がる引数をリストでinvokeとして渡してやれば良い。
なお、azはloginするとログイン情報を保持し続けてしまうので
必ずlogoutを最後に入れること。
後はReferenceを読んで実行可能なコマンドと
引数、オプションを参考に記載していけば良い。
くどいようだが、再びリンクを張っておく。
ここの Reference を展開すれば良い。