Compartilhar via


Modelo de recursos de aplicativo do Service Fabric

Você tem várias opções para implantar aplicativos do Azure Service Fabric em seu cluster do Service Fabric. Recomendamos o uso do Azure Resource Manager. Se você usar o Gerenciador de Recursos, poderá descrever aplicativos e serviços em JSON e implantá-los no mesmo modelo do Gerenciador de Recursos que o cluster. Ao contrário de usar o PowerShell ou a CLI do Azure para implantar e gerenciar aplicativos, se você usar o Gerenciador de Recursos, não precisará esperar que o cluster esteja pronto; O registro, o provisionamento e a implantação de aplicativos podem acontecer em uma única etapa. Usar o Gerenciador de Recursos é a melhor maneira de gerenciar o ciclo de vida do aplicativo em seu cluster. Para obter mais informações, consulte Práticas recomendadas: infraestrutura como código.

Gerenciar seus aplicativos como recursos no Resource Manager pode ajudá-lo a obter melhorias nestas áreas:

  • Trilha de auditoria: o Resource Manager audita todas as operações e mantém um registro de atividades detalhado. Um log de atividades pode ajudá-lo a rastrear quaisquer alterações feitas nos aplicativos e no cluster.
  • Controle de acesso baseado em função: você pode gerenciar o acesso a clusters e aplicativos implantados no cluster usando o mesmo modelo do Gerenciador de Recursos.
  • Eficiência de gerenciamento: o uso do Gerenciador de Recursos oferece um único local (o portal do Azure) para gerenciar suas implantações de cluster e aplicativos críticos.

Neste documento, você aprenderá a:

  • Implante recursos de aplicativos usando o Gerenciador de Recursos.
  • Atualize os recursos do aplicativo usando o Gerenciador de Recursos.
  • Exclua recursos do aplicativo.

Implantar recursos do aplicativo

As etapas de alto nível que você executa para implantar um aplicativo e seus serviços usando o modelo de recursos de aplicativo do Resource Manager são:

  1. Empacote o código do aplicativo.
  2. Carregue o pacote.
  3. Faça referência ao local do pacote em um modelo do Gerenciador de Recursos como um recurso de aplicativo.

Para obter mais informações, consulte Empacotar um aplicativo.

Em seguida, crie um modelo do Resource Manager, atualize o arquivo de parâmetros com os detalhes do aplicativo e implante o modelo no cluster do Service Fabric. Explore amostras.

Criar uma conta de armazenamento

Para implantar um aplicativo a partir de um modelo do Gerenciador de Recursos, você deve ter uma conta de armazenamento. A conta de armazenamento é usada para preparar a imagem do aplicativo.

Você pode reutilizar uma conta de armazenamento existente ou criar uma nova conta de armazenamento para preparar seus aplicativos. Se você usar uma conta de armazenamento existente, poderá ignorar esta etapa.

Criar uma conta de armazenamento

Configurar sua conta de armazenamento

Depois que a conta de armazenamento é criada, você cria um contêiner de blob onde os aplicativos podem ser preparados. No portal do Azure, vá para a conta de Armazenamento do Azure onde você deseja armazenar seus aplicativos. Selecione Blobs>Adicionar contêiner.

Os recursos em seu cluster podem ser protegidos definindo o nível de acesso público como privado. Você pode conceder acesso de várias maneiras:

  • Conceda acesso aos dados de blob e fila do Azure usando o RBAC do Azure no portal do Azure.
  • Delegue o acesso usando uma assinatura de acesso compartilhado.

O exemplo na captura de tela a seguir usa acesso de leitura anônimo para blobs.

Criar blob

Preparar o aplicativo em sua conta de armazenamento

Antes de implantar um aplicativo, você deve prepará-lo no armazenamento de blobs. Neste tutorial, criamos o pacote do aplicativo manualmente. Tenha em mente que esta etapa pode ser automatizada. Para obter mais informações, consulte Empacotar um aplicativo.

Neste tutorial, usamos o aplicativo de exemplo de votação.

  1. No Visual Studio, clique com o botão direito do mouse no projeto de votação e selecione Pacote.

    Aplicação do pacote

  2. Vá para o diretório .\service-fabric-dotnet-quickstart\Voting\pkg\Debug . Compacte o conteúdo em um arquivo chamado Voting.zip. O arquivo ApplicationManifest.xml deve estar na raiz no arquivo zip.

    Aplicação Zip

  3. Renomeie o arquivo para alterar a extensão de .zip para .sfpkg.

  4. No portal do Azure, no contêiner de aplicativos para sua conta de armazenamento, selecione Carregar e carregar Voting.sfpkg.

    Carregar pacote de aplicativos

Agora, o aplicativo agora está preparado e você pode criar o modelo do Gerenciador de Recursos para implantar o aplicativo.

Criar o modelo do Resource Manager

O aplicativo de exemplo contém modelos do Azure Resource Manager que você pode usar para implantar o aplicativo. Os nomes dos arquivos de modelo são UserApp.json e UserApp.Parameters.json.

Nota

O arquivo UserApp.Parameters.json deve ser atualizado com o nome do cluster.

Parâmetro Description Exemplo Comentários
clusterName O nome do cluster no qual você está implantando SF-Cluster123
aplicação O nome do aplicativo Votar
applicationTypeName O nome do tipo do aplicativo Tipo deVoto Deve corresponder ApplicationManifest.xml
applicationTypeVersion A versão do tipo de aplicativo 1.0.0 Deve corresponder ApplicationManifest.xml
nome_do_serviço O nome do serviço Voting~VotingWeb Deve estar no formato ApplicationName~ServiceType
serviceTypeName O nome do tipo do serviço VotingWeb Deve corresponder ServiceManifest.xml
appPackageUrl A URL de armazenamento de blob do aplicativo https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg A URL do pacote de aplicativo no armazenamento de blob (o procedimento para definir a URL é descrito posteriormente no artigo)
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applications",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applicationTypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applicationTypes/versions",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applications/services",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
    "location": "[variables('clusterLocation')]"
}

Implementar a aplicação

Execute o cmdlet New-AzResourceGroupDeployment para implantar o aplicativo no grupo de recursos que contém o cluster:

New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose

Atualizar o aplicativo Service Fabric usando o Gerenciador de Recursos

Importante

Qualquer serviço que esteja sendo implantado por meio da definição JSON ARM deve ser removido da seção DefaultServices do arquivo ApplicationManifest.xml correspondente.

Você pode atualizar um aplicativo que já está implantado em um cluster do Service Fabric por um destes motivos:

  • Um novo serviço é adicionado ao aplicativo. Uma definição de serviço deve ser adicionada aos arquivos service-manifest.xml e application-manifest.xml quando um serviço é adicionado ao aplicativo. Para refletir uma nova versão de um aplicativo, você também deve alterar a versão do tipo de aplicativo de 1.0.0 para 1.0.1 em UserApp.Parameters.json:

    "applicationTypeVersion": {
        "value": "1.0.1"
    },
    "serviceName2": {
        "value": "Voting~VotingData"
    },
    "serviceTypeName2": {
        "value": "VotingDataType"
    }
    
  • Uma nova versão de um serviço existente é adicionada ao aplicativo. Os exemplos incluem alterações no código do aplicativo e atualizações para o tipo de aplicativo, versão e nome. Para esta atualização, atualize UserApp.Parameters.json assim:

     "applicationTypeVersion": {
        "value": "1.0.1"
    },
    

Excluir recursos do aplicativo

Para excluir um aplicativo que foi implantado usando o modelo de recursos do aplicativo no Gerenciador de Recursos:

  1. Use o cmdlet Get-AzResource para obter a ID do recurso para o aplicativo:

    Get-AzResource  -Name <String> | f1
    
  2. Use o cmdlet Remove-AzResource para excluir os recursos do aplicativo:

    Remove-AzResource  -ResourceId <String> [-Force] [-ApiVersion <String>]
    

Perguntas e respostas comuns

Erro: "O nome do aplicativo deve ser um prefixo do nome do serviço" Resposta: Verifique se o nome do serviço está formatado da seguinte forma: ProfileVetSF~CallTicketDataWebApi.

Próximos passos

Obtenha informações sobre o modelo de recursos do aplicativo: