#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>)