Partilhar via


Compreender a definição ImageStoreConnectionString

Em alguns de nossos documentos, mencionamos brevemente a existência de um parâmetro "ImageStoreConnectionString" sem descrever o que ele realmente significa. E depois de passar por um artigo como Implantar e remover aplicativos usando o PowerShell, parece que tudo o que você faz é copiar/colar o valor, conforme mostrado no manifesto do cluster de destino. Portanto, a configuração deve ser configurável por cluster, mas quando você cria um cluster por meio do portal do Azure, não há opção para definir essa configuração e é sempre "fabric:ImageStore". Qual é então o objetivo dessa configuração?

Manifesto do cluster

O Service Fabric começou como uma plataforma para consumo interno da Microsoft por muitas equipes diversas, então alguns aspetos dele são altamente personalizáveis - a "Loja de Imagens" é um desses aspetos. Essencialmente, o Image Store é um repositório conectável para armazenar pacotes de aplicativos. Quando seu aplicativo é implantado em um nó no cluster, esse nó baixa o conteúdo do pacote do aplicativo do Repositório de Imagens. O ImageStoreConnectionString é uma configuração que inclui todas as informações necessárias para clientes e nós encontrarem o armazenamento de imagens correto para um determinado cluster.

Atualmente, existem três tipos possíveis de provedores de armazenamento de imagens e suas cadeias de conexão correspondentes são as seguintes:

  1. Serviço de Loja de Imagens: "fabric:ImageStore"

  2. Sistema de arquivos: "file:[file system path]"

  3. Armazenamento do Azure: "xstore:DefaultEndpointsProtocol=https; AccountName=[...]; AccountKey=[...]; Contentor=[...]"

O tipo de provedor usado na produção é o Serviço de Armazenamento de Imagens, que é um serviço de sistema persistente com monitoração de estado que você pode ver no Service Fabric Explorer.

Serviço de armazenamento de imagens

Hospedar o Image Store em um serviço do sistema dentro do próprio cluster elimina dependências externas para o repositório de pacotes e nos dá mais controle sobre a localidade de armazenamento. Melhorias futuras em torno da Loja de Imagens provavelmente terão como alvo o provedor da Loja de Imagens primeiro, se não exclusivamente. A cadeia de conexão para o provedor de serviços de armazenamento de imagens não tem informações exclusivas, pois o cliente já está conectado ao cluster de destino. O cliente só precisa saber que os protocolos direcionados ao serviço do sistema devem ser usados.

O provedor de sistema de arquivos é usado em vez do Serviço de Armazenamento de Imagens para clusters locais de caixa única durante o desenvolvimento para inicializar o cluster um pouco mais rápido. A diferença é normalmente pequena, mas é uma otimização útil para a maioria das pessoas durante o desenvolvimento. Também é possível implantar um cluster local de caixa única com os outros tipos de provedor de armazenamento, mas geralmente não há motivo para isso, já que o fluxo de trabalho de desenvolvimento/teste permanece o mesmo, independentemente do provedor. O provedor de Armazenamento do Azure só existe para suporte herdado de clusters antigos implantados antes da introdução do provedor de Serviço de Repositório de Imagens.

Além disso, nem o provedor de Sistema de Arquivos ou o provedor de Armazenamento do Azure deve ser usado como um método de compartilhamento de um Repositório de Imagens entre vários clusters - isso resultará em corrupção dos dados de configuração do cluster, pois cada cluster pode gravar dados conflitantes no Repositório de Imagens. Para compartilhar pacotes de aplicativos provisionados entre vários clusters, use arquivos sfpkg , que podem ser carregados em qualquer armazenamento externo com um URI de download.

Portanto, enquanto o ImageStoreConnectionString é configurável, basta usar a configuração padrão. Ao publicar no Azure por meio do Visual Studio, o parâmetro é definido automaticamente para você de acordo. Para implantação programática em clusters hospedados no Azure, a cadeia de conexão é sempre "fabric:ImageStore". Embora em caso de dúvida, seu valor sempre pode ser verificado recuperando o manifesto do cluster pelo PowerShell, .NET ou REST. Os clusters de teste local e de produção devem sempre ser configurados para usar o provedor de Serviços de Armazenamento de Imagens também.

Próximos passos

Implantar e remover aplicativos usando o PowerShell