Bicep - 如何将运行时堆栈配置到 Azure 应用服务(Bicep 版本 0.4)
Bicep - How to config Runtime Stack to Azure App Service (Bicep version 0.4)
我能够使用最新的 Bicep 版本 0.4 创建应用服务计划和应用服务。
resource myAppServicePlan 'Microsoft.Web/serverfarms@2021-01-01'={
name: AppServicePlanName
location: Location
sku: {
name: appServicePlanSkuName
tier: AppServiceTier
}
}
resource myAppService 'Microsoft.Web/sites@2021-01-01'={
name: AppServiceName
location: Location
properties:{
serverFarmId: myAppServicePlan.id
}
}
默认以ASP.NET4.8为框架版本。我想将框架用作 Netcore 3.1。有办法实现吗?
求推荐。
谢谢你。
普拉文
bicep 版本无关紧要,您可以通过为资源设置适当的参数来配置它。对于 Linux 计划,它是 LinuxFxVersion,与 ARM 相同,但书写语法不同。您需要查看应用服务文档以获取更多详细信息:https://docs.microsoft.com/en-us/azure/app-service/quickstart-arm-template
如果您无法确定需要在 bicep/ARM 中设置哪个 属性,一种选择是在浏览器中打开开发人员工具并检查 Portal 发送至 [=] 的 POST 消息46=] 或转到 resources.azure.com 并查看已配置(通过门户)资源的详细信息或使用导出模板功能。
编辑:
对于 Windows 应用服务计划,设置运行时堆栈有点复杂。
基本上,属性 netFrameworkVersion
可以是 v3.0
v4.0
或 v5.0
.
但是要获得核心似乎您需要使用 sites/config 中的元数据进行操作:
resource myAppService 'Microsoft.Web/sites@2021-01-01' = {
name: AppServiceName
location: Location
properties:{
serverFarmId: myAppServicePlan.id
}
resorce 'webConfig' config = {
name: 'web'
properties: {
metadata: [
{
name: 'CURRENT_STACK'
value: 'dotnetcore'
}
]
}
}
}
如果您希望返回 .NET 或切换到 .NET5(然后切换到 .NET6),您需要将值设置回 dotnet
并使用 netFrameworkVersion 属性.
似乎当 CURRENT_STACK
的值为 dotnetcore
时,netFrameworkVersion
会被忽略。
我从观察 PUT 请求中提取了这些知识——改变堆栈时门户做什么。我不知道设置不同堆栈的选项是什么,例如 Java 或 PHP。可能以类似的方式 - CURRENT_STACK + sites/config 'web'.
中的其他属性的某种组合
似乎没有这方面的文档。
顺便说一句 - 不要尝试在 Microsoft.Web/Sites
资源中使用它 - 请改用名称为 web
的 Microsoft.web/sites/config
。我有过虽然我可以在 siteConfig 属性 下使用这些选项的历史,但它不是由资源提供者 API.
设置的
我能够使用最新的 Bicep 版本 0.4 创建应用服务计划和应用服务。
resource myAppServicePlan 'Microsoft.Web/serverfarms@2021-01-01'={
name: AppServicePlanName
location: Location
sku: {
name: appServicePlanSkuName
tier: AppServiceTier
}
}
resource myAppService 'Microsoft.Web/sites@2021-01-01'={
name: AppServiceName
location: Location
properties:{
serverFarmId: myAppServicePlan.id
}
}
默认以ASP.NET4.8为框架版本。我想将框架用作 Netcore 3.1。有办法实现吗?
求推荐。 谢谢你。 普拉文
bicep 版本无关紧要,您可以通过为资源设置适当的参数来配置它。对于 Linux 计划,它是 LinuxFxVersion,与 ARM 相同,但书写语法不同。您需要查看应用服务文档以获取更多详细信息:https://docs.microsoft.com/en-us/azure/app-service/quickstart-arm-template
如果您无法确定需要在 bicep/ARM 中设置哪个 属性,一种选择是在浏览器中打开开发人员工具并检查 Portal 发送至 [=] 的 POST 消息46=] 或转到 resources.azure.com 并查看已配置(通过门户)资源的详细信息或使用导出模板功能。
编辑:
对于 Windows 应用服务计划,设置运行时堆栈有点复杂。
基本上,属性 netFrameworkVersion
可以是 v3.0
v4.0
或 v5.0
.
但是要获得核心似乎您需要使用 sites/config 中的元数据进行操作:
resource myAppService 'Microsoft.Web/sites@2021-01-01' = {
name: AppServiceName
location: Location
properties:{
serverFarmId: myAppServicePlan.id
}
resorce 'webConfig' config = {
name: 'web'
properties: {
metadata: [
{
name: 'CURRENT_STACK'
value: 'dotnetcore'
}
]
}
}
}
如果您希望返回 .NET 或切换到 .NET5(然后切换到 .NET6),您需要将值设置回 dotnet
并使用 netFrameworkVersion 属性.
似乎当 CURRENT_STACK
的值为 dotnetcore
时,netFrameworkVersion
会被忽略。
我从观察 PUT 请求中提取了这些知识——改变堆栈时门户做什么。我不知道设置不同堆栈的选项是什么,例如 Java 或 PHP。可能以类似的方式 - CURRENT_STACK + sites/config 'web'.
中的其他属性的某种组合似乎没有这方面的文档。
顺便说一句 - 不要尝试在 Microsoft.Web/Sites
资源中使用它 - 请改用名称为 web
的 Microsoft.web/sites/config
。我有过虽然我可以在 siteConfig 属性 下使用这些选项的历史,但它不是由资源提供者 API.