Azure Automation で、python ファイルを実行したところパッケージ管理で少々つまずいたのでまとめておく。
Overall
Python のファイルを定期実行したいと思い、何か使えるソリューションはないか探したところ Azure Automation が利用できそうなことがわかった。しかし、以下のエラーが生じて実行することができなかった。
No module named ‘****’
モジュールが存在しないエラーだが、Azure Automation においては python パッケージを pip でインストールすることができず、Automation アカウントに対して別途インポートする必要があった。この方法に関して、公開情報がわかりにくかったので手順をまとめた。手動でパッケージをインポートすることもできるようだが、依存関係をまとめてインポートするには以下の方法がスムーズかと思う。
Azure Automation で Python 3 パッケージを管理する
注意: 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
手順
- マネージド ID の有効化
Automation アカウントのマネージド ID を有効化する。今回はシステム割り当て ID を利用した。
- Automation 共同管理者権限を付与
この ID に対して、Automation 共同管理者権限を付与する。
- python ファイルのダウンロード
以下の公開情報のリンクから py ファイルをダウンロードする。今回はシステム割り当て ID を利用するため、該当するリンクを参照している。
- Runbook の作成
Azure Automation の Runbook よりインポートすることで、Runbook を作成する。
- Runbook の実行
この Runbook を実行する際にパラメーターを指定する。
|
|
例
|
|
実行が成功すると、依存関係のあるパッケージもまとめてインポートされる。