LoginSignup
12
5

More than 3 years have passed since last update.

「Microsoft Azure Functions」でのPython関数の作り方

Last updated at Posted at 2020-04-19

概要

Microsoft Azure Functions を使用し、Python関数作成の備忘録です。
今まで、クラウドはAWSばかり触っており、Azureに触れたのが初めてでした。
Azureの情報は公式にはありますが、他にはあまりない印象でした。
AWSの AWS Lambdaを使用した時のように簡単にはいかず、苦労したためまとめてみます。
間違った認識をしているのもあるかもしれません。
サンプルプログラムを一通り動作した段階となっています。
・ローカルのVisual Studio Codeにて環境を構築、ローカル環境で動作確認を実施後、
 Azureにデプロイするまでの流れです。

(1)前提条件

①Azureアカウント

サブスクリプションは無料試用版を使用しています。
https://azure.microsoft.com/ja-jp/free/
に従って、アカウントを作成、利用しました。

②環境

WindowsPC環境

(2)事前準備

①リソースグループ作成

Azureサインイン後、"Azure Portal"上で作業を行います。
"Azure Portal"上では、サブスクリプションという大きな枠組みがあり、
その中に"リソースグループ"を作成します。
プロジェクト単位の管理のようなイメージでしょうか?
AWSでいう"アカウントID"が"サブスクリプション"や"リソースグループ"に該当するのかなと思っています。
⇒Azure Portalのホームより「リソースグループ」を選択。
 無料試用版のサブスクリプション内に任意のリソースグループを作成します。

①"Azure Functions(関数アプリ)"作成

"Azure Portal"のホームより「関数アプリ」を選択。追加ボタンを押下します。
下記のように、
・リソースグループ
・関数アプリ名(一意の名前とする必要があります)
・ランタイムスタック
・バージョン
・地域
を選択します。
1.PNG
※無料試用版では、日本の東日本リージョンではPythonのサービスを使うことはできないようです。
(従量課金型は提供対象外だそうです)なので、Central USを指定します。
 他の項目は、デフォルト設定(オペレーティングシステムはLinux)し、作成ボタンを押下します。

②ローカル環境の準備

WindowsPC上にローカル環境(開発環境)を作成のため、以下インストールします。

Visual Studi Code(VS Code)インストール

https://azure.microsoft.com/ja-jp/products/visual-studio-code/
⇒ローカル開発環境はVS Codeとなります。

Pythonインストール

https://www.python.org/downloads/release
⇒"Azure Portalで"指定したものと同じ、python3.7系をインストールしておきます。

Azure CLIインストール

VS Codeの拡張機能"Azure Functions"をマーケットプレイスから取得

左のタブの上から5個目のアイコンを押下して取得します。
2.PNG
⇒取得後、左のタブにAzureのアイコンが追加されます。
 

Azure Functions Core Toolsインストール

・Node.jsをインストール
https://nodejs.org/en/download/
⇒npmも同梱されます。
・コマンドプロンプトやPowerShellで下記コマンドを実行し、Azure Functions Core Toolsを取得します。
npm install -g azure-functions-core-tools@3
※AzureにUploadする際、必要なコマンドとなります。
参考: https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-run-local?tabs=windows%2Ccsharp%2Cbash

権限変更

 PowerShellを起動し、以下のコマンドを実行します。
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
 ※VS Codeでローカル環境として実行するときの権限を変更します。
参考:http://totech.hateblo.jp/entry/2017/09/29/162411

(3)ローカル環境にPythonコードを作成

 VS Codeにアクセスし"Sign in to Azure..."をクリック。Azureにサインインしておきます。
 

①関数の作成

 下記、画面キャプチャの赤枠クリックすると、プロンプトが表示、
 ワークスペースを任意の場所を指定します。
3.PNG
 その後、新しいプロジェクト作成が進み、
 下記に従って、入力していきます。
 ・Select the folder containing your function project
  ⇒任意のPC上のフォルダを選びます。
 ・Select a language for your function project
  ⇒"Python"を選びます。
 ・Select a Python alias to create a virtual environment
  ⇒環境準備でインストールしたpythonのexeを選択します。(フルパス)
 ・Select a template for your project's first function
  ⇒"HTTP trigger" を選びます。
 ・Provide a function name
  ⇒関数名は"HTTPTest"とします。
 ・承認レベル
  ⇒今回、Anonymous を選択します。誰でもアクセスできる状態です。
 完了すると、下記のようなテスト関数が生成されます。
6.PNG

②ローカル環境でテストを行う。

 ・関数作成後、F5を押し、コンソールに関数の実行状況が表示されます。
7.PNG
  実行後、ローカル環境でのHTTPパスが表示されますので、ブラウザから実行し、動作確認を行います。
9.png

 下記のように、URIに記載したユーザ名がブラウザの応答結果として表示されれば、
 ローカル環境での確認は成功です。
10.png

Azureに関数をデプロイする

①関数アプリをデプロイ

下記の赤枠のアイコンを押下し、関数を”Azure”にデプロイしていきます。
11.PNG
アイコンを押下すると、コンソールが表示されるため、
下記に従って、入力していきます。
・ローカル環境の関数を実行しているパスを指定します。
・AzurePortalで作成した関数アプリ(TestSampleFunctions)を指定します。
・確認のポップアップが表示されるので、"Deploy"をクリックします。
12.PNG
 ⇒デプロイ完了まで、しばらく待ちます。

②"Azure Portal"で確認

・デプロイ完了後、"Azure Portal"にアクセスします。
13.PNG
 ⇒デプロイされていることが確認できます。

 ・"関数のURLの取得"をクリックし、Azureにデプロイした関数にアクセスするためのURLを取得します。
14.PNG
⇒取得したURLに対し、ローカル環境で確認したのと同様にアクセスし、
 結果が返ることが確認できればデプロイが成功です。
 
 今回、確認し内容は以上となります。今後、Azure Functionsから他のAzureのサービスに対しての
 処理を行えるよう、引き続き試していきたいと思います。

 ※なお、テスト確認後、不要なリソースは削除しておいてください。
  アクセス元の制限をしていないため、パスが分かれば誰でもアクセスできることになります。
  (上記で作成した関数アプリはすでに削除しておりますので、アクセスすることはできません。)

12
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
5