Compartir a través de


Tutorial: Actualización de una aplicación contenedora implementada desde el código fuente

En este artículo se muestra cómo actualizar la aplicación contenedora que creó en el artículo anterior, Compilar e implementar desde el código fuente en Azure Container Apps.

Si no ha completado los pasos del artículo anterior, detenga aquí y vuelva a este artículo una vez que se hayan completado todos los pasos.

En este tutorial, hará lo siguiente:

  • Realice un cambio de código en la aplicación.
  • Inserte los cambios en el registro de contenedor con una nueva etiqueta.
  • Vea la aplicación actualizada en un explorador.
  • Consulte el flujo de registro para ver los mensajes registrados.

Requisitos previos

Para completar este proyecto, necesita las herramientas, los recursos y la aplicación contenedora creadas en el tutorial anterior, Compilar e implementar desde el código fuente en Azure Container Apps.

Configurar

  1. Si es necesario, inicie sesión en Azure desde la CLI.

    az login
    
  2. Cree variables de entorno. Si las variables de entorno del último tutorial siguen existiendo en el terminal, puede omitir este paso.

    Si necesita volver a crear las variables de entorno, primero debe consultar el nombre del registro de contenedor que creó en el último artículo.

    Ejecute el comando siguiente para consultar el registro de contenedor que creó en el último tutorial.

    az acr list --query "[].{Name:name}" --output table
    

    Una vez que tenga el nombre del registro de contenedor, reemplace <REGISTRY_NAME> por el nombre del registro y ejecute el comando siguiente.

    RESOURCE_GROUP="my-demo-group"
    CONTAINER_APP_NAME="my-demo-app"
    REGISTRY_NAME="<REGISTRY_NAME>"
    
  3. Actualice y ejecute el código fuente.

    Reemplace el contenido de Startup.cs por el código siguiente.

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
        }
    
        public void Configure(IApplicationBuilder app, ILogger<Startup> logger)
        {
            app.UseRouting();
    
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    logger.LogInformation("Hello Logger!");
                    await context.Response.WriteAsync("Hello Logger!");
                });
            });
        }
    }
    

    Esta versión del código crea un registrador para escribir información en la consola y en el flujo de registro de Container Apps.

    Compile el proyecto en la configuración de versión.

    dotnet build -c Release
    

    A continuación, ejecute la aplicación para comprobar que el código se ha implementado correctamente.

    dotnet run --configuration Release
    

Compilación e inserción de la imagen en un registro

Ahora que el código se actualiza, puede insertar la versión más reciente como una nueva imagen en el registro de contenedor.

Para asegurarse de que la etiqueta usada para el registro es única, use el siguiente comando para crear un nombre de etiqueta.

IMAGE_TAG=$(date +%s)

Ahora puede compilar e insertar la nueva imagen de contenedor en el registro mediante el comando siguiente.

az acr build \
    -t $REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG \
    -r $REGISTRY_NAME .

Crear una nueva revisión

Puede crear una nueva revisión de la aplicación contenedora en función de la nueva imagen de contenedor que insertó en el registro.

az containerapp revision copy \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --image "$REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG" \
  --output none

El comando revision copy crea una nueva revisión de la aplicación contenedora con la imagen de contenedor especificada del registro.

Comprobación de la implementación

Ahora que la aplicación está implementada, puede consultar la dirección URL con este comando.

az containerapp show \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --query properties.configuration.ingress.fqdn -o tsv

En un explorador web, vaya a la dirección URL de la aplicación. Una vez iniciada la aplicación contenedora, devuelve Hello Logger!.

Consulta de la secuencia de registro

Acaba de ver la salida enviada al explorador, por lo que ahora puede usar el siguiente comando para ver los mensajes que se registran en la secuencia de registro.

az containerapp logs show \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --follow

La consulta devuelve una respuesta similar a la siguiente:

{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Hosting environment: Production"}
{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Content root path: /app"}
{"TimeStamp", "xxxx", "Log": "info: Startup[0]"}
{"TimeStamp", "xxxx", "Log": "Hello Logger!""}

Observe cómo puede ver el mensaje de Hello Logger! en la secuencia.

Para detener el seguimiento de la secuencia, puede escribir Cmd/Ctrl + C para finalizar los mensajes.

Limpieza de recursos

Si no va a usar los recursos de Azure creados en este tutorial, puede quitarlos con el comando siguiente.

az group delete --name my-demo-group

Sugerencia

¿Tiene problemas? Háganoslo saber en GitHub abriendo una incidencia en el repositorio de Azure Container Apps.

Pasos siguientes

Continúe para saber cómo conectarse a servicios de Azure Container Apps.