5 votes

"Le paramètre LinuxFxVersion a une valeur invalide" lors de la création d'une ressource WebApp depuis Node.js

J'essaie de créer une simple WebApp à l'aide du Azure SDK for JS dans un environnement Node.js, mais je continue à obtenir la réponse :

{
  "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
}

J'ai essayé plusieurs ensembles de propriétés et d'environnements différents, sans succès. J'obtiens toujours cette erreur. Voici un extrait du code TypeScript que j'utilise :

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

Qu'est-ce que je fais de mal ?

7voto

imwenyz Points 171

Raison :

Votre plan de service d'application n'est pas Linux, c'est Windows. L'hôte Windows n'a pas le paramètre LinuxFxVersion.

Si nous créons un site sans configurer explicitement l'hôte comme Linux, il s'agira d'un plan de service hôte/serverFarm/app Windows par défaut. Utiliser {"kind" : "linux"} n'est pas suffisant.

Solution :

Définissez explicitement le plan de service de l'application dans Linux, et assurez-vous que {"reserved": true} pour le configurer comme un hôte Linux ( Voir la 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')]"
    }
}

1voto

George Chen Points 11105

J'ai testé vos données json, c'est dû à votre properties . Vos données json n'ont pas de propriété "properties". Si vous voulez créer une application web avec la propriété json, vérifiez le corps de la requête Rest API de cette application web. Applications Web - Créer ou mettre à jour .

Le format correct doit être comme l'exemple ci-dessous :

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

 }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X