<目次>
Azure Functionのプランを変更する手順をご紹介(アップグレード、ダウングレード両方)
課題
対策(アップグレード):「動的」→「Premium Vx」
対策(ダウングレード):「Premium Vx」→「動的」
Azure Functionのプランを変更する手順をご紹介(アップグレード、ダウングレード両方)
課題
・Azure Functionのプラン(例:「動的」「Premium Vx」はUIからは変えられない)
(図111)

(補足)Azure Functionの料金プランについて
Azure Functionの料金プランは、使った分だけ課金される「動的」プランや、常にインスタンスを確保しておく「Premium」プランや、更に動的な拡張が出来る「Elastic Premium」等いくつかプランがあります。
例えば、「Premium」で余り使っていない場合は勿体ないので、コスト削減のため「Premium」→「動的」に変更したい場合なども有ると思いますが、その時に現状のAzure Portalの仕様上はUIからプラン変更が出来ないため、Azure Cloud Shell等のCUIから実行をする必要が発生します。
(注意点)Windowsの場合のみ対応(Linuxは不可)
(注意点)
これから紹介する手順が使えるのは、OSがWindowsの場合のみの様です・・。
Linuxの場合は以下のようなエラーが出てしまい、更新が出来ませんでした。
エラー
This feature currently supports windows to windows plan migrations. For other migrations, please redeploy.
(図112)

対策(アップグレード):「動的」→「Premium Vx」
「動的」→「Premium Vx」にアップグレードする場合の手順です。
●STEP1:サブスクリプションIDの確認
Azure Portalから該当のサブスクリプションを開いて、IDを確認。
(図121)

●STEP2:Azure Cloud Shellを起動&初期設定
・①Azure PortalからAzure Cloud Shellのボタン押下
(図122①)

↓
・②今回はPower Shellを選択
(図122②)

↓
・③初回の場合はストレージアカウントを作成
(図122③)

↓
・④Power Shellが起動
(図122④)

↓
・⑤対象サブスクリプションの設定
操作対象のサブスクリプションを下記コマンドで設定します。
(コマンド)
az account set --subscription "[ご自身のサブスクリプションID]"
(図122⑤)

●STEP3:各種変数の設定
この後のコマンドで使い回す値について、先に変数としてセットしておきます。
(’xxxxxxxx’はご自身の値に置き換えてください)
(例)
$resourceGroupName = 'rainbow-comtool-dev' $functionAppName = 'rainbow-function-test2' $planNameConsumption = 'ASP-rainbowcomtooldev-a11d' $planNamePremium = 'ASP-rainbowcomtooldev-a11d-premium' $locationName = 'Japan East'
(図123①)

●STEP4:App Service Planの新規作成
(コマンド)
az functionapp plan create --name $planNamePremium --resource-group $resourceGroupName --sku EP1 --location $locationName --min-instances 1 --max-burst 2
(図124)

●STEP5:既存のApp Service Planを新しいものに¬¬スイッチ
(コマンド)
az functionapp update --name $functionAppName --resource-group $resourceGroupName --plan $planNamePremium
(図125①)

<Before>動的
(図125②)

↓
<After>
(図125③)

対策(ダウングレード):「Premium Vx」→「動的」
「Premium Vx」→「動的」にダウングレードする場合の手順です。
●STEP1:サブスクリプションIDの確認
※省略(アップグレード時と同じ)
●STEP2:Azure Cloud Shellを起動&初期設定
※省略(アップグレード時と同じ)
●STEP3:各種変数の設定
※省略(アップグレード時と同じ)
●STEP4:既存のApp Service Planを古いものに¬¬スイッチ
(コマンド)
az functionapp update --name $functionAppName --resource-group $resourceGroupName --plan $planNameConsumption --force
(図131)

(参考)Premium→動的の注意(–force)
(参考)
※Premium→動的に変更する場合は「–force」オプションを付けないとエラーになります。
WARNING: Moving a functionapp from Premium to Consumption might result in loss of functionality and cause the app to break. Please ensure the functionapp is compatible with a Consumption plan and is not using any features only available in Premium. If you want to migrate a functionapp from a Premium to Consumption plan, please re-run this command with the '--force' flag.
(図132①)

↓
(図132②)

<Before>
(図125③)

↓
<After>
(図125②)

●STEP5:不要となったプレミアムのApp Serviceプランを削除
(コマンド)
az functionapp plan delete --resource-group $resourceGroupName --name $planNamePremium
(図133①)

<Before>
(図133②)

↓
<After>
(図133③)削除された
