🤖

VisualStudioCode + Python で Azure Functionsを作成する

2022/05/08に公開

Microsoft Azure の Azure Functions を ChromeBook にインストールしたVisualStudioCode(以下VSCode)を使って、Pythonで作成していきます。

この記事ではデフォルトで作成されるサンプルコードを動かすまでを紹介します。

この記事の前提条件

  • アクティブなサブスクリプションが含まれる Azureアカウント がある
  • ChromeBook で開発する
  • ChromeBook には VSCode がインストールされている

ChromeBook への VSCode のインストールは、次の記事を参考にしてください。
https://zenn.dev/gatabutsu/articles/82008b901c4f04

Azure Functions Core Tools のインストール

ローカルPCで Azure Functions を実行、開発するためのツール群である、Azure Functions Core Tools をインストールしていきます。

  1. アプリのメニューから Linuxアプリ → ターミナル を開く
  2. lsb_release のインストール
    マイクロソフト公式の手順でインストールしようとすると、ChromeBookには初期状態でlsb_releaseがインストールされていなくエラーになります。先にインストールしておきます。
sudo apt-get install lsb-release
  1. Microsoft パッケージ リポジトリの GPG キーをインストールする
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
  1. APT ソース リストを設定する
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs | cut -d'.' -f 1)/prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list'
  1. APT ソースを更新する
sudo apt-get update
  1. Core Tools をインストールする
sudo apt-get install azure-functions-core-tools-4

Python拡張機能のインストール

VSCode を起動し、Python拡張機能をインストールします。

サイドバーの拡張機能アイコンをクリックし、検索バーに「Python」と入力して、表示されたPython拡張機能をインストールします。

Azure Functions拡張機能のインストール

引き続き VSCode に、Azure Functions拡張機能をインストールします。

サイドバーの拡張機能アイコンをクリックし、検索バーに「azure functions」と入力して、表示されたAzure Functions拡張機能をインストールします。

Azure Functionsプロジェクトを作成する

ローカルPC上に、Azure Functionsのプロジェクトを作成していきます。

  1. サイドバーのAzureアイコンをクリックし、新しいプロジェクトの作成を選択する

  2. プロジェクトのワークスペースとなるディレクトリを選択する
    ディレクトリの選択ボックスが表示されるので「Browse...」を選び、 表示されたウインドウで新しいディレクトリを作成して、選択します。

  3. プロンプトで次の情報を入力する

  • 「Select a language」…Python
  • 「Select a Python interpreter …」…python3
  • 「Select a template for your project's…」…HTTP trigger
  • 「Provide a function name」…関数名を入力します。デフォルトのままで構いません。
  • 「承認レベル」…ここではAnonymousを選択します。この場合、すべてのユーザーが関数のエンドポイントを呼び出すことができます。
  • 「Select how you would like to open…」…Add to workspace

テンプレートから Http trigger の関数がPythonで作成されます。

ローカルPCで関数を実行する

ChromeBookローカル環境上で実行してから Azure にデプロイすることができます。

  1. VSCodeからプロジェクトをデバッグ実行する
    VSCodeのメニューから 実行 → デバッグの開始(F5) をクリックします。

    もちろん F5キー押下でも構いません。

  2. ローカルで実行されている関数のURLエンドポイントを確認する
    Azure Functions Core Tools からの出力がVSCodeのターミナルパネルに表示されます。

  3. VSCodeから関数を実行する
    Azure Functions のローカルプロジェクトを展開し、実行する関数を右クリックします。メニューが表示されるので「Execute Function Now...(今すぐ関数を実行)」をクリックします。
    リクエストパラメータの入力ボックスが表示されるので、内容を確認してエンターキーを押すと関数が実行されます。

    レスポンスはVSCodeに通知されます。

  4. ブラウザから関数を実行する
    ターミナルパネルに表示されたURLエンドポイントをブラウザに入力して実行します。テンプレートから作成された関数はGETでもパラメータを受け取れるので、適当なパラメータを入力して実行してみます。

  5. デバッグ実行を終了する
    ターミナルパネルにフォーカスがある状態でCtrl + Cキーを押すとCore Toolsが停止し、デバッガの接続が解除されます。

Azure にプロジェクトをデプロイして実行する

Azureにデプロイするには、Azureにサインインしておく必要があります。まだ、サインインしていない場合には、VSCodeのAzure Functions領域で「Sign in to Azure」をクリックしてサインインします。

  1. サイドバーのAzureアイコンをクリックし、関数のデプロイを選択する
  2. プロンプトで次の情報を入力する
  • 「Select the folder to deploy」…ローカルのプロジェクトフォルダを選択
  • 「Select Function App in Azure」…この時点ではまだAzure上に関数アプリを作成していないので「+Create new Functions App in Azure…」を選択
  • 「Enter a globally unique name for the function app」…URLパスに有効な名前を入力する。自分以外の関数アプリも含めたグローバルで一意になる関数アプリ名をつける必要がある。
  • 「Select a runtime stack」…ローカルで実行している Python のバージョンを選択。 ターミナルウインドウでpython3 --versionコマンドを使用してバージョンを確認する。
  • 「Select a location for new resources」…Azureのリージョンを選択。新潟ならJapan Eastでいい。
  1. Azure上にリソースが作成される
    プロンプトに全ての情報を入力すると、Azure上にリソースが作成されます。リソース作成の進捗はVSCodeに通知されます。また出力ウインドウにも出力されます。

ここまでの内容で作成すると、Azure上のリソースは次のように作成されます。

  • 「リソースグループ」…関数アプリ名として入力した名前から自動で作成される
  • 「ストレージアカウント」…関数アプリ名として入力した名前から自動で作成される
  • 「Application Insights」…関数アプリ名として入力した名前から自動で作成される
  • 「関数アプリのApp Serviceプラン」…従量課金プランとして作成される

    ローカルPCで関数を実行したときと同様に、VSCodeで Azure上の Azure Functions を展開し、実行する関数を右クリックします。メニューが表示されるので「Execute Function Now...(今すぐ関数を実行)」をクリックします。
    リクエストパラメータの入力ボックスが表示されるので、内容を確認してエンターキーを押すとAzure上で関数が実行されます。

関数アプリ名として入力した名前がURLエンドポイントのホスト部になる(ドメインは.azurewebsites.net)ので、ブラウザからも実行できます。

まとめ

本記事では ChromeBook にインストールした VSCode で Azure Functions を Python で作成する方法を紹介しました。Azure Functions を Python で作成できるようになることで、Azure上のデータをAzure上でExcelファイルに加工するなどといったことが簡単にできるようになります。

参考

Discussion