Informazioni sull'impostazione ImageStoreConnectionStringUnderstand the ImageStoreConnectionString setting

In alcuni documenti di Microsoft si accenna brevemente all'esistenza di un parametro "ImageStoreConnectionString" senza che descriverne il significato reale.In some of our documentation, we briefly mention the existence of an "ImageStoreConnectionString" parameter without describing what it really means. E dopo aver consultato un articolo come Deploy and remove applications using PowerShell (Distribuire e rimuovere applicazioni tramite PowerShell), sembra che sia sufficiente copiare e incollare il valore così come viene visualizzato nel manifesto del cluster del cluster di destinazione.And after going through an article like Deploy and remove applications using PowerShell, it looks like all you do is copy/paste the value as it appears in the cluster manifest of the target cluster. L'impostazione quindi deve essere configurabile per ogni cluster, ma quando si crea un cluster nel Portale di Azure, non è possibile configurare questa impostazione che è sempre "fabric:ImageStore".So the setting must be configurable per cluster, but when you create a cluster through the Azure portal, there's no option to configure this setting and it's always "fabric:ImageStore". Qual è lo scopo di questa impostazione quindi?What's the purpose of this setting then?

Manifesto del cluster

Service Fabric inizialmente era una piattaforma usata da diversi team di Microsofti, pertanto alcuni aspetti sono altamente personalizzabili e "Archivio immagini" è uni di questi aspetti.Service Fabric started off as a platform for internal Microsoft consumption by many diverse teams, so some aspects of it are highly customizable - the "Image Store" is one such aspect. In pratica, l'Archivio di immagini è un repository collegabile per l'archiviazione dei pacchetti di applicazioni.Essentially, the Image Store is a pluggable repository for storing application packages. Quando l'applicazione viene distribuita in un nodo del cluster, tale nodo scarica il contenuto del pacchetto dell'applicazione da Archivio immagini.When your application is deployed to a node in the cluster, that node downloads the contents of your application package from the Image Store. ImageStoreConnectionString è un'impostazione che include tutte le informazioni necessarie sia per i client che per i nodi utile a trovare l'Archivio immagini corretto per un determinato cluster.The ImageStoreConnectionString is a setting that includes all the necessary information for both clients and nodes to find the correct Image Store for a given cluster.

Esistono attualmente tre tipi possibili di provider i Archivio immagini e le relative stringhe di connessione sono le seguenti:There are currently three possible kinds of Image Store providers and their corresponding connection strings are as follows:

  1. Servizio di archiviazione immagini: "fabric:ImageStore"Image Store Service: "fabric:ImageStore"

  2. File System: "file:[file system path]"File System: "file:[file system path]"

  3. Archiviazione di Azure: "xstore:DefaultEndpointsProtocol=https;AccountName=[...];AccountKey=[...];Container=[...]"Azure Storage: "xstore:DefaultEndpointsProtocol=https;AccountName=[...];AccountKey=[...];Container=[...]"

Il tipo di provider utilizzato nell'ambiente di produzione è il Servizio di archiviazione immagini, che è un servizio di sistema persistente con stato che è possibile visualizzare da Service Fabric Explorer.The provider type used in production is the Image Store Service, which is a stateful persisted system service that you can see from Service Fabric Explorer.

Servizio di archiviazione immagini

Ospitare Archivio immagini in un servizio di sistema all'interno del cluster stesso elimina le dipendenze esterne per il repository del pacchetto e offre un maggiore controllo sulla posizione di archiviazione.Hosting the Image Store in a system service within the cluster itself eliminates external dependencies for the package repository and gives us more control over the locality of storage. È probabile che i miglioramenti futuri di Archivio immagini riguarderanno prima di tutto, o in esclusivamente, il provider di Archivio immagini.Future improvements around the Image Store are likely to target the Image Store provider first, if not exclusively. La stringa di connessione per il provider del Servizio di archiviazione immagini non dispone di informazioni univoche in quanto il client è già connesso al cluster di destinazione.The connection string for the Image Store Service provider doesn't have any unique information since the client is already connected to the target cluster. Per il client è sufficiente sapere che è necessario usare i protocolli per il servizio di sistema.The client only needs to know that protocols targeting the system service should be used.

Il provider di File System viene usato al posto del servizio di archiviazione immagini per i cluster di una casella locali durante lo sviluppo per eseguire il bootstrap del cluster un po' più velocemente.The File System provider is used instead of the Image Store Service for local one-box clusters during development to bootstrap the cluster slightly faster. La differenza generalmente è poca, ma è un'ottimizzazione utile a molti durante lo sviluppo.The difference is typically small, but it's a useful optimization for most folks during development. È possibile distribuire un cluster di una casella locale anche con altri tipi di provider per l'archiviazione, ma in genere non è necessario farlo poiché il flusso di lavoro di sviluppo e test rimane invariato indipendentemente dal provider.It's possible to deploy a local one-box cluster with the other storage provider types as well, but there's usually no reason to do so since the develop/test workflow remains the same regardless of provider. Oltre a questo uso, i provider di File System e di Archiviazione di Azure esistono solo per il supporto legacy.Other than this usage, the File System and Azure Storage providers only exist for legacy support.

Pertanto nonostante ImageStoreConnectionString sia configurabile, generalmente viene usata solo l'impostazione predefinita.So while the ImageStoreConnectionString is configurable, you generally just use the default setting. Durante la pubblicazione in Azure tramite Visual Studio, il parametro viene impostato automaticamente in base alle esigenze dell'utente.When publishing to Azure through Visual Studio, the parameter is automatically set for you accordingly. Per la distribuzione a livello di codice ai cluster ospitati in Azure, la stringa di connessione è sempre "fabric:ImageStore".For programmatic deployment to clusters hosted in Azure, the connection string is always "fabric:ImageStore". In caso di dubbi, il suo valore può essere verificato sempre recuperando il manifesto del cluster da PowerShell, .NET o REST.Though when in doubt, its value can always be verified by retrieving the cluster manifest by PowerShell, .NET, or REST. Sia i test in locale che i cluster di produzione devono essere sempre configurati per poter usare anche il provider del Servizio di archivio immagini.Both on-premises test and production clusters should always be configured to use the Image Store Service provider as well.

Passaggi successiviNext steps

Deploy and remove applications using PowerShell (Distribuire e rimuovere applicazioni con PowerShell)Deploy and remove applications using PowerShell