目次

インストール

Azure CLI (Mac)

brew update && brew install azure-cli

Azure Functions Core Tools (Mac)

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-run-local?tabs=macos%2Ccsharp%2Cbash

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

参考
Azure Functions の zip デプロイ
Azure Functions のデプロイ テクノロジ

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

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-12 (日) 16:38:12 (26d)