現在の見出し:5.2節:ローカル用の関数をAzure用の関数へ変更する
見出し一覧
- 5.2節:ローカル用の関数をAzure用の関数へ変更する
- - RAGの内容をAzure環境用に変更する
- - プロジェクトフォルダの構造をデプロイ用に変更する
【PR】『Python』を学べる企業・個人向けのプログラミングコース
RAGの内容をAzure環境用に変更する
requirements.txtを最新化する
まずはプロジェクトプロジェクトは特定の目的や目標を達成するために行われる一連の開発作業です。フォルダへ移動し、以下のコマンドを実行して仮想環境を有効化します。
【windowsの場合】
.venv\Scripts\activate
【Macの場合】
source .venv/bin/activate
実行後、ターミナルの冒頭に (venv) などが表示されれば成功です。
続いて、現在の仮想環境のパッケージ構成をrequirements.txtに書き出す作業を行います。以下のコマンドを実行してください。
pip freeze > requirements.txt
上記コマンドを実行したら、Cursorなどのテキストエディタエディタはコンピュータ上でソフトウェア開発に使用されるツールです。で「requirements.txt」ファイルを開いてみて下さい。以下のような内容になっていれば書き出しに成功しています。
annotated-types==0.7.0
anyio==4.9.0
azure-common==1.1.28
azure-core==1.35.0
azure-functions==1.23.0
azure-identity==1.23.1
azure-search-documents==11.5.3
certifi==2025.7.14
cffi==1.17.1
charset-normalizer==3.4.2
colorama==0.4.6
cryptography==45.0.5
distro==1.9.0
exceptiongroup==1.3.0
...
この作業を実行することで、現在の仮想環境で動作確認済みのライブラリライブラリは再利用可能なソフトウェアの部品です。とそのバージョンを「requirements.txt」に固定でき、他のPCやAzure Functions(本番)でも「pip install -r requirements.txtコマンドで同一環境を再現できます。
プロジェクトフォルダの構造をデプロイ用に変更する
Azure FunctionsのPython(特に公式推奨・スタンダードな構成)では、「__init__.pyファイル」が関数関数は一定の処理をまとめたプログラムの塊です。識別とエントリーポイントエントリーポイントはプログラムが開始される場所や関数です。として使われる設計になっているようです。
そこで、これまで作成した「」を「__init__.pyファイル」へ変更し「」というフォルダの直下で管理します。具体的な手順は以下の通りです。
- rag-function-appフォルダの中に「ragchat」というサブフォルダを作る
- ragchatフォルダの中に「__init__.py」ファイルを作成し、「function_app.py」ファイルの内容を入れ替える
- 同じくragchatフォルダの中に「function.json」ファイルを作成する
「function.json」ファイルには以下のコードを入力してください。
{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": ["post"],
"route": "ragchat"
},
{
"type": "http",
"direction": "out",
"name": "$return"
}
]
}
上記のコードはAzure Functionsに「どんなきっかけで関数を動かし、どうやって結果を返すか」を教えている設定です。具体的な流れは以下の通りです。
- クライアントクライアントはWebサイトやアプリケーションを利用するユーザーです。が
/api/ragchat
にPOSTPOSTはWebページからサーバーにデータを送信するためのHTTPメソッドの一つです。リクエストを送る - Azure Functionsがそのリクエストを受け取り、
req
という変数変数はデータを一時的に記憶しておく場所です。に入れて関数を呼び出す - 関数が処理を行い、結果を
return
で返す - その戻り値がHTTPレスポンスになってクライアントに届く
HTTPレスポンスとは、Webサーバーサーバーはインターネットやネットワーク上で、データやプログラムを提供するために使用されるコンピューターです。がクライアント(ブラウザブラウザはインターネット上の情報を閲覧するためのソフトウェアです。やアプリなど)からのHTTPリクエストに対して返す応答データのことです。
シンプルですが、これで「HTTPで呼び出せるAPIAPIは、他のソフトやアプリが自分の機能を利用できるようにするためのインターフェースです。の入り口と出口」が完成します。これでデプロイする環境は一通りそろったので、時節からGitGitはソースコードのバージョン管理を容易にする分散型のバージョン管理システムです。へプッシュする手順に進みます。