Meer informatie over de instelling ImageStoreConnectionString

In sommige van onze documentatie noemen we kort het bestaan van een parameter 'ImageStoreConnectionString' zonder te beschrijven wat het echt betekent. En na het doorlopen van een artikel als Toepassingen implementeren en verwijderen met behulp van PowerShell, lijkt het alsof u alleen de waarde kopieert/plakt zoals wordt weergegeven in het clustermanifest van het doelcluster. De instelling moet dus per cluster kunnen worden geconfigureerd, maar wanneer u een cluster maakt via de Azure Portal, is er geen optie om deze instelling te configureren en is deze altijd 'fabric:ImageStore'. Wat is dan het doel van deze instelling?

Clustermanifest

Service Fabric is begonnen als een platform voor intern Microsoft-gebruik door veel verschillende teams, dus sommige aspecten ervan zijn zeer aanpasbaar- de 'Image Store' is een van die aspecten. In wezen is de Installatiekopieënopslag een pluggable opslagplaats voor het opslaan van toepassingspakketten. Wanneer uw toepassing wordt geïmplementeerd op een knooppunt in het cluster, downloadt dat knooppunt de inhoud van uw toepassingspakket uit het installatiekopiearchief. De ImageStoreConnectionString is een instelling die alle benodigde informatie bevat voor zowel clients als knooppunten om het juiste installatiekopiearchief voor een bepaald cluster te vinden.

Er zijn momenteel drie mogelijke soorten providers van Image Store en de bijbehorende verbindingsreeksen zijn als volgt:

  1. Image Store-service: "fabric:ImageStore"

  2. Bestandssysteem: "file:[file system path]"

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

Het providertype dat in productie wordt gebruikt, is de Image Store-service. Dit is een stateful permanente systeemservice die u kunt zien in Service Fabric Explorer.

Image Store-service

Het hosten van de installatiekopieënopslag in een systeemservice binnen het cluster zelf elimineert externe afhankelijkheden voor de pakketopslagplaats en geeft ons meer controle over de locatie van de opslag. Toekomstige verbeteringen in de Installatiekopieënopslag zijn waarschijnlijk eerst gericht op de provider van de afbeeldingsopslag, zo niet uitsluitend. De connection string voor de serviceprovider voor het installatiekopieënarchief bevat geen unieke informatie omdat de client al is verbonden met het doelcluster. De client hoeft alleen te weten dat protocollen die gericht zijn op de systeemservice moeten worden gebruikt.

De bestandssysteemprovider wordt gebruikt in plaats van de Image Store-service voor lokale one-box clusters tijdens de ontwikkeling om het cluster iets sneller te bootstrapen. Het verschil is meestal klein, maar het is een nuttige optimalisatie voor de meeste mensen tijdens de ontwikkeling. Het is mogelijk om ook een lokaal one-box-cluster te implementeren met de andere typen opslagproviders, maar er is meestal geen reden om dit te doen, omdat de werkstroom voor ontwikkelen/testen hetzelfde blijft, ongeacht de provider. De Azure Storage-provider bestaat alleen voor verouderde ondersteuning van oude clusters die zijn geïmplementeerd voordat de Image Store-serviceprovider werd geïntroduceerd.

Bovendien moet de bestandssysteemprovider of de Azure Storage-provider niet worden gebruikt als een methode voor het delen van een installatiekopieënarchief tussen meerdere clusters. Dit leidt tot beschadiging van de clusterconfiguratiegegevens omdat elk cluster conflicterende gegevens naar het installatiekopieënarchief kan schrijven. Als u ingerichte toepassingspakketten wilt delen tussen meerdere clusters, gebruikt u in plaats daarvan sfpkg-bestanden , die met een download-URI kunnen worden geüpload naar een extern archief.

Dus hoewel de ImageStoreConnectionString configureerbaar is, gebruikt u gewoon de standaardinstelling. Bij het publiceren naar Azure via Visual Studio wordt de parameter automatisch voor u ingesteld. Voor programmatische implementatie naar clusters die worden gehost in Azure, is de connection string altijd 'fabric:ImageStore'. Bij twijfel kan de waarde altijd worden geverifieerd door het clustermanifest op te halen via PowerShell, .NET of REST. Zowel on-premises test- als productieclusters moeten altijd worden geconfigureerd voor het gebruik van de serviceprovider voor installatiekopieënopslag.

Volgende stappen

Toepassingen implementeren en verwijderen met PowerShell