VMにアクセスする Azure Functions の開発手順を記載する。
# ストレージアカウント名は世界で唯一である必要がある 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 \ --ssh-dest-key-path `pwd`/ \ --output json \ --verbose # InfluxDB用のポートを開放しておく az vm open-port --resource-group $resourceGroup --name $vmName --port 8086
#TODO: Publicアクセスは踏み台サーバのみ許可する
VM上にInfluxDBをインストールする。
ここでは docker を使用する為、先に docker からインストールを行う。
https://docs.docker.com/engine/install/ubuntu/
VM作成時に生成されたSSH鍵を使用してVMに接続後、以下の作業を行う。
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
influxdb.conf
[meta] dir = "/var/lib/influxdb/meta" [data] dir = "/var/lib/influxdb/data" engine = "tsm1" wal-dir = "/var/lib/influxdb/wal" [http] enabled = true flux-enabled = true
docker-compose.yml
version: "3" services: influxdb: image: influxdb:1.8 hostname: influxdb_sample container_name: influxdb_sample volumes: - ./influxdb:/var/lib/influxdb - ./influxdb.conf:/etc/influxdb/influxdb.conf ports: - 8086:8086
起動
sudo docker-compose up -d
サンプルDB/ユーザ作成
docker exec -it influxdb_for_test bash # influx > create database sampledb > create user sample with password 'sample' WITH ALL PRIVILEGES
az functionapp deployment source config-zip -g リソースグループ -n 関数名 --src ZIPファイルPATH