Azure Automation で Python 2 パッケージを管理する
この記事では、Azure サンドボックス環境と Hybrid Runbook Worker で実行されている Azure Automation で Python 2 パッケージをインポート、管理、使用する方法について説明します。 Runbook を簡略化するために、Python パッケージを使用して必要なモジュールをインポートすることができます。
Python 3 パッケージの管理については、「Azure Automation で Python 3 パッケージを管理する」をご覧ください。
パッケージをインポートする
Automation アカウントの [共有リソース] で [Python パッケージ] を選択します。 [+ Python パッケージの追加] を選択します。
[Python パッケージの追加] ページで、アップロードするローカル パッケージを選択します。 パッケージは .whl ファイルにすることができます。
名前を入力し、[ランタイム バージョン] として 2.x.x を選択します
インポート を選択します。
パッケージがインポートされた後、そのパッケージはお使いの Automation アカウントの [Python パッケージ] ページに一覧表示されます。 パッケージを削除するには、パッケージを選択し、 [削除] を選択します。
依存関係があるパッケージをインポートする
Azure Automation ではインポート プロセス中に Python パッケージの依存関係が解決されません。 すべての依存関係を含め、パッケージをインポートする方法は 2 つあります。 Automation アカウントにパッケージをインポートするには、次の手順の 1 つのみを使用する必要があります。
手動ダウンロード
Python2.7 および pip がインストールされている Windows 64 ビット マシン上で、次のコマンドを実行してパッケージとそのすべての依存関係をダウンロードします。
C:\Python27\Scripts\pip2.7.exe download -d <output dir> <package name>
パッケージがダウンロードされたら、それらを Automation アカウントにインポートできます。
Runbook
Runbook を取得するには、Azure Automation GitHub 組織から Automation アカウント、pypi から Azure Automation アカウントに Python 2 パッケージをインポートします。 [実行設定] が [Azure] に設定されていることを確認し、パラメーターを指定して Runbook を開始します。 マネージド ID が Automation アカウントで有効になっていることを確認します。また、パッケージを正常にインポートするために、Automation 共同作成者アクセス権があることを確認します。 各パラメーターについて、次の一覧と画像に示すように、必ずスイッチを指定して開始してください。
- -s <subscriptionId>
- -g <resourceGroup>
- -a <automationAccount>
- -m <modulePackage>
Runbook では、ダウンロードするパッケージを指定できます。 たとえば、Azure
パラメーターを使用すると、すべての Azure モジュールとすべての依存関係 (約 105 個) がダウンロードされます。 Runbook が完了した後、Automation アカウントの [共有リソース] の下にある [Python パッケージ] を調べれば、パッケージが正しくインポートされていることを確認できます。
Runbook でパッケージを使用する
パッケージがインポートされたら、それを Runbook で使用できます。 Azure サブスクリプションのすべてのリソース グループを一覧表示するには、次のコードを追加します。
#!/usr/bin/env python
import os
import requests
# printing environment variables
endPoint = os.getenv('IDENTITY_ENDPOINT') + "?resource=https://management.azure.com/"
identityHeader = os.getenv('IDENTITY_HEADER')
payload = {}
headers = {
'X-IDENTITY-HEADER': identityHeader,
'Metadata': 'True'
}
response = requests.request("GET", endPoint, headers=headers, data=payload)
print response.text
Runbook をオフラインで開発してテストする
Python 2 Runbook をオフラインで開発してテストするには、GitHub の Azure Automation Python のエミュレートされた資産モジュールを使用できます。 このモジュールを使用すると、資格情報、変数、接続、および証明書などの共有リソースを参照できます。
次のステップ
Python Runbook を準備するには、「Python Runbook を作成する」を参照してください。