Pulumi azure-native 提供者:Azure WebApp:参数 LinuxFxVersion 的值无效
Pulumi azure-native provider: Azure WebApp: The parameter LinuxFxVersion has an invalid value
我使用带有 pulumi new azure-typescript
的 Pulumi CLI 创建了一个新的 Pulumi Typescript 程序,并创建了以下 index.ts
(基于新的 azure-native provider):
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure-native";
const resourceGroup = new azure.resources.ResourceGroup("rg-spring-boot", {location: "West Europe"});
const appServicePlan = new azure.web.AppServicePlan("sp-spring-boot", {
location: resourceGroup.location,
resourceGroupName: resourceGroup.name,
kind: "Linux",
sku: {
name: "B1",
tier: "Basic",
},
});
// Image https://hub.docker.com/r/jonashackt/spring-boot-vuejs
const imageName = "jonashackt/spring-boot-vuejs:latest";
const appServiceSpringBoot = new azure.web.WebApp("spring-boot-vuejs-azure", {
location: resourceGroup.location,
resourceGroupName: resourceGroup.name,
serverFarmId: appServicePlan.id,
siteConfig: {
linuxFxVersion: `DOCKER|${imageName}`,
},
httpsOnly: true,
});
现在运行一个pulumi up -y
我得到以下错误:
pulumi up -y
Previewing update (dev)
View Live: https://app.pulumi.com/jonashackt/spring-boot-pulumi-azure/dev/previews/3317933e-0051-4dfc-b436-8fe4184d11f5
Type Name Plan
pulumi:pulumi:Stack spring-boot-pulumi-azure-dev
+ └─ azure-native:web:WebApp spring-boot-vuejs-azure create
Outputs:
+ helloEndpoint: output<string>
Resources:
+ 1 to create
3 unchanged
Updating (dev)
View Live: https://app.pulumi.com/jonashackt/spring-boot-pulumi-azure/dev/updates/5
Type Name Status Info
pulumi:pulumi:Stack spring-boot-pulumi-azure-dev **failed** 1 error
+ └─ azure-native:web:WebApp spring-boot-vuejs-azure **creating failed** 1 error
Diagnostics:
azure-native:web:WebApp (spring-boot-vuejs-azure):
error: Code="BadRequest" Message="The parameter LinuxFxVersion has an invalid value." Details=[{"Message":"The parameter LinuxFxVersion has an invalid value."},{"Code":"BadRequest"},{"ErrorEntity":{"Code":"BadRequest","ExtendedCode":"01007","Message":"The parameter LinuxFxVersion has an invalid value.","MessageTemplate":"The parameter {0} has an invalid value.","Parameters":["LinuxFxVersion"]}}]
pulumi:pulumi:Stack (spring-boot-pulumi-azure-dev):
error: update failed
Resources:
3 unchanged
Duration: 22s
如本 so answer 所述,问题出在 azure.web.AppServicePlan
中的 Azure AppService 配置中。虽然我们设置的是kind: "Linux"
,但实际上是Windows机器
我们的 AppService 中缺少的参数是 reserved: true,
:
const appServicePlan = new azure.web.AppServicePlan("sp-spring-boot", {
location: resourceGroup.location,
resourceGroupName: resourceGroup.name,
kind: "Linux",
reserved: true,
sku: {
name: "B1",
tier: "Basic",
},
});
As the documentation states 没有将 reserved
参数设置为 true 我们得到了一台 Windows 机器。如果您使用不带参数的 kind: "Linux"
,这甚至会显示在 Azure 门户中:
我使用带有 pulumi new azure-typescript
的 Pulumi CLI 创建了一个新的 Pulumi Typescript 程序,并创建了以下 index.ts
(基于新的 azure-native provider):
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure-native";
const resourceGroup = new azure.resources.ResourceGroup("rg-spring-boot", {location: "West Europe"});
const appServicePlan = new azure.web.AppServicePlan("sp-spring-boot", {
location: resourceGroup.location,
resourceGroupName: resourceGroup.name,
kind: "Linux",
sku: {
name: "B1",
tier: "Basic",
},
});
// Image https://hub.docker.com/r/jonashackt/spring-boot-vuejs
const imageName = "jonashackt/spring-boot-vuejs:latest";
const appServiceSpringBoot = new azure.web.WebApp("spring-boot-vuejs-azure", {
location: resourceGroup.location,
resourceGroupName: resourceGroup.name,
serverFarmId: appServicePlan.id,
siteConfig: {
linuxFxVersion: `DOCKER|${imageName}`,
},
httpsOnly: true,
});
现在运行一个pulumi up -y
我得到以下错误:
pulumi up -y
Previewing update (dev)
View Live: https://app.pulumi.com/jonashackt/spring-boot-pulumi-azure/dev/previews/3317933e-0051-4dfc-b436-8fe4184d11f5
Type Name Plan
pulumi:pulumi:Stack spring-boot-pulumi-azure-dev
+ └─ azure-native:web:WebApp spring-boot-vuejs-azure create
Outputs:
+ helloEndpoint: output<string>
Resources:
+ 1 to create
3 unchanged
Updating (dev)
View Live: https://app.pulumi.com/jonashackt/spring-boot-pulumi-azure/dev/updates/5
Type Name Status Info
pulumi:pulumi:Stack spring-boot-pulumi-azure-dev **failed** 1 error
+ └─ azure-native:web:WebApp spring-boot-vuejs-azure **creating failed** 1 error
Diagnostics:
azure-native:web:WebApp (spring-boot-vuejs-azure):
error: Code="BadRequest" Message="The parameter LinuxFxVersion has an invalid value." Details=[{"Message":"The parameter LinuxFxVersion has an invalid value."},{"Code":"BadRequest"},{"ErrorEntity":{"Code":"BadRequest","ExtendedCode":"01007","Message":"The parameter LinuxFxVersion has an invalid value.","MessageTemplate":"The parameter {0} has an invalid value.","Parameters":["LinuxFxVersion"]}}]
pulumi:pulumi:Stack (spring-boot-pulumi-azure-dev):
error: update failed
Resources:
3 unchanged
Duration: 22s
如本 so answer 所述,问题出在 azure.web.AppServicePlan
中的 Azure AppService 配置中。虽然我们设置的是kind: "Linux"
,但实际上是Windows机器
我们的 AppService 中缺少的参数是 reserved: true,
:
const appServicePlan = new azure.web.AppServicePlan("sp-spring-boot", {
location: resourceGroup.location,
resourceGroupName: resourceGroup.name,
kind: "Linux",
reserved: true,
sku: {
name: "B1",
tier: "Basic",
},
});
As the documentation states 没有将 reserved
参数设置为 true 我们得到了一台 Windows 机器。如果您使用不带参数的 kind: "Linux"
,这甚至会显示在 Azure 门户中: