Jar*_*kia 7 powershell function azure
在 Azure CLI 中,有az functionapp,但在 Powershell AzureRM-library和Az-library 中都找不到这样的等价物。
使用原始 Azure 资源,我尝试过这样的事情来在我的应用程序服务计划中创建一个函数应用程序:
New-AzResource -ResourceType 'Microsoft.Web/Sites' `
-ResourceGroupName "MyRgName" `
-Location "westeurope" `
-ResourceName "MyFunctionName" `
-kind 'functionapp' `
-Properties @{ServerFarmId="abc-123"; alwaysOn=$True;} `
-ApiVersion '2018-11-01' `
-Force;
Run Code Online (Sandbox Code Playgroud)
它几乎可以工作,但不会创建 100% 工作的 Function App。Azure 门户会发出大量错误和警告,例如缺少主机密钥。
备择方案:
问题是:如何从 Powershell 脚本创建函数应用程序?
我正在做完全相同的事情来创建开发沙箱环境。
配置函数应用程序是 Az Powershell 模块中的一个空白,但它似乎是可能的。
我按照此处的步骤配置了我的函数应用程序https://clouddeveloper.space/2017/10/26/deploy-azure-function-using-powershell/但将其更改为使用现有应用程序服务计划而不是消费计划。
$AppServicePlan = "abc-123"
$AppInsightsKey = "your key here"
$ResourceGroup = "MyRgName"
$Location = "westeurope"
$FunctionAppName = "MyFunctionName"
$AzFunctionAppStorageAccountName = "MyFunctionAppStorageAccountName"
$FunctionAppSettings = @{
ServerFarmId="/subscriptions/<GUID>/resourceGroups/$ResourceGroup/providers/Microsoft.Web/serverfarms/$AppServicePlan";
alwaysOn=$True;
}
# Provision the function app service
New-AzResource -ResourceGroupName $ResourceGroup -Location $Location -ResourceName $FunctionAppName -ResourceType "microsoft.web/sites" -Kind "functionapp" -Properties $FunctionAppSettings -Force | Out-Null
$AzFunctionAppStorageAccountKey = Get-AzStorageAccountKey -ResourceGroupName $ResourceGroup -AccountName $AzFunctionAppStorageAccountName | Where-Object { $_.KeyName -eq "Key1" } | Select-Object Value
$AzFunctionAppStorageAccountConnectionString = "DefaultEndpointsProtocol=https;AccountName=$AzFunctionAppStorageAccountName;AccountKey=$($AzFunctionAppStorageAccountKey.Value)"
$AzFunctionAppSettings = @{
APPINSIGHTS_INSTRUMENTATIONKEY = $AppInsightsKey;
AzureWebJobsDashboard = $AzFunctionAppStorageAccountConnectionString;
AzureWebJobsStorage = $AzFunctionAppStorageAccountConnectionString;
FUNCTIONS_EXTENSION_VERSION = "~2";
FUNCTIONS_WORKER_RUNTIME = "dotnet";
}
# Set the correct application settings on the function app
Set-AzWebApp -Name $FunctionAppName -ResourceGroupName $ResourceGroup -AppSettings $AzFunctionAppSettings | Out-Null
Run Code Online (Sandbox Code Playgroud)