Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Azure Microsoft Python

Azure FunctionsでPythonのライブラリを追加する方法(依存関係解決)

投稿日:2022年4月26日 更新日:

 

<目次>

(1) Azure FunctionsでPythonのライブラリを追加する方法(依存関係解決)
 (1-1) requirement.txtの設定手順
 (1-2) 補足事項
 (1-3) 余談(読まなくてOK)

(1) Azure FunctionsでPythonのライブラリを追加する方法(依存関係解決)

本記事では、Azure Functions(言語:Python)にて、標準ライブラリ以外のライブラリを使う場合に、それらをAzure Function側でインストールする方法についてご紹介します。

 

(図100)ローカル開発環境では使えている追加ライブラリを、どのようにAzure上にデプロイするか??

これが未解決の状態だと、VS Code上のローカルでのデバッグは上手く行くが、それをAzure Functions上にデプロイして動かすとHTTP 500エラー等になってしまうかも知れません。
 
(図101)

(結論)
結論としては「requirements.txt」というTXTファイルに、Azureへのデプロイ時に必要なライブラリを追記する事で、後のインストールは自動で処理してくれます。

(1-1) requirement.txtの設定手順

・①VS Codeで作成したAzure Functions用のプロジェクトの中から「requirements.txt」を開きます。
 
この「requirements.txt」がAzureへのデプロイ時に必要なライブラリを追記するためのファイルです。デフォルトでは「azure-functions」のみが追記されていますが、この下に追加で必要なライブラリと、そのバージョンを追記する事で、Azureへのデプロイ時に自動でインストールを処理してくれます。
 
(図111①)
 
・②「requirements.txt」に必要なパッケージを追記
追記の際は下記のスタイルで記述します。
 
# 構文
[ライブラリ名(pipで指定する名前)]==[バージョン]
# 例
python-dotenv==0.19.2
requests==2.26.0
(図111②)
 
設定は以上です。後はAzureへデプロイすれば自動で処理しれくれます。
 
ちなみに、この後Azure Functionの単体テストをしたら500エラー(サーバエラー)が解消しました。
(図111③)

(1-2) 補足事項

・「requirements.txt」の配置場所について
基本的にAzure Functions拡張機能を通じて作成した新規プロジェクトについては心配ありませんが、もしも「requirements.txt」を手動で作成した場合などは、配置する階層に注意が必要です。具体的には(図121)のようにプロジェクト直下に配置します(host.json等と同じ階層)
 
(図121)

(構造)プロジェクトフォルダ配下
[プロジェクトフォルダ]
∟.funcignore
∟.gitignore
∟.venv
∟.vscode
∟host.json
∟list.txt
∟local.settings.json
∟requirements.txt
∟[関数名]
 ∟.env
 ∟__init__.py
 ∟function.json
 ∟sample.dat
 

(1-3) 余談(読まなくてOK)

●function.jsonについて

関数のトリガーからのデータ(HTTPリクエスト等)は、function.jsonファイルの「name」属性を用いて関数に引き渡されます。
 
(図131)
 
このfunction.jsonの定義を踏まえ、関数の処理が記述された「__init__.py」ファイルは次のように書かれます。
 
def main(req):
    user = req.params.get('user')
    return f'Hello, {user}!'
 
この「req.params.get(‘user’)」のような記述で、例えばリクエストのクエリパラメータ「user」を取得する事が出来る訳ですね。つまり「http://xxxxxx?user=XXXX」のXXXXの部分を、このような記述で取得できるという事になります。

Adsense審査用広告コード


Adsense審査用広告コード


-Azure, Microsoft, Python

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Excelで「接続しています」で開くのが遅い場合の解除方法

  <目次> (1) Excelで「接続しています」で開くのが遅い場合の解除方法  (1-1) 発生事象  (1-2) 原因  (1-3) 対処  (1-4) 参考:他のOffice製品の対 …

Outlookで予定を自動で転送する手順をご紹介

  <目次> (1) Outlookで予定を自動で転送する手順をご紹介  (1-1) 概要/イメージ  (1-2) 設定手順 (1) Outlookで予定を自動で転送する手順をご紹介 本記事 …

PythonでAPI呼び出す時のヘッダー、ボディの指定方法について

  <目次> (1) PythonでAPI呼び出す時のヘッダー、ボディの指定方法について  (1-1) 記事の概要  (1-2) ①「ヘッダー」の指定方法  (1-3) ②「ボディ」の指定方 …

タスクスケジューラで「オペレーターまたは管理者が要求を拒否しました」エラーの発生例と解決策例のご紹介(一例)

  <目次> (1) タスクスケジューラで「オペレーターまたは管理者が要求を拒否しました」エラーの発生例と解決策例のご紹介(一例)  (1-1) 事象・発生状況  (1-2) 原因(例)   …

Azure Storageとは?特徴や4種類のストレージの概要をご紹介

  <目次> (1) Azure Storageとは?特徴や4種類のストレージの概要をご紹介  (1-1) Azure Storageとは?4種類のストレージの概要   (1-1-1) BL …

  • English (United States)
  • 日本語
Top