{Azure Functions}クイックスタート: コマンド ラインから Azure に Python 関数を作成する

 


https://learn.microsoft.com/ja-jp/azure/azure-functions/create-first-function-cli-python?tabs=azure-cli%2Cbash&pivots=python-mode-configuration

https://qiita.com/forest1/items/9b7ccbd8fb2a0db6363a

https://zenn.dev/sakojun/articles/20210529-azure-functions


Consumption plan  -> 関数の実行中にのみ課金されます。既定のホスティング プランです。
Premium plan
Dedicated plan  -> App Service plan内で実行


前提
OS : macOS Monterey 12.6
Python : Python 3.8.1
Azure Functions Core Tools : 4.0.4895


-- 1. 前作業

az login --use-device-code
az account show

az version

az configure --list-defaults
az configure --defaults location=japaneast
az configure --list-defaults

az group create \
--name rg01 \
--location japaneast

az group list


-- 2. Azure Functions Core Tools のインストール

brew tap azure/functions
brew install azure-functions-core-tools@4

 

vim ~/.bash_profile

export FUNCTIONS_CORE_TOOLS_TELEMETRY_OPTOUT=1

. ~/.bash_profile

 

-- 3. 前提条件のチェック

func --version

az --version

python3 --version


-- 4. 仮想環境を作成してアクティブにする

mkdir test
cd test

python3 -m venv .venv
source .venv/bin/activate

-- 5. ローカル関数プロジェクトを作成する

func init LocalFunctionProj --python
cd LocalFunctionProj

func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"

func templates list -l python


-- 6. 関数をローカルで実行する

func start

別タームから実施
curl http://localhost:7071/api/HttpExample?name=test


-- 7. 関数用の関連 Azure リソースを作成する


-- 7.1 汎用ストレージ アカウントを作成

az storage account create \
--resource-group rg01 \
--name st123 \
--access-tier Hot \
--kind StorageV2 \
--sku Standard_LRS


az storage account list \
--resource-group rg01


-- 7.2 関数アプリを作成
※Application Insights無効

az functionapp list-consumption-locations
az functionapp list-runtimes


az functionapp create \
--resource-group rg01 \
--consumption-plan-location japaneast \
--runtime python \
--runtime-version 3.8 \
--functions-version 4 \
--name func123 \
--os-type linux \
--storage-account st123 \
--disable-app-insights true

 

 

az functionapp list \
--resource-group rg01

az appservice plan list \
--resource-group rg01

 


-- 8. Azure に関数プロジェクトをデプロイする

func azure functionapp publish func123

 

-- 9. 動作確認

curl -k https://func123.azurewebsites.net/api/httpexample

curl -k https://func123.azurewebsites.net/api/httpexample?name=test

 

-- 10. クリーンアップ

cd
deactivate
rm -rf test

az group list

az group delete \
--name rg01 \
--yes