Noções básicas sobre a configuração ImageStoreConnectionString
Em algumas das documentações, devemos mencionar brevemente a existência de um parâmetro "ImageStoreConnectionString" sem descrevendo o que realmente significa. E depois de passar por um artigo como Implantar e remover aplicativos usando o PowerShell, tudo o que você faz é copiar / colar o valor, conforme mostrado no manifesto do cluster do cluster de destino. Então, a configuração deve ser configurável por cluster, mas quando você cria um cluster por meio de portal do Azure, não há nenhuma opção para definir esta configuração e é sempre "fabric: ImageStore". Qual é a finalidade dessa configuração?
O Service Fabric começou como uma plataforma para consumo interno da Microsoft por muitas equipes diferentes, para alguns aspectos são altamente personalizáveis - o repositório"imagem" é um aspecto tal. Essencialmente, o armazenamento de imagens é um repositório conectável para armazenar pacotes de aplicativos. Quando seu aplicativo é implantado em um nó no cluster, o nó baixa o conteúdo de seu pacote de aplicativos do repositório de imagem. ImageStoreConnectionString é uma configuração que inclui todas as informações necessárias para clientes e nós localizar o armazenamento correto de imagem de um determinado cluster.
Existem três tipos possíveis de provedores de armazenamento de imagens e suas cadeias de conexão correspondentes são os seguintes:
Serviço de Armazenamento de Imagens: "fabric:ImageStore"
Sistema de Arquivos: "file:[caminho do sistema de arquivos]"
Armazenamento do Azure: "xstore:DefaultEndpointsProtocol=https;AccountName=[...];AccountKey=[...];Container=[...]"
O tipo de provedor usado na produção é o serviço de armazenamento de imagem, que é um serviço de sistema persistente com monitoração de estado que você pode ver no Service Fabric Explorer.
O armazenamento de imagens em um serviço de sistema dentro do próprio cluster de hospedagem elimina as dependências externas para o repositório de pacotes e nos dá mais controle sobre a localidade de armazenamento. As melhorias futuras no armazenamento de imagens do têm probabilidade do provedor de armazenamento de imagens de destino, primeiro, se não exclusivamente. A cadeia de conexão para o provedor de serviço de armazenamento de imagem não tem nenhuma informação exclusiva desde que o cliente já está conectado ao cluster de destino. O cliente só precisa saber que protocolos direcionando o serviço do sistema devem ser usados.
O provedor do sistema de arquivos é usado em vez do serviço de armazenamento de imagem para clusters de uma caixa locais durante o desenvolvimento para inicializar o cluster ligeiramente mais rápido. A diferença é normalmente pequena, mas é uma otimização útil para a maioria das pessoas durante o desenvolvimento. É possível implantar um cluster local de uma caixa com os outros provedor tipos de armazenamento, bem, mas geralmente não há nenhum motivo para fazer isso, já que o fluxo de trabalho de desenvolvimento/teste permanece o mesmo, independentemente do provedor. O provedor de Armazenamento do Microsoft Azure existe somente para suporte herdado de clusters antigos implantados antes que o provedor de Serviço de Repositório de Imagens foi introduzido.
Além disso, o provedor do sistema de arquivos ou o provedor de armazenamento do Azure não deve ser usado como um método de compartilhamento de um armazenamento de imagem entre vários clusters - isso resultará em corrupção de dados de configuração de cluster como cada cluster pode gravar dados conflitantes para o armazenamento de imagem. Para compartilhar pacotes de aplicativos provisionados entre vários clusters, use os arquivos sfpkg, que podem ser carregados em qualquer repositório externo com um URI de download.
Portanto, embora ImageStoreConnectionString é configurável, você simplesmente usa a configuração padrão. Ao publicar no Azure por meio do Visual Studio, o parâmetro será definido automaticamente para você de forma adequada. Para implantação programática em clusters hospedados no Azure, a cadeia de conexão sempre será "fabric: ImageStore". Entretanto, em caso de dúvida, seu valor pode ser verificado sempre por meio da recuperação do manifesto do cluster pelo PowerShell, .NET ou REST. Os clusters de teste e de produção locais sempre deverão estar configurados para usar o provedor do Serviço de repositório de imagens também.