Atualizando seu app

Um aplicativo contém uma ou mais revisões. Uma revisão representa uma versão imutável das propriedades de configuração do aplicativo. Cada atualização de uma propriedade de configuração do aplicativo cria uma nova revisão de aplicativo.

Ao modificar um aplicativo e implementar o aplicativo com as mudanças ou reimplementar o aplicativo sem mudanças em suas definições de configuração, essas ações implementam uma nova revisão do aplicativo. Ao implementar (ou reimplementar) uma revisão de aplicativo, o Code Engine usa quaisquer definições de configuração mudadas e obtém qualquer imagem de contêiner, segredo ou configmap atualizado que é referenciado pelo aplicativo.

Para obter mais informações sobre como implementar aplicativos, como especificar valid vCPU e combinações de memória, definir comandos e argumentos, variáveis de ambiente, segredos ou configmaps, consulte Opções para implementar um app.

Code Engine tem uma cota para o número de aplicativos e revisões de aplicativo em um projeto. Para obter mais informações sobre limites para projetos, consulte Quotas de projeto. O Code Engine retém apenas a revisão inativa mais recente de seu aplicativo além da sua revisão de app ativa. As revisões mais antigas são excluídas.

É possível atualizar o app implementado e seu código referenciado de qualquer uma das maneiras a seguir, independentemente de como você criou ou atualizou previamente o app.

  • Se você tiver uma imagem de contêiner, de acordo com o padrão Open Container Initiative(OCI), precisará fornecer apenas uma referência à imagem, que aponta para o local do registro do contêiner ao implantar o aplicativo. É possível implementar seu app com uma imagem em um registro público ou registro privado.

    Se você criou seu app usando o comando app create e especificou a opção --build-source para construir a imagem de contêiner a partir da origem local ou do repositório e deseja mudar seu app para apontar para uma imagem de contêiner diferente. Primeiro, deve-se remover a associação da construção de seu app. Por exemplo, execute ibmcloud ce application update -n APP_NAME --build-clear.. Depois de remover a associação da construção de seu app, é possível atualizar o app para referenciar uma imagem diferente.

  • Se você está começando com código-fonte que reside em um repositório Git, é possível optar por deixar que o Code Engine cuide da construção da imagem por meio de sua origem e implemente o app com uma operação única. Neste cenário, o Code Engine faz upload da sua imagem para o IBM Cloud® Container Registry. Para saber mais, consulte Implementando seu app por meio do código-fonte do repositório. Se você quiser mais controle sobre a construção da sua imagem, poderá optar por construir a imagem com o Code Engine antes de implementar seu app.

  • Se você está começando com código-fonte que reside em uma estação de trabalho local, é possível optar por deixar que o Code Engine cuide da construção da imagem por meio de sua origem e implemente o app com um comando da CLI único. Neste cenário, o Code Engine faz upload da sua imagem para o IBM Cloud® Container Registry. Para saber mais, consulte Implementando seu app por meio do código-fonte local com a CLI. Se você quiser mais controle sobre a construção da sua imagem, poderá optar por construir a imagem com o Code Engine antes de implementar seu app.

Por exemplo, você pode optar por deixar que o Code Engine cuide da construção de sua origem local enquanto você cuida do desenvolvimento de sua origem para o app. Em seguida, após o amadurecimento da imagem, é possível atualizar o app implementado para referenciar a imagem específica que desejar. É possível repetir esse processo conforme necessário.

Ao implementar seu app atualizado, a versão mais recente de sua imagem de contêiner referenciada é transferida por download e implementada, a menos que uma tag seja especificada para a imagem. Se uma tag for especificada para a imagem, a imagem marcada será usada para a implementação.

E se eu desejar reimplementar meu aplicativo sem mudar as configurações?

É possível sempre implementar seu aplicativo com mudanças na configuração mudando um valor de configuração e implementando o aplicativo.

No entanto, talvez você queira reimplementar uma revisão de aplicativo sem alterar as definições da configuração do aplicativo Talvez sua imagem de contêiner referenciada tenha mudado e você deseja que a revisão do aplicativo use a imagem de contêiner atualizada. Ou, talvez você queira que seu aplicativo faça referência a um segredo ou configmap, que contém valores de conteúdo atualizados

Para esses cenários, no console, é possível clicar em Reimplementar na guia Configuração de sua página do aplicativo, sem mudar a configuração do app Com a CLI, use o comando ibmcloud ce app update.

Atualizando seu app por meio do console

Atualize o aplicativo que você criou em Implementando um aplicativo a partir de um registro público a partir do console para incluir uma variável de ambiente.

  1. Navegue para a página do aplicativo. Uma maneira de navegar para a página do aplicativo é
    • Localize a página Code Engine Projetos.
    • Clique no nome do seu projeto para abrir a página Overview (Visão geral).
    • Clique em Aplicativos para abrir uma lista de seus aplicativos. Clique no nome de seu aplicativo para abrir sua página de aplicativo.
  2. Na página do aplicativo, é possível visualizar informações sobre as instâncias de execução de seu aplicativo e suas revisões, detalhes de configuração e configurações de terminais do app. Clique no nome da revisão do aplicativo com a qual deseja trabalhar para abrir o resumo da configuração dessa revisão. Ou, é possível clicar na aba Configuração para abrir o resumo de configuração para a revisão mais recente do aplicativo.
  3. Na guia Configuração, clique na guia Variáveis de ambiente
  4. Clique em Incluir variável de ambiente. Defina esta variável de ambiente como um valor literal. Insira TARGET para o nome e Stranger para o valor. Clique em Incluir.
  5. Clique em Deploy para salvar as alterações e implementar a revisão do aplicativo.
  6. Após o status do aplicativo mudar para Pronto, é possível testar a revisão do aplicativo. Clique em Testar aplicativo e, em seguida, clique em Enviar solicitação na área de janela Testar aplicativo. Para abrir o aplicativo em uma página da web, clique em URL do aplicativo. Para este app, Hello Stranger é exibido.

Neste exemplo, você atualizou variáveis de ambiente para um app. Também é possível atualizar outras definições de configuração para o seu app, incluindo referência a uma imagem diferente ou compilação de imagem diferente a partir da guia Código. Na guia Recursos e ajuste de escala, é possível atualizar as configurações de memória e ajuste de escala do aplicativo para seu app. A partir da aba Variáveis de ambiente, é possível incluir ou atualizar as variáveis de ambiente para o seu app. Na guia Opções de início da imagem, é possível incluir ou atualizar comando e argumentos para substituir as configurações dentro de sua imagem de contêiner ou trabalhar com análises de atividade e prontidão.

Atualizando seu app para usar terminais apenas de projeto por meio do console

Por padrão, ao implementar um app, o app é implementado de tal forma que pode receber solicitações da Internet pública, de uma rede privada ou de componentes dentro do projeto. Vamos mudar a visibilidade deste app para que ele seja acessado apenas por outros recursos do Code Engine que estão em execução no mesmo ambiente do Code Engine. Use a guia Mapeamentos de domínio para alterar a visibilidade de um aplicativo.

  1. Navegue para a página do aplicativo. Uma maneira de navegar para a página do aplicativo é

    • Localize a página Code Engine Projetos.
    • Clique no nome do seu projeto para abrir a página Overview (Visão geral).
    • Clique em Aplicativos para abrir uma lista de seus aplicativos. Clique no nome de seu aplicativo para abrir sua página de aplicativo.
  2. Na página do aplicativo, é possível visualizar informações sobre as instâncias de execução de seu aplicativo e suas revisões, detalhes de configuração e configurações de terminais do app. Clique na guia Domain mappings (Mapeamentos de domínio ) para abrir as configurações de visibilidade do endpoint para o aplicativo.

  3. Na guia Domain mappings (Mapeamentos de domínio ), observe os URLs disponíveis para seu aplicativo. Quando Public é selecionado, é possível visualizar a URL do mapeamento de domínio do sistema público e interno para o aplicativo Quando No external system domain mapping (Nenhum mapeamento de domínio de sistema externo ) é selecionado, esse aplicativo não pode mais ser acessado pela Internet pública e o acesso à rede só é possível a partir de componentes desse projeto.

    Quando você altera a visibilidade do seu aplicativo, a alteração entra em vigor imediatamente. É importante considerar o impacto da mudança para os seus usuários ativos ou integrações, bem como quaisquer implicações de segurança. É possível mudar a configuração de visibilidade conforme a necessidade.

Atualizando seu app para usar terminais privados do console

Por padrão, ao implementar um app, o app é implementado de tal forma que pode receber solicitações da Internet pública, de uma rede privada ou de componentes dentro do projeto. Vamos mudar a visibilidade deste app de tal forma que ele seja acessado apenas por outros recursos do Code Engine que estão executando no mesmo projeto e por meio da rede privada usando terminais privados virtuais. Use a guia Mapeamentos de domínio para alterar a visibilidade de um aplicativo.

  1. Navegue para a página do aplicativo. Uma maneira de navegar para a página do aplicativo é

    • Localize a página Code Engine Projetos.
    • Clique no nome do seu projeto para abrir a página Overview (Visão geral).
    • Clique em Aplicativos para abrir uma lista de seus aplicativos. Clique no nome de seu aplicativo para abrir sua página de aplicativo.
  2. Na página do aplicativo, é possível visualizar informações sobre as instâncias de execução de seu aplicativo e suas revisões, detalhes de configuração e configurações de terminais do app. Clique na guia Domain mappings (Mapeamentos de domínio ) para abrir as configurações de visibilidade do endpoint para o aplicativo.

  3. Na guia Domain mappings (Mapeamentos de domínio ), observe os URLs disponíveis para seu aplicativo. Quando Private é selecionado, este aplicativo não é mais acessível por meio da Internet pública e o acesso à rede só é possível por meio de componentes dentro deste projeto (local do cluster) e da rede privada.

    Clique em Privado para mudar a visibilidade do terminal do app. As URLs disponíveis para sua definição de terminal são exibidas para as URLs privadas e somente de projeto.

  4. Para acessar o seu app de forma segura usando um VPE (terminal privado virtual), siga as instruções para Usando seu VPE para acessar um app para configurar o VPE para acessar seu app.

Se você configurar o seu aplicativo para visibility = private, então você só poderá testar seu aplicativo por meio do terminal privado virtual de dentro de sua Virtual Private Cloud (VPC).

Ao mudar a visibilidade do seu app, a mudança é efetivada imediatamente. É importante considerar o impacto da mudança para os seus usuários ativos ou integrações, bem como quaisquer implicações de segurança. É possível mudar a configuração de visibilidade conforme a necessidade.

Atualizando seu app com a CLI

Para atualizar o seu app com a CLI, use o comando app update. Esse comando requer o nome do app que você deseja atualizar e também permite outros argumentos opcionais. Para obter uma listagem completa de opções, consulte o comando ibmcloud ce app update.

Atualize o aplicativo criado em Implementando um aplicativo com a CLI para incluir uma variável de ambiente.

A imagem icr.io/codeengine/hello da amostra lê a variável de ambiente TARGET e imprime Hello ${TARGET}. Se a variável de ambiente estiver vazia, Hello World será retornado. O exemplo a seguir atualiza o app para modificar o valor da variável de ambiente TARGET para Stranger. Para obter mais informações sobre o código usado para este exemplo, consulte hello.

  1. Execute o comando application update. Por exemplo,

    ibmcloud ce application update -n myapp --env TARGET=Stranger
    

    Saída de exemplo

    Updating application 'myapp' to latest revision.
    [...]
    Run 'ibmcloud ce application get -n myapp' to check the application status.
    OK
    
    https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud    
    
  2. Execute o comando application get para exibir o status de seu app, incluindo as informações de revisão mais recentes.

    ibmcloud ce application get --name myapp  
    

    Saída de exemplo

    [...]
    Name:          myapp
    [...]
    URL:           https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Environment Variables:
    Type     Name    Value
    Literal  TARGET  Stranger
    Image:                  icr.io/codeengine/hello
    Resource Allocation:
    CPU:                1
    Ephemeral Storage:  400M
    Memory:             4G
    
    Revisions:
    myapp-hc3u8-2:
        Age:                82s
        Traffic:            100%
        Image:              icr.io/codeengine/hello (pinned to f0dc03)
        Running Instances:  1
    
    Runtime:
    Concurrency:    100
    Maximum Scale:  10
    Minimum Scale:  0
    Timeout:        300
    
    Conditions:
    Type                 OK    Age  Reason
    ConfigurationsReady  true  75s
    Ready                true  62s
    RoutesReady          true  62s
    
    Events:
    Type    Reason   Age    Source              Messages
    Normal  Created  2m11s  service-controller  Created Configuration "myapp"
    Normal  Created  2m11s  service-controller  Created Route "myapp"
    
    Instances:
    Name                                       Revision       Running  Status       Restarts  Age
    myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8  myapp-hc3u8-1  1/2      Terminating  0         2m10s
    myapp-hc3u8-2-deployment-7f98b679d5-2hskr  myapp-hc3u8-2  2/2      Terminating  0         85s
    

    Na saída na seção Revisões, é possível ver a revisão de aplicativo mais recente do serviço myapp. Além disso, observe que 100% do tráfego para o aplicativo está executando a revisão mais recente do app.

  3. Chame o aplicativo.

    curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    

    Saída de exemplo

    Hello Stranger
    

    Na saída deste comando, agora é possível ver o app atualizado retornar Hello Stranger.

  4. Use o comando ibmcloud ce revision list para exibir todas as suas revisões de app. Use essas informações para ajudá-lo a gerenciar suas revisões de aplicativo, pois Code Engine tem uma cota para o número de revisões de aplicativo em um projeto.

    Na saída da revision list a seguir, observe que o Code Engine retém apenas a revisão inativa mais recente de seu aplicativo, além de sua revisão ativa do app. As revisões mais antigas são excluídas.

    ibmcloud ce revision list
    

    Saída de exemplo

    Listing all application revisions...
    OK
    
    Name                   Application      Status  URL  Latest  Tag  Traffic  Age    Conditions  Reason
    myapp-hc3u8-4           myapp            Ready                            2d15h    3 OK / 4
    myapp-hc3u8-5           myapp            Ready        true         100%    2d8h    3 OK / 4  
    myapp2-vjfqt-1          myapp2           Ready        true         100%      3d    3 OK / 4
    myhelloapp-tv368-3      myhelloapp       Ready                              16d    3 OK / 4
    myhelloapp-tv368-4      myhelloapp       Ready        true         100%     16d    3 OK / 4
    newapp-mytest-00008     newapp-mytest    Ready                              4d17h  3 OK / 4
    newapp-mytest-00009     newapp-mytest    Ready        true         100%     2d20h  3 OK / 4
    

É possível gerenciar suas revisões de app usando o comando ibmcloud ce revision get para exibir detalhes de uma revisão de app e o comando ibmcloud ce revision delete para remover revisões que você não deseja manter. Também é possível usar o comando ibmcloud ce revision logs para visualizar logs de instâncias de revisão de aplicativos. Use o comando ibmcloud ce revision events para exibir eventos do sistema de instâncias de revisão de aplicativos.

Atualizando seu app para usar terminais somente de projeto com a CLI

Por padrão, ao implementar um app, o app é implementado de tal forma que pode receber solicitações da Internet pública, de uma rede privada ou de componentes dentro do projeto. Para mudar a visibilidade de seu app de forma que ele seja acessado apenas por outros recursos do Code Engine que estão em execução no mesmo projeto, use a opção --visibility=project com o comando ibmcloud ce app update ou ibmcloud ce app create

Neste cenário, atualize o aplicativo que você criou em Implementando um aplicativo com a CLI para mudar a visibilidade do app para usar um terminal do projeto.

  1. Execute o comando application update. Por exemplo,

    ibmcloud ce application update -n myapp --visibility=project
    

    Saída de exemplo

    Updating application 'myapp' to latest revision.
    [...]
    Run 'ibmcloud ce application get -n myapp' to check the application status.
    OK
    
    http://myapp.4svg40kna19.svc.cluster.local   
    
  2. Execute o comando application get para exibir o status de seu app, incluindo as informações de revisão mais recentes.

    ibmcloud ce application get --name myapp  
    

    Saída de exemplo

    [...]
    Name:          myapp
    [...]
    URL:           http://myapp.4svg40kna19.svc.cluster.local
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Environment Variables:
    Type     Name    Value
    Literal  TARGET  Stranger
    Image:                  icr.io/codeengine/hello
    Resource Allocation:
    CPU:                1
    Ephemeral Storage:  400M
    Memory:             4G
    
    Revisions:
    myapp-hc3u8-2:
        Age:                82s
        Traffic:            100%
        Image:              icr.io/codeengine/hello (pinned to f0dc03)
        Running Instances:  1
    
    Runtime:
    Concurrency:    100
    Maximum Scale:  10
    Minimum Scale:  0
    Timeout:        300
    
    Conditions:
    Type                 OK    Age  Reason
    ConfigurationsReady  true  75s
    Ready                true  62s
    RoutesReady          true  62s
    
    Events:
    Type    Reason   Age    Source              Messages
    Normal  Created  2m11s  service-controller  Created Configuration "myapp"
    Normal  Created  2m11s  service-controller  Created Route "myapp"
    
    Instances:
    Name                                       Revision       Running  Status       Restarts  Age
    myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8  myapp-hc3u8-1  1/2      Terminating  0         2m10s
    myapp-hc3u8-2-deployment-7f98b679d5-2hskr  myapp-hc3u8-2  2/2      Terminating  0         85s
    

    Na saída na seção Revisões, é possível ver a revisão de aplicativo mais recente do serviço myapp. Além disso, observe que 100% do tráfego para o aplicativo está executando a revisão mais recente do app.

Agora que você configurou o --visibility=project em seu aplicativo, este aplicativo não é mais acessível por meio da Internet pública e o acesso à rede só é possível por meio componentes dentro deste projeto (local do cluster).

Atualizando seu app para usar terminais privados com a CLI

Por padrão, ao implementar um app, o app é implementado de tal forma que pode receber solicitações da Internet pública, de uma rede privada ou de componentes dentro do projeto. É possível configurar a visibilidade do terminal para o seu app de tal forma que ele seja implementado com um terminal privado. Configurar um terminal privado significa que seu app não é acessível por meio Internet pública e o acesso à rede só é possível por meio de outros serviços do IBM Cloud de terminais privados virtuais (VPC) ou de componentes do Code Engine que estão em execução no mesmo projeto (local do cluster).

Para mudar a visibilidade de seu app para que ele seja acessado somente com um terminal privado, use a opção --visibility=private com o comando ibmcloud ce app update ou ibmcloud ce app create.

Somente é possível usar o seu VPE para acessar o seu app com um terminal privado se o seu projeto selecionado suportar visibilidade privada do aplicativo. Para confirmar se o projeto suporta visibilidade privada de aplicativo, use o comando ibmcloud ce project get para verificar se a saída para Application Private Visibility Supported está configurada como true.

Neste cenário, atualize o aplicativo que você criou em Implementando um aplicativo com a CLI para mudar a visibilidade do app para usar um terminal privado.

  1. Confirme se o projeto existente suporta aplicativos com visibilidade privada. Use o comando ibmcloud ce project get para verificar a saída para Application Private Visibility Supported é definida como true. Se o valor for false, entre em contato com o suporte IBM para ativar essa capacidade dentro do seu projeto existente.

    ibmcloud ce project get -n myproject
    

    Saída de exemplo

    Getting project 'myproject'...
    OK
    
    Name:                                      myproject  
    ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
    Status:                                    active  
    Enabled:                                   true  
    Application Private Visibility Supported:  true  
    Selected:                                  true  
    Region:                                    us-south
    Resource Group:             default
    Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
    Age:                        52d
    Created:                                   Tue, 28 Sep 2021 05:12:16 -0500  
    Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500  
    
    Quotas:    
    Category                                  Used  Limit  
    App revisions                             1     60  
    Apps                                      1     20  
    Build runs                                1     100  
    Builds                                    2     100  
    Configmaps                                2     100  
    CPU                                       0     64  
    Ephemeral storage                         0     256G  
    Instances (active)                        0     250  
    Instances (total)                         0     2500  
    Job runs                                  0     100  
    Jobs                                      0     100  
    Memory                                    0     256G  
    Secrets                                   6     100  
    Subscriptions (cron)                      0     100  
    Subscriptions (IBM Cloud Object Storage)  0     100  
    Subscriptions (Kafka)                     0     100
    
  2. Se Application Private Visibility Supported for true, será possível atualizar seu app para usar terminais privados. Execute o comando application update. Por exemplo,

    ibmcloud ce application update -n myapp --visibility=private
    

    Saída de exemplo

    Updating application 'myapp' to latest revision.
    [...]
    Run 'ibmcloud ce application get -n myapp' to check the application status.
    OK
    
    https://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  3. Execute o comando application get para exibir o status de seu app, incluindo as informações de revisão mais recentes.

    ibmcloud ce application get --name myapp  
    

    Saída de exemplo

    [...]
    Name:          myapp
    [...]
    URL:           https://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Environment Variables:
    Type     Name    Value
    Literal  TARGET  Stranger
    Image:                  icr.io/codeengine/hello
    Resource Allocation:
    CPU:                1
    Ephemeral Storage:  400M
    Memory:             4G
    
    Revisions:
    myapp-hc3u8-2:
        Age:                82s
        Traffic:            100%
        Image:              icr.io/codeengine/hello (pinned to f0dc03)
        Running Instances:  1
    
    Runtime:
    Concurrency:    100
    Maximum Scale:  10
    Minimum Scale:  0
    Timeout:        300
    
    Conditions:
    Type                 OK    Age  Reason
    ConfigurationsReady  true  75s
    Ready                true  62s
    RoutesReady          true  62s
    
    Events:
    Type    Reason   Age    Source              Messages
    Normal  Created  2m11s  service-controller  Created Configuration "myapp"
    Normal  Created  2m11s  service-controller  Created Route "myapp"
    
    Instances:
    Name                                       Revision       Running  Status       Restarts  Age
    myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8  myapp-hc3u8-1  1/2      Terminating  0         2m10s
    myapp-hc3u8-2-deployment-7f98b679d5-2hskr  myapp-hc3u8-2  2/2      Terminating  0         85s
    

    Na saída na seção Revisões, é possível ver a revisão de aplicativo mais recente do serviço myapp. Além disso, observe que 100% do tráfego para o aplicativo está executando a revisão mais recente do app.

  4. Configure o VPE para acessar seu app com um terminal privado.

Atualizando um app para referenciar uma imagem diferente

É possível atualizar o seu app para referenciar uma imagem diferente

A imagem associada à sua revisão de aplicativo específica tem uma compilação de registro de contêiner exclusiva e o Code Engine usa essa compilação para a vida de sua revisão de aplicativo. Se você criar uma versão mais recente de uma imagem com a mesma tag que a imagem original, a imagem original será sobrescrita no registro de contêiner e se tornará não identificada A imagem mais recente é identificada e essa imagem mais recente tem uma compilação diferente.... Seu aplicativo Code Engine não usa essa imagem mais recente, porque a imagem mais nova tem uma compilação diferente da imagem referenciada pela revisão do aplicativo. Code Engine ainda pode criar novas instâncias da revisão do aplicativo, desde que a imagem não identificada, que foi referenciada originalmente, ainda exista. Para obter mais informações, consulte Por que o Code Engine não pode extrair uma imagem?

Atualizando um app para referenciar uma imagem diferente no Container Registry por meio do console

Atualize um aplicativo para referenciar uma imagem diferente em um registro de contêiner usando o console do Code Engine.

Neste exemplo, vamos atualizar o helloapp que você criou em Implementando um aplicativo que referencia uma imagem em um registro de contêiner por meio do console para referenciar uma imagem diferente. O app atualizado referencia a imagem helloworld_repo no namespace mynamespace2 no Container Registry. As etapas a seguir descrevem a inclusão de acesso em um registro durante a atualização de um app.

Para obter mais informações sobre como incluir uma imagem no Container Registry, consulte Introdução ao IBM Cloud Container Registry.

  1. Navegue para a página do aplicativo. Uma maneira de navegar para a página do aplicativo é

    • Localize a página Code Engine Projetos.
    • Clique no nome do seu projeto para abrir a página Overview (Visão geral).
    • Clique em Aplicativos para abrir uma lista de seus aplicativos. Clique no nome do seu aplicativo para abrir a página do aplicativo.
  2. Clique na guia Configuration (Configuração ) para abrir os detalhes de configuração da última revisão do aplicativo.

  3. Na guia Configuração. Clique na guia Código

  4. Para que a Imagem seja executada, clique em Configurar imagem para abrir o diálogo Configurar imagem. Para este exemplo, atualize o app para fazer referência a um registro ibmcregistry existente, selecione o namespace mynamespace2, selecione a imagem helloworld-repo e selecione 1 como o valor da tag. Na página de configuração da imagem,

    • Se a imagem que você deseja usar residir na mesma conta Container Registry, selecione o acesso para o registro.
    • Se a imagem que você deseja usar residir em uma conta de registro de contêiner diferente, é possível selecionar o acesso de registro para esse registro. Se o acesso do registro não existir, deve-se primeiro criar sua chave de API do IAM e, em seguida, Incluir acesso de registro ao Code Engine.

    Se quiser atualizar apenas o acesso ao registro da sua imagem, você pode fazer essa alteração sem clicar em Configurar imagem para abrir a caixa de diálogo Configurar imagem e usar o menu Acesso ao registro para selecionar um acesso ao registro existente ou criar um acesso ao registro para Code Engine para a imagem referenciada pelo seu aplicativo.

  5. Clique em Pronto. Você selecionou a sua imagem no registro para referenciá-la no seu app.

  6. Clique em Deploy para salvar as alterações e implementar a revisão do aplicativo.

  7. Após o status do aplicativo mudar para Pronto, será possível testar a revisão do app. Clique em Testar aplicativo e, em seguida, clique em Enviar solicitação na área de janela Testar aplicativo. Para abrir o aplicativo em uma página da web, clique em URL do aplicativo. Para este app, Hello World from Code Engine é exibido.

Atualizando um app para referenciar uma imagem diferente no Container Registry com a CLI

Atualize um aplicativo para referenciar uma imagem diferente no Container Registry por meio da CLI do Code Engine.

Para este exemplo, atualize o myhelloapp que você criou em Implementando um aplicativo que faz referência a uma imagem em um registro de contêiner com a CLI para fazer referência a uma imagem diferente em um namespace diferente na mesma conta. Atualize o app para referenciar a imagem helloworld_repo no namespace mynamespace2 no Container Registry.

  1. Inclua uma imagem diferente no Container Registry. Para este exemplo, inclua a imagem helloworld_repo no namespace mynamespace2 no Container Registry. Para obter mais informações sobre como incluir uma imagem no Container Registry, consulte Introdução ao IBM Cloud Container Registry.

  2. Inclua o acesso de registro ao Code Engine. Para este exemplo, como a imagem helloworld_repo reside na mesma conta, use o acesso de registro myregistry definido anteriormente.

  3. Atualize o seu app e referencie a imagem no Container Registry usando o acesso myregistry. Por exemplo, atualize o app myhelloapp para referenciar o us.icr.io/mynamespace2/helloworld_repo usando as informações de acesso do myregistry.

    ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace2/helloworld_repo:1 --registry-secret myregistry
    

    O formato do nome da imagem para esse aplicativo é REGISTRY/NAMESPACE/REPOSITORY:TAG, em que REGISTRY e TAG são opcionais. Se REGISTRY não for especificado, o padrão será docker.io. Se TAG não for especificado, o padrão será latest.

  4. Depois que seu app for atualizado, será possível acessá-lo. Para obter a URL de seu app, execute ibmcloud ce app get --name myhelloapp --output url. Ao executar curl no app myhelloapp, ele retorna Hello World from Code Engine, o que demonstra que ele agora está usando a imagem helloworld_repo.

Atualizando um app para fazer referência a uma imagem que é construída a partir do código-fonte do console

Atualize um aplicativo para fazer referência a uma imagem que é construída a partir do código-fonte usando o console Code Engine.

Para este exemplo, vamos atualizar o helloapp que você criou em Implementando um aplicativo que faz referência a uma imagem em um registro de container a partir do console para referenciar uma imagem que é construída a partir de seu código-fonte.

Para obter mais informações sobre a criação de uma configuração de construção a partir do console, consulte criar uma configuração .

  1. Navegue para a página do aplicativo. Uma maneira de navegar para a página do aplicativo é
    • Localize a página Code Engine Projetos.
    • Clique no nome do seu projeto para abrir a página Overview (Visão geral).
    • Clique em Aplicativos para abrir uma lista de seus aplicativos. Clique no nome do seu aplicativo para abrir a página do aplicativo.
  2. Clique na guia Configuration (Configuração ) para abrir os detalhes de configuração da última revisão do aplicativo.
  3. Na guia Configuração. Clique na guia Código
  4. A partir da guia Código, é possível criar uma construção de imagem ou executar novamente uma construção de imagem existente que é referenciada por seu aplicativo. Para criar uma construção de imagem, clique em Criar imagem a partir da origem para executar uma construção de imagem. A página Especificar detalhes de construção é aberta, em que é possível inserir os detalhes de sua construção para implementar seu aplicativo a partir do código-fonte. Clique em Concluído quando as atualizações de detalhes de construção forem especificadas.
  5. Clique em Implantar para salvar suas alterações, executar a compilação e implantar a revisão do aplicativo.
  6. Após o status do aplicativo mudar para Pronto, será possível testar a revisão do app. Clique em Testar aplicativo e, em seguida, clique em Enviar solicitação na área de janela Testar aplicativo. Para abrir o aplicativo em uma página da web, clique em URL do aplicativo.
  7. Para atualizar esse aplicativo novamente para fazer referência a uma imagem de compilação atualizada. Clique em Executar compilação na guia Código e especifique uma tag de imagem exclusiva para a imagem de compilação atualizada. Se desejar fazer mais mudanças nos detalhes da construção, clique em Editar detalhes da construção. A página Especificar detalhes de construção é aberta, em que é possível inserir os detalhes de sua construção para implementar seu aplicativo a partir do código-fonte. Clique em Concluído quando as atualizações de detalhes de construção forem especificadas.
  8. Clique em Deploy para salvar suas alterações, executar a compilação com suas alterações e implementar a revisão do aplicativo.
  9. Após o status do aplicativo mudar para Pronto, será possível testar a revisão do app. Clique em Testar aplicativo e, em seguida, clique em Enviar solicitação na área de janela Testar aplicativo. Para abrir o aplicativo em uma página da web, clique em URL do aplicativo.

Atualizando um app para fazer referência a uma imagem que é construída a partir do código-fonte com a CLI

Atualize um aplicativo para fazer referência a uma imagem que é construída a partir do código-fonte usando a CLI do Code Engine.

Para este exemplo, vamos mudar o myhelloapp que você atualizou em Atualizando um app para referenciar uma imagem diferente no Container Registry com a CLI para referenciar uma imagem diferente que é construída a partir de seu código-fonte.

A partir do exemplo anterior, o app myhelloapp referencia o us.icr.io/mynamespace2/helloworld_repo usando as informações de acesso do myregistry. Vamos criar uma configuração de construção, executar a construção e atualizar o myhelloapp para fazer referência à imagem que foi construída a partir do código-fonte.

  1. Crie a configuração de construção. Por exemplo, o comando build create a seguir cria uma configuração de construção que é chamada helloworld-build. Esta configuração é construída por meio do repositório Git público https://github.com/IBM/CodeEngine, usa a estratégia dockerfile e o tamanho de construção medium, e armazena a imagem para us.icr.io/mynamespace/codeengine-helloworld usando o segredo de registro de imagem definido em myregistry.

    ibmcloud ce build create --name helloworld-build --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --commit main --context-dir /hello --strategy dockerfile --size medium
    
  2. Execute a construção. Este exemplo executa uma construção que é chamada de helloworld-build-run e usa a configuração de construção helloworld-build.

    ibmcloud ce buildrun submit --build helloworld-build --name helloworld-build-run
    

    A saída a seguir exibe os detalhes da execução de construção ao usar o comando ibmcloud ce buildrun get.

    Saída de exemplo

    Getting build run 'helloworld-build-run'...
    [...]
    OK
    
    Name:          helloworld-build-run  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111  
    Age:           21m  
    Created:       2021-09-30T14:50:13-05:00  
    
    Summary:  Succeeded  
    Status:   Succeeded  
    Reason:   All Steps have completed executing
    
    Image:  us.icr.io/mynamespace/codeengine-helloworld
    
    

    Para obter mais informações sobre a criação de uma configuração de compilação com a CLI, consulte Criar uma construção.

  3. Atualize o myhelloapp para referenciar a imagem que você construiu e que usa o segredo de registro myregistry.

    ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry
    
  4. Exiba informações sobre o aplicativo atualizado para confirmar se a imagem referenciada é a imagem que você construiu.

    ibmcloud ce app get --name myhelloapp
    

    Saída de exemplo

    [...]
    OK
    
    Name:               myhelloapp
    ID:                 abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:       myproject
    Project ID:         01234567-abcd-abcd-abcd-abcdabcd1111
    Age:                2m4s
    Created:            2021-09-09T14:01:02-04:00
    URL:                https://myhelloapp.abcdabcdabc.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myhelloapp.abcdabcdabc.svc.cluster.local
    Console URL:        https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myhelloapp/configuration
    Status Summary:     Application deployed successfully
    
    Environment Variables:    
        Type     Name             Value  
        Literal  CE_API_BASE_URL  https://api.private.us-south.codeengine.cloud.ibm.com
        Literal  CE_APP           myhelloapp  
        Literal  CE_DOMAIN        us-south.codeengine.appdomain.cloud  
        Literal  CE_PROJECT_ID    abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
        Literal  CE_REGION        us-south  
        Literal  CE_SUBDOMAIN     abcdabcdab
    Image:                  us.icr.io/mynancesnamespace/codeengine-helloworld
    Resource Allocation:
    CPU:                1
    Ephemeral Storage:  400M
    Memory:             4G
    Registry Secrets:
    myregistry
    
    Revisions:
    helloapp-00003:
        Age:                2m46s
        Latest:             true
        Traffic:            100%
        Image:              us.icr.io/mysnamespace/codeengine-helloworld (pinned to eeca2b)
        Running Instances:  1
    [...]