目次 †インストール †Azure CLI (Mac) †brew update && brew install azure-cli Azure Functions Core Tools (Mac) †v2.x brew tap azure/functions brew install azure-functions-core-tools v3.x brew tap azure/functions brew install azure-functions-core-tools@3 # if upgrading on a machine that has 2.x installed brew link --overwrite azure-functions-core-tools@3 ログイン †az login ローカルのストレージエミュレータを使用する場合 export AZURE_STORAGE_CONNECTION_STRING="UseDevelopmentStorage=true" ※以降の az storage コマンドはローカルのエミュレータに対して発行される。 サブスクリプションの設定 †以下を実施しておくと、以降の操作時に個別にサブスクリプションを指定する必要がなくなる。 az account set --subscription サブスプリプションID リージョン一覧の確認 †az account list-locations -o table リソースグループの作成 †# リソースグループの作成 echo az group create az group create \ --name $resourceGroup \ --location $region Blobストレージの操作 †ストレージアカウントの作成 †echo az storage account create az storage account create \ --name $storageAccountName \ --location $region \ --resource-group $resourceGroup \ --sku $storageSku ストレージアカウントの接続文字列の確認 †az storage account show-connection-string --name $storageAccountName ストレージコンテナの作成 †az storage container create \ --name $storageContainerName \ --resource-group $resourceGroup \ --account-name $storageAccountName ストレージコンテナの一覧 †az storage container list Blobオブジェクトの一覧 †az storage blob list -c コンテナ名 Blobオブジェクトのアップロード †az storage blob upload -f ファイルPATH -c コンテナ名 -n オブジェクト名 Blobオブジェクトのダウンロード †az storage blob download -f 出力ファイルPATH -c コンテナ名 -n オブジェクト名 Azure Function の開発 †ローカル関数プロジェクトの作成 †func init LocalFunctionProj --dotnet 関数をプロジェクトに追加 †func new --name HttpExample --template "HTTP trigger" 関数をローカルで実行する †func start Application Insights コンポーネント作成 †# Application Insights 拡張が利用できない場合は追加インストール x=`az monitor app-insights --help 2>&1` if [ "$?" != "0" ]; then az extension add -n application-insights fi az monitor app-insights component create \ --app $insightsName \ --location $insightsRegion \ --resource-group $resourceGroup \ --query-access Enabled \ --retention-time $insightsDays \ --subscription $subscriptionId プレミアムプランの作成 †az functionapp plan create \ --name $funcPlanName \ --resource-group $resourceGroup \ --location $region \ --sku $funcPlanSku 関数アプリの作成 †az functionapp create \ --name $funcAppName \ --storage-account $storageAccountName \ --plan $funcPlanName \ --resource-group $resourceGroup \ --functions-version $funcVersion \ --app-insights $insightsName 関数アプリのVNet統合(プレビュー版の為、将来で変更/削除される可能性あり) †az functionapp vnet-integration add \ --name $funcAppName \ --resource-group $resourceGroup \ --vnet $vnetName \ --subnet $funcSubnetName 関数アプリの設定/環境変数を確認する †az functionapp config appsettings list -n $funcAppName -g $resourceGroup -o table 関数アプリの環境変数を設定する †az functionapp config appsettings set \ --name $funcAppName \ --resource-group $resourceGroup \ --settings "ENV1=XXXX" "ENV2=YYYY" ※設定した値は環境変数として取得できる。 関数をデプロイする †az functionapp deployment source config-zip -g リソースグループ -n 関数名 --src ZIPファイルPATH Premium プランの関数アプリを作成する †仮想ネットワーク/仮想マシン †NSG(ネットワークセキュリティグループの)作成 †az network nsg create \ --resource-group $resourceGroup \ --name $nsgName NSGルールの追加 †az network nsg rule create \ --resource-group $resourceGroup \ --nsg-name $nsgName \ --name $nsgPubRuleName \ --access Allow \ --protocol Tcp \ --direction Inbound \ --priority 100 \ --source-address-prefix Internet \ --source-port-range "*" \ --destination-port-range $nsgPubInboundPort 仮想ネットワーク 及び サブネット作成 †az network vnet create \ --name $vnetName \ --resource-group $resourceGroup \ --address-prefixes $vnetPrefix \ --subnet-name $vmSubnetName \ --subnet-prefixes $vmSubnetPrefix \ --network-security-group $nsgName 利用できるVMイメージの確認 †az vm image list -o table 仮想マシンの作成 †az vm create \ --resource-group $resourceGroup \ --name $vmName \ --image $vmImage \ --generate-ssh-keys \ --subnet $vmSubnetName \ --vnet-name $vnetName \ --private-ip-address $vmIpAddress \ --admin-username $vmUser \ --output json \ --verbose # --public-ip-address "" # TODO: 踏み台以外はPublicアクセスなしにする VMのポート開放 †az vm open-port \ --resource-group $resourceGroup \ --name $vmName \ --port 8086 VMのIPアドレス確認 †az vm list-ip-addresses -o table |