#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]
#html(<div class="pl10">)

#myterm2(){{
# ストレージアカウント名は世界で唯一である必要がある
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>)

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS