简体   繁体   中英

Deploy Azure FunctionApp container to App Service as linuxFxVersion

I am working on deploy isolated Azure Function App container on Azure App Service.

I have created App Service Plan:

"sku": {
    "name": "P1v2",
    "tier": "PremiumV2",
    "size": "P1v2",
    "family": "Pv2",
    "capacity": 1
},
"kind": "linux",

with App Service:

"kind": "functionapp,linux,container"

I am using AzureWebAppContainer@1 task:

- task: AzureWebAppContainer@1
  displayName: Deploy to app service
  inputs:
    azureSubscription: ${{ parameters.azureSubscription }}
    appName: my-web-app0name
    imageName:  myacr01.azurecr.io/myregistryname:tag01
    configurationSettings: -linuxFxVersion DOCKER|myacr01.azurecr.io/myregistryname:tag01"
    appSettings: ${{ parameters.appSettings }}
    resourceGroupName: my-resource-group

When the task is executed by Azure DevOps yaml pipeline in the logs there is info that:

Trying to update App Service Configuration settings. Data: {"appCommandLine":null,"windowsFxVersion":"DOCKER|myacr01.azurecr.io/myregistryname:tag01"}

I do not understand why the windowsFxVersion is used instead of linuxFxVersion . On resource level in Azure Portal I can also see that I have windowsFxVersion set instead of linuxFxVersion.

Worth to mention that when you are clicking thought the wizard on Azure Portal with default Function App it is set as linuxFxVersion.

This is not a valid value:
-linuxFxVersion DOCKER|myacr01.azurecr.io/myregistryname:tag01"

Please find available values by executing :

az webapp list-runtimes --os linux

Result:

[
  "DOTNETCORE:7.0",
  "DOTNETCORE:6.0",
  "DOTNETCORE:3.1",
  "NODE:16-lts",
  "NODE:14-lts",
  "PYTHON:3.9",
  "PYTHON:3.8",
  "PYTHON:3.7",
  "PHP:8.0",
  "PHP:7.4",
  "RUBY:2.7",
  "JAVA:17-java17",
  "JAVA:11-java11",
  "JAVA:8-jre8",
  "JBOSSEAP:7-java11",
  "JBOSSEAP:7-java8",
  "TOMCAT:10.0-java17",
  "TOMCAT:10.0-java11",
  "TOMCAT:10.0-jre8",
  "TOMCAT:9.0-java17",
  "TOMCAT:9.0-java11",
  "TOMCAT:9.0-jre8",
  "TOMCAT:8.5-java11",
  "TOMCAT:8.5-jre8"
]

I'm using in my current project:

linuxFxVersion: 'DO.NET|6.0'
.netFrameworkVersion: 'v6.0'
kind: 'functionapp,linux'

Bicep for creating the app:


resource hostingPlan 'Microsoft.Web/serverfarms@2020-10-01' = {
  name: hostingPlanName
  location: location
  kind: 'linux'
  sku: {
    name: hostingPlanNameSkuName
  }
  properties: {
    reserved: true
  }
}

resource myApp 'Microsoft.Web/sites@2020-06-01' = {
  name: myAppName
  location: location
  kind: 'functionapp,linux'
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    httpsOnly: true
    serverFarmId: hostingPlan.id
    clientAffinityEnabled: true
    siteConfig: {
      alwaysOn: true
      netFrameworkVersion: 'v6.0'
      linuxFxVersion: 'DOTNET|6.0'
      ftpsState: 'Disabled'
      cors: {
        allowedOrigins: [
          '*'
        ]
      }
    }
  }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM