AzureFunctionApp@1: tarea Azure Functions v1

Actualice una aplicación de funciones con .NET, Python, JavaScript, PowerShell, aplicaciones web basadas en Java.

Implemente una función de Azure para Linux o Windows.

Syntax

# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. Azure Functions App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOTNET|6.0' | 'DOTNET-ISOLATED|6.0' | 'DOTNET-ISOLATED|7.0' | 'DOTNET-ISOLATED|8.0' | 'JAVA|8' | 'JAVA|11' | 'JAVA|17' | 'JAVA|21' | 'NODE|14' | 'NODE|16' | 'NODE|18' | 'NODE|20' | 'PYTHON|3.8' | 'PYTHON|3.9' | 'PYTHON|3.10' | 'PYTHON|3.11'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. Azure Functions App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOTNET|2.2' | 'DOTNET|3.1' | 'DOTNET|6.0' | 'JAVA|8' | 'JAVA|11' | 'NODE|8' | 'NODE|10' | 'NODE|12' | 'NODE|14' | 'NODE|16' | 'PYTHON|3.6' | 'PYTHON|3.7' | 'PYTHON|3.8' | 'PYTHON|3.9'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. Azure Functions App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOTNET|2.2' | 'DOTNET|3.1' | 'JAVA|8' | 'JAVA|11' | 'NODE|8' | 'NODE|10' | 'NODE|12' | 'NODE|14' | 'PYTHON|3.6' | 'PYTHON|3.7' | 'PYTHON|3.8'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOTNET|2.2' | 'DOTNET|3.1' | 'JAVA|8' | 'JAVA|11' | 'NODE|8' | 'NODE|10' | 'NODE|12' | 'NODE|14' | 'PYTHON|3.6' | 'PYTHON|3.7' | 'PYTHON|3.8'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0' | 'DOCKER|microsoft/azure-functions-node8:2.0'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Deploy an Azure Function for Linux or Windows.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0' | 'DOCKER|microsoft/azure-functions-node8:2.0'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.

Entradas

azureSubscription - Conexión de Azure Resource Manager
string. Obligatorio.

Selecciona la suscripción de Azure Resource Manager para la implementación.


appType - Tipo de aplicación
string. Obligatorio. Valores permitidos: functionApp (Function App en Windows), functionAppLinux (Function App en Linux).


appName - nombre de la aplicación de Azure Functions
string. Obligatorio.

Escribe o selecciona el nombre de una aplicación de Azure Functions existente. Las aplicaciones de funciones enumeradas se basarán en el tipo de aplicación seleccionado.


appName - Nombre de la aplicación
string. Obligatorio.

Escribe o selecciona el nombre de una aplicación de Azure Functions existente. Las aplicaciones de funciones enumeradas se basarán en el tipo de aplicación seleccionado.


deployToSlotOrASE - Implementación en ranura o App Service Environment
boolean. Valor predeterminado: false.

Se implementa en una ranura de implementación existente o en un entorno de Azure App Service. Para ambos destinos, la tarea necesita un nombre de grupo de recursos.

Si el destino de implementación es una ranura, el valor predeterminado será el espacio de producción . También se puede proporcionar cualquier otro nombre a la ranura existente.

Si el destino de implementación es un entorno de Azure App Service, deje el nombre de la ranura como producción y especifique el nombre del grupo de recursos.


resourceGroupName - Grupo de recursos
string. Necesario cuando deployToSlotOrASE = true.

El nombre del grupo de recursos es necesario cuando el destino de implementación es una ranura de implementación o un App Service Environment.

Escribe o selecciona el grupo de recursos de Azure que contiene el Azure App Service especificado anteriormente.


slotName - Ranura
string. Necesario cuando deployToSlotOrASE = true. Valor predeterminado: production.

Especifica o selecciona una ranura existente, excepto la ranura producción.


package - Paquete o carpeta
string. Obligatorio. Valor predeterminado: $(System.DefaultWorkingDirectory)/**/*.zip.

Ruta de acceso del archivo al paquete o carpeta que contiene App Service contenido generado por MSBuild, un archivo ZIP comprimido o un archivo war. Se admiten variables (versión decompilación | ) y caracteres comodín. Por ejemplo, $(System.DefaultWorkingDirectory)/**/*.zip or $(System.DefaultWorkingDirectory)/**/*.war.


runtimeStack - Pila en tiempo de ejecución
string. Opcional. Use cuando appType = functionAppLinux. Valores permitidos: , , , , JAVA|11. JAVA|17PYTHON|3.11JAVA|8NODE|16NODE|18NODE|20PYTHON|3.9PYTHON|3.10JAVA|21PYTHON|3.8DOTNET-ISOLATED|8.0NODE|14DOTNET-ISOLATED|7.0DOTNET-ISOLATED|6.0DOTNET|6.0

Especifique el marco y la versión en la que se ejecutará la aplicación de funciones. Puede usar cualquiera de las versiones admitidas en tiempo de ejecución. Los valores antiguos como DOCKER|microsoft/azure-functions-* están en desuso. Los nuevos valores se muestran en la lista desplegable de la asistente de tareas. Si hay una versión más reciente de un marco disponible en las versiones de tiempo de ejecución compatibles , puede especificarla incluso si no está en la lista.


runtimeStack - Pila en tiempo de ejecución
string. Opcional. Use cuando appType = functionAppLinux. Valores permitidos: DOTNET|2.2 (DOTNET|2.2 (functionapp v2)), DOTNET|3.1 (DOTNET|3.1 (functionapp v3)), DOTNET|6.0 (DOTNET|6.0 (functionapp v4)), (JAVA|8 (functionapp v2/v3/v4)), JAVA|11 (JAVA|11 (functionapp v3/v4)), NODE|8 (NODE|8 (functionapp v2)), JAVA|8 () NODE|10 NODE|10 (functionapp v2/v3)), NODE|12 (NODE|12 (functionapp v3)), NODE|14 (NODE|14 (functionapp v3/v4)), NODE|16 (NODE|16 (functionapp v4)), (PYTHON|3.6 (functionapp v2/v3)), PYTHON|3.7 (PYTHON|3.7 (functionapp v2/v3/v4)), PYTHON|3.6PYTHON|3.8 (PYTHON|3.8 (functionapp v3/v4)), PYTHON|3.9 (PYTHON|3.9 (functionapp v3/v4)).

Especifique el marco y la versión en la que se ejecutará la aplicación de funciones. Puede usar cualquiera de las versiones admitidas en tiempo de ejecución. Los valores antiguos como DOCKER|microsoft/azure-functions-* están en desuso. Los nuevos valores se muestran en la lista desplegable de la asistente de tareas. Si hay una versión más reciente de un marco disponible en las versiones de tiempo de ejecución compatibles , puede especificarla incluso si no está en la lista.


runtimeStack - Pila en tiempo de ejecución
string. Opcional. Use cuando appType = functionAppLinux. Valores permitidos: DOTNET|2.2 (DOTNET|2.2 (functionapp v2)), DOTNET|3.1 (DOTNET|3.1 (functionapp v3)), JAVA|8 (JAVA|8 (functionapp v2/v3)), JAVA|11 (JAVA|11 (functionapp v3)), NODE|8 (NODE|8 (functionapp v2)), NODE|10 (NODE|10 (functionapp v)2/v3)), NODE|12 (NODE|12 (functionapp v3)), NODE|14 (NODE|14 (functionapp v3)), PYTHON|3.6 (PYTHON|3.6 (functionapp v2/v3)), PYTHON|3.7 (PYTHON|3.7 (functionapp v2/v3)), PYTHON|3.8 (PYTHON|3.8 (functionapp v3)).

Especifique el marco y la versión en la que se ejecutará la aplicación de funciones. Puede usar cualquiera de las versiones admitidas en tiempo de ejecución. Los valores antiguos como DOCKER|microsoft/azure-functions-* están en desuso. Los nuevos valores se muestran en la lista desplegable de la asistente de tareas. Si hay una versión más reciente de un marco disponible en las versiones de tiempo de ejecución compatibles , puede especificarla incluso si no está en la lista.


runtimeStack - Pila en tiempo de ejecución
string. Opcional. Use cuando appType = functionAppLinux. Valores permitidos: DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0 (.NET), DOCKER|microsoft/azure-functions-node8:2.0 (JavaScript).

Especifique el marco y la versión en la que se ejecutará la aplicación de funciones. Puede usar cualquiera de las versiones admitidas en tiempo de ejecución. Los valores antiguos como DOCKER|microsoft/azure-functions-* están en desuso. Los nuevos valores se muestran en la lista desplegable de la asistente de tareas. Si hay una versión más reciente de un marco disponible en las versiones de tiempo de ejecución compatibles , puede especificarla incluso si no está en la lista.


startUpCommand - Comando de inicio
string. Opcional. Use cuando appType = functionAppLinux.

Escribe el comando de inicio. Por ejemplo:

dotnet run
dotnet filename.dll


customWebConfig - Generación de parámetros de web.config para aplicaciones python, Node.js, Go y Java
string. Opcional. Use cuando appType != functionAppLinux && package NotEndsWith .war.

Se generará e implementará un Web.config estándar en Azure App Service si la aplicación no tiene una. Los valores de web.config varían en función del marco de trabajo de la aplicación y se pueden editar. Por ejemplo, para la aplicación node.js, web.config tendrá un archivo de inicio y iis_node valores de módulo. Esta característica de edición solo es para el web.configgenerado .


appSettings - Configuración de la aplicación
string.

Escriba la configuración de la aplicación mediante la sintaxis -key value (por ejemplo:-RequestTimeout 5000-Port 5000-WEBSITE_TIME_ZONE ). Incluya los valores que contienen espacios entre comillas dobles (por ejemplo: "Eastern Standard Time").


configurationStrings - Configuración
string.

Escriba las cadenas de configuración mediante la sintaxis -key value (por ejemplo: -phpVersion 5.6-linuxFxVersion: node|6.11). Incluya los valores que contienen espacios entre comillas dobles.


deploymentMethod - Método de implementación
string. Necesario cuando appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Valores permitidos: auto (Detección automática), zipDeploy (Zip Deploy), runFromPackage (Zip Deploy con Run From Package). Valor predeterminado: auto.

Elige el método de implementación de la aplicación.


deploymentMethod - Método de implementación
string. Necesario cuando appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Valores permitidos: auto (detección automática), zipDeploy (Zip Deploy), runFromPackage (Ejecutar desde paquete). Valor predeterminado: auto.

Elige el método de implementación de la aplicación.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Esta tarea define las siguientes variables de salida, que puede consumir en pasos, trabajos y fases de bajada.

AppServiceApplicationUrl
Dirección URL de la aplicación del App Service seleccionado.

Comentarios

Use la tarea de aplicación de funciones de Azure para implementar funciones en Azure.

Métodos de implementación

Hay varios métodos de implementación disponibles en esta tarea. El valor predeterminado es auto.

Para cambiar la opción de implementación basada en paquetes en una tarea de diseñador, expanda Opciones de implementación adicionales y habilite Seleccionar método de implementación.

La tarea usa una tecnología de implementación adecuada en función del tipo de agente de Azure App Service y Azure Pipelines. Las tecnologías de implementación usadas por las tareas son las siguientes:

La tarea intenta seleccionar de forma predeterminada la tecnología de implementación adecuada en función del paquete de entrada, el tipo de App Service y el sistema operativo del agente.

  • Si se proporciona un script posterior a la implementación, use Implementación de archivo ZIP.
  • Si el tipo de App Service es Aplicación web en Linux, use Implementación de archivo ZIP.
  • Si se proporciona un archivo .war, use Implementación de War.
  • Si se proporciona un archivo .jar, use Ejecutar desde Zip.
  • Para todas las demás tareas, use Ejecución desde paquete (a través de Implementación de archivo ZIP).

En un agente que no sea de Windows (para cualquier tipo de App Service), la tarea se basa en la API REST de Kudu para implementar la aplicación web.

API de REST de Kudu

La API REST de Kudu funciona en agentes de automatización de Windows y Linux cuando el destino es una aplicación web en Windows, una aplicación web en Linux (origen integrado) o una aplicación de funciones. La tarea usa Kudu para copiar archivos en Azure App Service.

Implementación de archivo ZIP

Implementación de archivo ZIP crea un paquete de implementación .zip a partir del paquete o carpeta elegido. A continuación, implementa el contenido del archivo en la carpeta wwwroot de la aplicación de funciones del nombre de App Service en Azure. Esta opción sobrescribe todo el contenido existente en la carpeta wwwroot. Para más información, consulte Implementación de archivo ZIP para Azure Functions.

Ejecución desde paquete

Ejecución desde paquete crea el mismo paquete de implementación que Implementación de archivo ZIP. En lugar de implementar archivos en la carpeta wwwroot, el entorno de ejecución de Functions monta todo el paquete. Cuando se usa esta opción, los archivos de la carpeta wwwroot pasan a ser de solo lectura. Para más información, consulte Run your Azure Functions from a package file (Ejecución de Azure Functions desde un archivo de paquete).

Solución de problemas

Error: No se pudo recuperar el token de acceso para Azure. Compruebe si la entidad de servicio usada es válida y no ha expirado.

La tarea usa la entidad de servicio en la conexión de servicio para autenticarse con Azure. Si la entidad de servicio ha expirado o no tiene permisos para App Service, se produce este error en la tarea. Compruebe la validez de la entidad de servicio usada y que se encuentra en el registro de la aplicación. Para más información, consulte Uso del control de acceso basado en rol para administrar el acceso a los recursos de la suscripción de Azure. Esta entrada de blog también contiene más información sobre el uso de la autenticación de entidad de servicio.

Error de SSL

Si desea usar un certificado en App Service, dicho certificado debe estar firmado por una entidad de certificación de confianza. Si la aplicación web genera errores de validación del certificado, probablemente se esté usando un certificado autofirmado. Establezca una variable denominada VSTS_ARM_REST_IGNORE_SSL_ERRORS en el valor true de la canalización de compilación o versión para resolver el error.

Una versión se bloquea durante mucho tiempo y luego se produce un error.

Este problema podría ser el resultado de una capacidad insuficiente en el plan de App Service. Para resolverlo, puede escalar verticalmente la instancia de App Service para aumentar la CPU, la memoria RAM y el espacio en disco disponibles, o probar con un plan de App Service diferente.

Códigos de error 5xx

Si ve un error 5xx, compruebe el estado del servicio de Azure.

La función de Azure de repente dejó de funcionar

Azure Functions puede dejar de funcionar de repente si ha pasado más de un año desde la última implementación. Si implementa con "RunFromPackage" en "deploymentMethod", se genera una SAS con una fecha de expiración de 1 año y se establece como el valor de "WEBSITE_RUN_FROM_PACKAGE" en la configuración de la aplicación. Azure Functions usa esta SAS para hacer referencia al archivo de paquete para la ejecución de la función, por lo que si la SAS ha expirado, la función no se ejecutará. Para resolver este problema, vuelva a implementar para generar una SAS con una fecha de expiración de un año.

Error: No se encontró ningún paquete con el patrón especificado

Compruebe si el paquete mencionado en la tarea se publica como artefacto en la compilación o en una fase anterior y se descarga en el trabajo actual.

Error: la publicación mediante la opción de Implementación de archivo ZIP no se admite para el tipo de paquete MSBuild

Los paquetes web creados mediante la tarea MSBuild (con argumentos predeterminados) tienen una estructura de carpetas anidada que solo se puede implementar correctamente mediante Web Deploy. No se puede usar la opción de publicar en la implementación del archivo ZIP para implementar esos paquetes. Para convertir la estructura de empaquetado, siga estos pasos:

  1. En la tarea Compilar solución, cambie los argumentos MSBuild a /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl="$(System.DefaultWorkingDirectory)\\WebAppContent":

    Captura de pantalla que muestra los valores de Compilar solución.

  2. Agregue una tarea de archivar y cambie los valores de la siguiente manera:

    1. Cambie el archivo o carpeta raíz que se va a archivar a $(System.DefaultWorkingDirectory)\\WebAppContent.

    2. Desactive la casilla Anteponer el nombre de la carpeta raíz a las rutas de acceso de archivos:

      Captura de pantalla que muestra los valores de Archivar.

La implementación de la aplicación de funciones en Windows se realiza correctamente, pero la aplicación no funciona

Este problema podría producirse si un archivo web.config no está presente en la aplicación. Puede agregar un archivo web.config al origen o generar uno automáticamente mediante la configuración y la aplicación de la tarea.

  1. Seleccione la tarea y vaya a Generar parámetros de web.config para aplicaciones de Python, Node.js, Go y Java:

    Captura de pantalla que muestra la sección Generar parámetros web.config.

  2. Seleccione el botón Más (...) bajo Generar parámetros de web.config para aplicaciones de Python, Node.js, Go y Java para editar los parámetros.

    Captura de pantalla que muestra Generar parámetros web.config.

  3. Seleccione el tipo de aplicación en la lista Marco de trabajo de la aplicación.

  4. Seleccione Aceptar. Si lo hace, rellenará los parámetros de web.config necesarios para generar el archivo web.config.

Preguntas más frecuentes

¿Cómo debo configurar mi conexión de servicio?

Esta tarea requiere una conexión de servicio de Azure Resource Manager.

¿Cómo debo configurar la implementación de Webjob con Application Insights?

Al implementar en App Service, si tiene Application Insights configurado y ha habilitado Remove additional files at destination, también debe habilitar Exclude files from the App_Data folder. Al habilitar esta opción, la extensión de Application Insights se mantiene segura. Este paso es necesario porque el WebJob continuo de Application Insights está instalado en la carpeta App_Data.

¿Cómo debo configurar mi agente si está detrás de un proxy mientras se implementa en App Service?

Si el agente autohospedado requiere un proxy web, puede informar al agente sobre el proxy durante la configuración. Esto permite al agente conectarse a Azure Pipelines o Azure DevOps Server a través del proxy. Obtenga más información sobre cómo ejecutar un agente autohospedado detrás de un proxy web.

No puedo implementar en un App Service Environment interno mediante una conexión de servicio de Azure Resource Manager y un agente hospedado por Microsoft

Por diseño, un agente hospedado por Microsoft no funcionará con un App Service Environment. En su lugar, debe configurar un agente privado en una máquina virtual que esté en la misma red virtual que la App Service Environment. Además, establezca una zona DNS privada para habilitar la comunicación entre los recursos.

Ejemplos

Este es un fragmento de código YAML de ejemplo que implementa funciones de Azure en Windows:


variables:
  azureSubscription: Contoso
  # To ignore SSL error, uncomment the below variable
  # VSTS_ARM_REST_IGNORE_SSL_ERRORS: true

steps:
- task: AzureFunctionApp@1
  displayName: Azure Function App Deploy
  inputs:
    azureSubscription: $(azureSubscription)
    appName: samplefunctionapp
    appType: functionApp
    package: $(System.DefaultWorkingDirectory)/**/*.zip

Para implementar una función en Linux, agregue el parámetro appType y establézcalo en appType: functionAppLinux. Si no especifica un valor, functionApp es el valor predeterminado.

Para especificar explícitamente el método de implementación como Implementación de archivo ZIP, agregue el parámetro deploymentMethod: zipDeploy. Otro valor admitido para este parámetro es runFromPackage. Si no especifica un valor, auto es el valor predeterminado.

Para ver un tutorial que muestra cómo crear una canalización de CI/CD, consulte Compilación e implementación de Java en Azure Functions.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 2.104.1 o superior
Categoría de la tarea: Implementación