One way to disable/Enable Azure functions based on regions by using PowerShell command. I could able to achieve this by using Update-AzFunctionAppSetting
command wherein all the functions of the mentioned location will be Disabled - MSFT Docs.
Subscription Level
$GetFunction=Get-AzFunctionApp -SubscriptionId <SUBSCRIPTION_ID>
$ResourceGroup=($GetFunction).ResourceGroupName
$Name = ($GetFunction).Name
For($I=0;$I -lt $ResourceGroup.count;$I++) {
$FunctionDetails=Get-AzResource -ApiVersion "2022-03-01" -Name $Name[$I] -ResourceGroupName $ResourceGroup[$I] -ResourceType "Microsoft.Web/sites/functions"
if($GetFunction[$I].Location -eq "<YOUR_REQUIRED_LOCATION>"){
For($J=0;$J -lt $FunctionDetails.count;$J++){
$Function=$FunctionDetails[$J].ResourceName
$FunctionName=$Function.Substring(($Function.IndexOf("/")+1),($Function.length-($Function.IndexOf("/")+1)))
Update-AzFunctionAppSetting -Name $Name[$I] -ResourceGroupName $ResourceGroup[$I] -AppSetting @{"AzureWebJobs.$FunctionName.Disabled" = "true"}
}
}
}
FunctionApp Level
$FunctionDetails=Get-AzResource -ApiVersion "2022-03-01" -Name <FUNCTIONAPP_NAME> -ResourceGroupName <RESOURCE_GROUP> -ResourceType "Microsoft.Web/sites/functions"
$Function=$FunctionDetails.ResourceName | Where-Object {$FunctionDetails.Location -eq "<YOUR_REQUIRED_LOCATION>"}
For($I=0;$I -lt $Function.count;$I++) {
$FunctionExtract=$Function[$I]
$FunctionName=$FunctionExtract.Substring(($FunctionExtract.IndexOf("/")+1),($FunctionExtract.length-($FunctionExtract.IndexOf("/")+1)))
Update-AzFunctionAppSetting -Name <FUNCTIONAPP_NAME> -ResourceGroupName <RESOURCE_GROUP> -AppSetting @{"AzureWebJobs.$FunctionName[$I].Disabled" = "true"}
}
SAMPLE RESULTS:


Note: Replace -AppSetting @{"AzureWebJobs.$FunctionName.Disabled" = "false"}
to true to enable it again.