- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-07-27T22:57:28+00:00","","")
#author("2020-07-27T23:37:03+00:00","","")
#mynavi(Azureメモ)
#setlinebreak(on);
#TODO
* 概要 [#q629b743]
#html(<div class="pl10">)
VMにアクセスする Azure Functions の開発手順を記載する。
#html(</div>)
* 目次 [#uf1ea711]
#contents
- 関連
-- [[Azureメモ]]
- 参考
-- [[Premium プランの関数アプリを作成する:https://docs.microsoft.com/ja-jp/azure/azure-functions/scripts/functions-cli-create-premium-plan]]
-- [[Azure Functions の Premium プラン:https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-premium-plan]]
-- [[サンプルスクリプト:https://docs.microsoft.com/ja-jp/azure/azure-functions/scripts/functions-cli-create-premium-plan#sample-script]]
* サンプル関数の仕様 [#i6e368a7]
#html(<div class="pl10">)
- Blobストレージへのファイルアップロードをトリガーに起動する関数とする。
- アップロードするファイルは時系列データのCSVファイルとする。
- 関数はファイルの内容をそのままVMで稼働する InfluxDB に登録する。
#html(</div>)
* リソースの作成 [#kef97978]
* 必要なリソースの作成 [#kef97978]
#html(<div class="pl10">)
#myterm2(){{
SUFFIX=1
# ストレージアカウント名は世界で唯一である必要がある
SUFFIX=xxxxxxxx
# リージョン
region=japanwest
# リソースグループ名
# ( az group delete --name $resourceGroup で一括削除可能 )
resourceGroup=myResourceGroup$SUFFIX
# ストレージアカウント名
storageName=mystorageaccount$SUFFIX
storageSku=Standard_LRS
# 関数アプリ名
functionAppName=myFuncapp$SUFFIX
# 使用するFunctionsのバージョン
functionsVersion=2
# 関数アプリのプラン名
# ※VMへのアクセスにはVNet統合を使用するが、この機能はプレミアムプランでないと提供されない。
funcPlanName=mypremiumplan$SUFFIX
funcPlanSku=EP1
# Storageコンテナ名
storageContainer=mystrcontainer$SUFFIX
# 仮想マシン名
vmName=MyVM$SUFFIX
vmImage=UbuntuLTS
# リソースグループの作成
az group create \
--name $resourceGroup \
--location $region
# ストレージアカウントの作成
az storage account create \
--name $storageName \
--location $region \
--resource-group $resourceGroup \
--sku $storageSku
# プレミアムプランの作成
az functionapp plan create \
--name $funcPlanName \
--resource-group $resourceGroup \
--location $region \
--sku $funcPlanSku
# 関数アプリの作成
az functionapp create \
--name $functionAppName \
--storage-account $storageName \
--plan $funcPlanName \
--resource-group $resourceGroup \
--functions-version $functionsVersion
# Storageコンテナの作成
az storage container create \
--name $storageContainer \
--resource-group $resourceGroup \
--account-name $storageName
# 仮想マシンの作成
az vm create \
--resource-group $resourceGroup \
--name $vmName \
--image $vmImage \
--generate-ssh-keys \
--output json \
--verbose
}}
#html(</div>)
* 関数アプリの作成 [#x09d7bdd]
#html(<div class="pl10">)
#TODO
#html(</div>)
* 関数アプリのデプロイ [#v8360ab2]
#html(<div class="pl10">)
#TODO
#myterm2(){{
az functionapp deployment source config-zip -g リソースグループ -n 関数名 --src ZIPファイルPATH
}}
#html(</div>)