Gerenciar um aplicativo do Azure Service Fabric usando a CLI do Azure Service Fabric (sfctl)
Saiba como criar e excluir aplicativos que estão sendo executados em um cluster do Azure Service Fabric.
Pré-requisitos
Instale a CLI do Service Fabric. Em seguida, selecione o cluster do Service Fabric. Para obter mais informações, consulte Introdução à CLI do Service Fabric.
Tenha um pacote de aplicativo do Service Fabric pronto para ser implantado. Para obter mais informações sobre como criar e empacotar um aplicativo, leia sobre o modelo de aplicativo do Service Fabric.
Descrição geral
Para implantar um novo aplicativo, conclua estas etapas:
- Carregue um pacote de aplicativo no repositório de imagens do Service Fabric.
- Provisionar um tipo de aplicativo.
- Exclua o conteúdo do armazenamento de imagens.
- Especifique e crie um aplicativo.
- Especifique e crie serviços.
Para remover um aplicativo existente, conclua estas etapas:
- Exclua o aplicativo.
- Desprovisione o tipo de aplicativo associado.
Implantar um novo aplicativo
Para implantar um novo aplicativo, conclua as seguintes tarefas:
Carregar um novo pacote de aplicativos para o armazenamento de imagens
Antes de criar um aplicativo, carregue o pacote do aplicativo no repositório de imagens do Service Fabric.
Por exemplo, se o pacote do app_package_dir
aplicativo estiver no diretório, use os seguintes comandos para carregar o diretório:
sfctl application upload --path ~/app_package_dir
Para pacotes de aplicativos grandes, você pode especificar a --show-progress
opção para exibir o progresso do upload.
Provisionar o tipo de aplicativo
Quando o carregamento estiver concluído, provisione o aplicativo. Para provisionar o aplicativo, use o seguinte comando:
sfctl application provision --application-type-build-path app_package_dir
O valor for application-type-build-path
é o nome do diretório onde você carregou o pacote do aplicativo.
Excluir o pacote do aplicativo
É recomendável remover o pacote do aplicativo depois que o aplicativo for registrado com êxito. A exclusão de pacotes de aplicativos do armazenamento de imagens libera recursos do sistema. Manter pacotes de aplicativos não utilizados consome armazenamento em disco e leva a problemas de desempenho do aplicativo.
Para excluir o pacote do aplicativo do armazenamento de imagens, use o seguinte comando:
sfctl store delete --content-path app_package_dir
content-path
deve ser o nome do diretório que você carregou quando criou o aplicativo.
Criar um aplicativo a partir de um tipo de aplicativo
Depois de provisionar o aplicativo, use o seguinte comando para nomear e criar seu aplicativo:
sfctl application create --app-name fabric:/TestApp --app-type TestAppType --app-version 1.0
app-name
é o nome que você deseja usar para a instância do aplicativo. Você pode obter parâmetros adicionais do manifesto do aplicativo provisionado anteriormente.
O nome do aplicativo deve começar com o prefixo fabric:/
.
Criar serviços para o novo aplicativo
Depois de criar um aplicativo, crie serviços a partir do aplicativo. No exemplo a seguir, criamos um novo serviço sem estado a partir de nosso aplicativo. Os serviços que você pode criar a partir de um aplicativo são definidos em um manifesto de serviço no pacote de aplicativo provisionado anteriormente.
sfctl service create --app-id TestApp --name fabric:/TestApp/TestSvc --service-type TestServiceType \
--stateless --instance-count 1 --singleton-scheme
Verificar a implantação e a integridade do aplicativo
Para verificar se tudo está íntegro, use os seguintes comandos de integridade:
sfctl application list
sfctl service list --application-id TestApp
Para verificar se o serviço está íntegro, use comandos semelhantes para recuperar a integridade do serviço e do aplicativo:
sfctl application health --application-id TestApp
sfctl service health --service-id TestApp/TestSvc
Serviços e aplicativos saudáveis têm um HealthState
valor de Ok
.
Remover um aplicativo existente
Para remover um aplicativo, conclua as seguintes tarefas:
Excluir o aplicativo
Para excluir o aplicativo, use o seguinte comando:
sfctl application delete --application-id TestEdApp
Desprovisionar o tipo de aplicativo
Depois de excluir o aplicativo, você pode desprovisionar o tipo de aplicativo se não precisar mais dele. Para desprovisionar o tipo de aplicativo, use o seguinte comando:
sfctl application unprovision --application-type-name TestAppType --application-type-version 1.0
O nome do tipo e a versão do tipo devem corresponder ao nome e à versão no manifesto do aplicativo provisionado anteriormente.
Atualizar aplicativo
Depois de criar seu aplicativo, você pode repetir o mesmo conjunto de etapas para provisionar uma segunda versão do seu aplicativo. Em seguida, com uma atualização do aplicativo Service Fabric, você pode fazer a transição para a execução da segunda versão do aplicativo. Para obter mais informações, consulte a documentação sobre atualizações de aplicativos do Service Fabric.
Para executar uma atualização, primeiro provisione a próxima versão do aplicativo usando os mesmos comandos anteriores:
sfctl application upload --path ~/app_package_dir_2
sfctl application provision --application-type-build-path app_package_dir_2
sfctl store delete --content-path app_package_dir_2
Recomenda-se, então, executar uma atualização automática monitorada, iniciar a atualização executando o seguinte comando:
sfctl application upgrade --app-id TestApp --app-version 2.0.0 --parameters "{\"test\":\"value\"}" --mode Monitored
As atualizações substituem os parâmetros existentes com qualquer conjunto especificado. Os parâmetros do aplicativo devem ser passados como argumentos para o comando upgrade, se necessário. Os parâmetros do aplicativo devem ser codificados como um objeto JSON.
Para recuperar quaisquer parâmetros especificados anteriormente, você pode usar o sfctl application info
comando.
Quando uma atualização de aplicativo está em andamento, o status pode ser recuperado usando o sfctl application upgrade-status
comando.
Finalmente, se uma atualização estiver em andamento e precisar ser cancelada, você poderá usar o sfctl application upgrade-rollback
para reverter a atualização.