Cachelagring av distributionsstatus

Kommandot aspire deploy hanterar distributionstillståndet via cachelagrade konfigurationsfiler som lagras lokalt på datorn. Den här cachelagringsmekanismen effektiviserar upprepade distributioner genom att bevara etableringsinställningar och parametrar, vilket gör efterföljande distributioner snabbare och effektivare.

Standardbeteende

Kommandot aspire deploy hanterar automatiskt distributionstillstånd baserat på om cachelagrad konfiguration finns för programmet och målmiljön.

Första distributionen

När du kör aspire deploy för första gången, eller för första gången i ett mål --environment, kommandot:

  1. Frågar efter etableringsinformation (abonnemangs-ID, resursgruppsnamn, plats).
  2. Frågor om distributionsparametrar (till exempel API-nycklar, anslutningssträngar).
  3. Initierar distributionsprocessen.
  4. Sparar alla efterfrågade värden och distributionstillståndet till ~/.aspire/deployments/{AppHostSha}/production.json.

Efterföljande distributioner

Vid efterföljande aspire deploy körningar kommer kommandot att:

  1. Identifierar den befintliga distributionstillståndsfilen på ~/.aspire/deployments/{AppHostSha}/production.json.
  2. Meddelar dig att inställningarna kommer att läsas från den cachelagrade filen.
  3. Uppmanar till bekräftelse för att läsa in de cachelagrade inställningarna.
  4. Läser in konfigurationen från den cachelagrade filen till konfigurationsprovidern.
  5. Fortsätter med implementeringen med de cachelagrade värdena utan att fråga igen.

Miljöspecifika distributioner

Olika distributionsmiljöer (till exempel utveckling, mellanlagring och produktion) kräver vanligtvis olika konfigurationer, resursnamn och anslutningssträngar. Kommandot aspire deploy stöder miljöspecifika distributioner, vilket säkerställer att varje miljö upprätthåller isolerat distributionstillstånd.

Ange en miljö

--environment Använd flaggan för att distribuera till olika miljöer:

aspire deploy --environment staging

Första distributionen till en specifik miljö:

  • Frågar efter all etablerings- och parameterinformation.
  • Sparar distributionstillståndet till ~/.aspire/deployments/{AppHostSha}/{environment}.json (till exempel staging.json).

Efterföljande distributioner:

  • Läser den miljöspecifika cachelagrade filen.
  • Läser in konfigurationen från det cachelagrade tillståndet.
  • Använder cachelagrade värden utan att fråga.

Stöd för miljövariabler

Distributionsmiljön kan också anges med hjälp av DOTNET_ENVIRONMENT miljövariabeln:

export DOTNET_ENVIRONMENT=staging && aspire deploy

Detta fungerar identiskt med att använda --environment flaggan och läser in lämplig cachelagrad konfigurationsfil.

Cachehantering

Kommandot aspire deploy innehåller mekanismer för att hantera cachelagrat distributionstillstånd, vilket ger dig kontroll över när du ska använda cachelagrade värden och när du ska börja om.

Rensa cachen

--clear-cache Använd flaggan för att återställa distributionstillståndet:

aspire deploy --clear-cache

Uppförande:

  1. Uppmanar till bekräftelse innan cacheminnet tas bort för den angivna miljön.
  2. Tar bort den miljöspecifika distributionstillståndsfilen (till exempel ~/.aspire/deployments/{AppHostSha}/production.json).
  3. Frågar efter all provisionerings- och parameterinformation som vid distribution för första gången.
  4. Fortsätter med distributionen.
  5. Sparar inte de begärda värdena för cachelagring.

Miljöspecifik cacherensning

Flaggan --clear-cache respekterar miljökontexten:

aspire deploy --environment staging --clear-cache

Detta rensar endast staging.json cachefil samtidigt som andra miljöers cachefiler (som production.json) lämnas intakta.

Fillagringsplats

  • Sökvägsmönster:~/.aspire/deployments/{AppHostSha}/{environment}.json.
  • Standardmiljö:production.
  • AppHostSha: Ett hash-värde som representerar programvärdkonfigurationen, vilket säkerställer att distributionstillstånden är specifika för varje programkonfiguration.

Använda distributionsstatus i CI/CD-pipelines

När du använder aspire deploy-kommandot i CI/CD-pipelines (kontinuerlig integration och kontinuerlig leverans) kan du vilja bevara deployeringstillståndet mellan pipelinekörningar. Den här metoden kan vara användbar för att upprätthålla konsekventa distributionskonfigurationer utan manuella åtgärder.

GitHub Åtgärdsexempel

I följande exempel visas hur du cachelagrar distributionstillståndet i ett GitHub åtgärdsarbetsflöde med hjälp av åtgärden actions/cache :

name: Deploy to Azure

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    
    - name: Cache Aspire deployment state
      uses: actions/cache@v4
      with:
        path: ~/.aspire/deployments
        key: aspire-deploy-${{ hashFiles('**/AppHost.csproj') }}-${{ github.ref }}
        restore-keys: |
          aspire-deploy-${{ hashFiles('**/AppHost.csproj') }}-
          aspire-deploy-
    
    - name: Deploy with Aspire CLI
      run: aspire deploy --environment production
      env:
        AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }}

Det här arbetsflödet cachelagrar katalogen ~/.aspire/deployments med hjälp av AppHost-projektfilens hash- och grenreferens som cachenycklar. Åtgärden actions/cache återställer automatiskt cachen innan distributionssteget och sparar alla uppdateringar i cacheminnet när jobbet har slutförts. Efterföljande arbetsflödeskörningar återställer det cachelagrade distributionstillståndet, vilket tillåter automatiserade distributioner utan att fråga efter konfigurationsvärden igen.

Försiktighet

När distributionstillståndet cachelagras i CI/CD-pipelines kontrollerar du att din pipeline har lämpliga åtkomstkontroller och hemliga hanteringsmetoder på plats, eftersom det cachelagrade tillståndet kan innehålla känsliga konfigurationsvärden.

Säkerhetsfrågor

Distributionstillståndsfilerna lagras lokalt på datorn i katalogen ~/.aspire/deployments . Dessa filer innehåller etableringsinställningar och parametervärden, inklusive hemligheter som kan vara associerade med parameterresurser. Kommandot aspire deploy följer samma säkerhetsmönster som .NEThanteraren för användarhemligheter:

  • Filer lagras utanför källkoden för att undvika oavsiktliga hemliga läckor i versionskontrollen.
  • Hemligheter lagras i oformaterad text i det lokala filsystemet.
  • Alla processer som körs under ditt användarkonto kan komma åt dessa filer.

Tänk på de här rekommenderade säkerhetsmetoderna:

  • Se till att din lokala dator har lämpliga säkerhetsåtgärder på plats.
  • Var försiktig när du delar eller säkerhetskopierar filer från katalogen ~/.aspire/deployments .
  • --clear-cache Använd flaggan när du behöver ändra känsliga parametervärden.

Huvudpunkter

  • Varje miljö har ett eget isolerat driftstillstånd.
  • Cachelagrade värden bevaras mellan distributioner om de inte uttryckligen rensas.
  • Flaggan --clear-cache utför en engångsdistribution utan att spara nya värden.
  • Miljöval kan anges via flagga eller miljövariabel.
  • Du uppmanas att bekräfta när du läser in cachelagrade inställningar.
  • Cachefiler lagras per program (via AppHostSha) och per miljö.

Se även