brew update && brew install azure-cli
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
ローカルのストレージエミュレータを使用する場合
https://docs.microsoft.com/ja-jp/azure/developer/azure-cli/azure-cli-configuration#cli-configuration-values-and-environment-variables
export AZURE_STORAGE_CONNECTION_STRING="UseDevelopmentStorage=true"
※以降の az storage コマンドはローカルのエミュレータに対して発行される。
az account list-locations -o table
# リソースグループの作成 echo az group create az group create \ --name $resourceGroup \ --location $region
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
az storage blob list -c コンテナ名
az storage blob upload -f ファイルPATH -c コンテナ名 -n オブジェクト名
az storage blob download -f 出力ファイルPATH -c コンテナ名 -n オブジェクト名
func init LocalFunctionProj --dotnet
func new --name HttpExample --template "HTTP trigger"
func start
# 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
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
az network nsg create \ --resource-group $resourceGroup \ --name $nsgName
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
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アクセスなしにする
az vm open-port \ --resource-group $resourceGroup \ --name $vmName \ --port 8086
az vm list-ip-addresses -o table