VS Code+Azure Functions+Python環境構築手順

##前提条件
- VS Code (https://code.visualstudio.com/)
- Node.js(10以降)+npm (https://nodejs.org/ja/)

**※ローカルで起動&動作確認までとしており、Azureへのデプロイまでは行わないのでAzureのアカウントは不要**

##環境構築
###Python(3.7.x)
以下から3.7.4の**64bit版**をダウンロードしてインストール
プロセスの終了時にDisable Path length limit(パスの長さの制限を無効にする)を実施
※32bit版だとローカルデバッグ時に異常が発生したので64bit版にする
https://www.python.org/downloads/
![PythonInstall.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/bd64ed2e-fbac-07ff-b007-29dab494eed8.png)

###VS Codeプラグインのインストール
- Python
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/26d697cf-f365-69c9-d783-c16cde916cdf.png)

- Azure Functions
![vscode_azure_functions.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/c62713b9-3198-f46f-ff81-f13480bec8c6.png)
インストール完了すると左のメニューにAzureのボタンが増え選択すると「FUNCTIONS」表示が増える
![vscode_azure_functions2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/37bc46ab-81aa-ae36-b2ca-b63eeed6cb17.png)

###Azure Functions Core Tools
VS Code上で「F1」押下⇒「Azure Functions: Install or Update Azure Functions Core Tools」と入力してEnter
※参照
https://docs.microsoft.com/ja-jp/azure/javascript/tutorial-vscode-serverless-node-01#install-the-azure-functions-core-tools
![vscode_core_tools1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/c87eced1-182c-4958-68ba-95d4a6a88d4e.png)
「Azure Functions v3」を選択してEnter
⇒インストール完了するまで待つ
![vscode_core_tools2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/963eb650-f686-9b33-3cde-48b30980cef8.png)
ターミナルから`func`と叩いてAzure Functionsマークetcが表示がされること
![vscode_func.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/9571ed84-c381-a834-2c29-ed612926b309.png)

##Azure Functionsプロジェクト(Python)の作成
以下を参考にAzure Functionsのプロジェクトを作成する
https://docs.microsoft.com/ja-jp/azure/python/tutorial-vs-code-serverless-python-02

1. フォルダを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/04d5d682-63a4-246e-9a4b-9b162635ff64.png)
2. 言語(Python)を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/7414ca0d-4a33-fb24-e095-bf1278d0286b.png)
3. Pythonのバージョン(3.7.4)を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/11046e25-e8f6-efba-c20f-7bbfdebde3d5.png)
4. トリガーを選択(APIにするので`HTTP trigger`を選択)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/053bc5de-8e68-66d7-d685-4a12bd07d16e.png)
5. 関数名を設定(関数名＝エンドポイントになる)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/2d4b837e-63c0-21dc-fbba-e8c3ccd81c26.png)
6. 承認レベル(Anonymous)を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/4d0ef476-da56-63f9-7bfd-a20ececf73ac.png)
7. プロジェクトの作成が完了すると1.で選択したフォルダにプロジェクトが作成され`__init__.py`が表示される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/ffd6e435-41ef-3b46-f2d3-58d3eb5c0701.png)



##起動＆動作確認
メニューの「デバッグ」⇒「デバッグの開始」などからFunctionsを起動
起動が完了するとURLが表示されるのでCtrl+クリックでブラウザからアクセス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/c8e284a5-76f1-f983-cb90-8c31e4aebd9d.png)

以下のように表示されAPIが実行されていることが確認できる
※クエリストリングorリクエストボディに`name`パラメータを設定することで`Hello {name}!`と表示されるようにデフォルトはなっている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133525/a8c5e268-62c7-2d4d-a37d-795fbea04e12.png)