Azure Automation で Python 2 パッケージを管理する

この記事では、Azure サンドボックス環境と Hybrid Runbook Worker で実行されている Azure Automation で Python 2 パッケージをインポート、管理、使用する方法について説明します。 Runbook を簡略化するために、Python パッケージを使用して必要なモジュールをインポートすることができます。

Python 3 パッケージの管理については、「Azure Automation で Python 3 パッケージを管理する」をご覧ください。

パッケージをインポートする

  1. Automation アカウントの [共有リソース][Python パッケージ] を選択します。 [+ Python パッケージの追加] を選択します。

    Screenshot of the Python packages page shows Python packages in the left menu and Add a Python package highlighted.

  2. [Python パッケージの追加] ページで、アップロードするローカル パッケージを選択します。 パッケージは、 .whl または .tar.gz ファイルの場合があります。

  3. 名前を入力し、[ランタイム バージョン] として 2.x.x を選択します

  4. [インポート] を選択します。

    Screenshot shows the Add Python Package page with an uploaded tar.gz file selected.

パッケージがインポートされた後、そのパッケージはお使いの Automation アカウントの [Python パッケージ] ページに一覧表示されます。 パッケージを削除するには、パッケージを選択し、 [削除] を選択します。

Screenshot shows the Python 2.7.x packages page after a package has been imported.

依存関係があるパッケージをインポートする

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>

Screenshot shows the Overview page for import_py2package_from_pypi with the Start Runbook pane on the right side.

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 を作成する」を参照してください。