function - 从 Powershell 设置 Azure Function

标签 function azure powershell

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

它几乎可以工作,但无法创建 100% 工作的 Function App。 Azure 门户会发出大量错误和警告,例如缺少主机 key 。

替代方案:

  • ARM 模板。需要将哪些内容放入模板才能成功创建 Azure Function?我不知道。 Azure Portal生成的没有用。
  • Azure Portal:从 Azure DevOps 发布管道进行环境设置并不是非常方便的方法,但它将创建一个完全工作的 Function App。

问题是:如何从 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

关于function - 从 Powershell 设置 Azure Function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55492614/

相关文章:

javascript - 使用文本输入字段时出现 Javascript 中的 NaN

c++ - 需要帮助理解返回引用的函数

json - Azure 不接受 IoT 中心路由的 json 格式

powershell - 如何连接字符串并转换为大写

PowerShell New-Item 将创建脚本所在的目录,而不是指定的路径

Javascript 窗口对象,从 namespace 数组构建函数调用

c - 这些 C 函数签名与我以前看到的不同。这些是做什么的,为什么这样写?

Azure AD B2C : mixing built-in flows with custom policies and sharing encryption keys for JWTs

json - Azure ARM 模板 - 使用数组变量

PowerShell 随机打开关闭浏览器