es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Herramientas de AWS Beanstalk para .NET Core: Ignora el parámetro autónomo en el archivo de configuración.

Estoy intentando utilizar las herramientas de Amazon Elastic Beanstalk para aplicaciones .NET Core (4.2.2) para publicar una aplicación net6.0 en AWS EB (Windows). En el momento de escribir esto, necesito incluir el tiempo de ejecución net6.0 ya que net6.0 aún no es compatible con EB.
Puedo publicar con éxito mi aplicación en AWS utilizando el AWS Toolkit para Visual Studio.
El toolkit llama a dotnet publish con los siguientes parámetros:

Ejecutando: dotnet publish “[ruta de mi proyecto]” –output “[ruta de mi proyecto]\bin\Release\net6.0\publish” –configuration “Release” –framework “net6.0” –runtime win-x64 –self-contained true

El toolkit crea este archivo de configuración (aws-beanstalk-tools-defaults.json) después de una publicación exitosa:

{
“additional-options” : “”,
“application” : “miApp”,
“app-path” : “/”,
“configuration” : “Release”,
“enable-xray” : false,
“enhanced-health-type” : “enhanced”,
“environment” : “miApp-test”,
“framework” : “net6.0”,
“iis-website” : “Default Web Site”,
“region” : “eu-west-1”,
“self-contained” : true,
“runtime” : “win-x64”
}

Sin embargo, cuando intento utilizar la utilidad de línea de comandos con el comando:

dotnet eb deploy-environment -cfg myConfFile.json

los parámetros self-contained y runtime no se pasan a la llamada dotnet deploy, lo que resulta en esta llamada:

dotnet publish “[ruta de mi proyecto]” –output “[ruta de mi proyecto]\bin\Release\net6.0\publish” –configuration “Release” –framework “net6.0”

He intentado pasar los parámetros sin utilizar el archivo de configuración como

dotnet eb deploy-environment –profile XXX -c Release -env miApp-test -po –runtime “win-x64”

solo para obtener esta excepción:

System.InvalidOperationException: Argumento requerido no especificado para la opción: –runtime

¿Hay alguna manera de utilizar esta utilidad para publicar una aplicación net6.0 usando self-contained bundle en una instancia de EB basada en Windows?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que el comando dotnet eb deploy-environment no está pasando los parámetros self-contained y runtime a la llamada de dotnet publish.

    Una posible solución podría ser modificar el archivo aws-beanstalk-tools-defaults.json para incluir los parámetros self-contained y runtime como opciones adicionales:

    {
    "additional-options" : "--runtime win-x64 --self-contained true",
    "application"        : "miApp",
    "app-path"           : "/",
    "configuration"      : "Release",
    "enable-xray"        : false,
    "enhanced-health-type" : "enhanced",
    "environment"          : "miApp-test",
    "framework"            : "net6.0",
    "iis-website"          : "Default Web Site",
    "region"               : "eu-west-1"
    

    }

    Luego, ejecuta nuevamente el comando dotnet eb deploy-environment -cfg myConfFile.json para ver si pasa correctamente los parámetros self-contained y runtime.

    Alternativamente, puedes intentar pasar los parámetros directamente en la línea de comandos, pero asegúrate de incluir la opción -- para separar las opciones de dotnet eb de las opciones de dotnet publish:

    dotnet eb deploy-environment --profile XXX -c Release -env miApp-test -- --runtime "win-x64" --self-contained true
    

    De esta manera, se pasarán correctamente los parámetros self-contained y runtime a la llamada de dotnet publish.

Comments are closed.