Azure Automation で python パッケージをインポートする方法

Azure Automation に依存関係を含た python パッケージのインポート方法

Azure Automation で、python ファイルを実行したところパッケージ管理で少々つまずいたのでまとめておく。

Overall

Python のファイルを定期実行したいと思い、何か使えるソリューションはないか探したところ Azure Automation が利用できそうなことがわかった。しかし、以下のエラーが生じて実行することができなかった。

No module named ‘****’

モジュールが存在しないエラーだが、Azure Automation においては python パッケージを pip でインストールすることができず、Automation アカウントに対して別途インポートする必要があった。この方法に関して、公開情報がわかりにくかったので手順をまとめた。手動でパッケージをインポートすることもできるようだが、依存関係をまとめてインポートするには以下の方法がスムーズかと思う。

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

注意: 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

手順

  1. マネージド ID の有効化
    Automation アカウントのマネージド ID を有効化する。今回はシステム割り当て ID を利用した。

managedid

  1. Automation 共同管理者権限を付与
    この ID に対して、Automation 共同管理者権限を付与する。

iam

  1. python ファイルのダウンロード
    以下の公開情報のリンクから py ファイルをダウンロードする。今回はシステム割り当て ID を利用するため、該当するリンクを参照している。

依存関係を含むパッケージのインポート

  1. Runbook の作成
    Azure Automation の Runbook よりインポートすることで、Runbook を作成する。

import

  1. Runbook の実行
    この Runbook を実行する際にパラメーターを指定する。
1
2
3
4
5
-s <subscription id>
-g <resource group>
-a <automation account name>>
-m <module>
-v <version>

1
2
3
4
5
-s xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
-g contosogroup
-a contosoaccount
-m pytz
-v 1.0.0

execute

実行が成功すると、依存関係のあるパッケージもまとめてインポートされる。

Licensed under CC BY-NC-SA 4.0
Hugo で構築されています。
テーマ StackJimmy によって設計されています。