Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"The parameter LinuxFxVersion has an invalid value" when creating WebApp resource from Node.js

I am trying to create a simple WebApp using the Azure SDK for JS in a Node.js environment, but I keep getting the response:

{
  "Code":"BadRequest",
  "Message":"The parameter LinuxFxVersion has an invalid value.",
  "Target":null,
  "Details":[
    {"Message":"The parameter LinuxFxVersion has an invalid value."},
    {"Code":"BadRequest"},
    {"ErrorEntity": {
        "ExtendedCode":"01007",
        "MessageTemplate":"The parameter {0} has an invalid value.",
        "Parameters":["LinuxFxVersion"],
        "Code":"BadRequest",
        "Message":"The parameter LinuxFxVersion has an invalid value."}
    }],
  "Innererror":null
}

I've tried a variety of different sets of properties and environments with no success. I always get this error. Here's a snippet of the TypeScript code I am using:

    const wsmClient: WebSiteManagementClient...
    const webAppName: string...
    const servicePlanId: string...
    const rgName: string...
    const envelope: Site = {
      name: webAppName,
      location: 'westus2',
      kind: 'app,linux',
      serverFarmId: servicePlanId,
      siteConfig: {
        linuxFxVersion: 'JAVA|11-java11'
      }
    };
    const appResp = await wsmClient.webApps.createOrUpdate(
      rgName,
      webAppName,
      envelope
    );

What am I doing wrong?

like image 370
jgellin Avatar asked Oct 30 '19 19:10

jgellin


2 Answers

Reason:

Your app service plan is not Linux, actually it's Windows. Windows host doesn't have parameter LinuxFxVersion.

If we create a site without explicitly configuring the host as Linux, it will be a Windows host/serverFarm/app service plan by default. Using {"kind":"linux"} is not enough.

Solution:

Explicitly define the app service plan in Linux, and make sure {"reserved": true} to set it as a Linux host (See documentation)

{
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2019-08-01",
    "name": "[parameters('hostingPlanName')]",
    "location": "[parameters('location')]",
    "kind": "app,linux",
    "properties": {
        "reserved": true
    },
    "sku": {
        "Tier": "[parameters('hostingPlanSkuTier')]",
        "Name": "[parameters('hostingPlanSkuName')]"
    }
}
like image 77
imwenyz Avatar answered Oct 27 '22 20:10

imwenyz


I test your json data, it's caused your properties. Your json data has no "properties" property. If you want to create web with the json property check this web app Rest API request body:Web Apps - Create Or Update.

The correct format should be like the below sample:

  {
    "location": "CentralUS",
    "kind":"app,linux",
    "properties":{
          "serverFarmId":"your Resource ID",
        "siteConfig":{
            "linuxFxVersion":"JAVA|11-java11"
        }
    }

 }
like image 33
George Chen Avatar answered Oct 27 '22 20:10

George Chen