Configurazioni di sincronizzazione dei servizi - AWS Proton

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazioni di sincronizzazione dei servizi

Con la sincronizzazione dei servizi, puoi configurare e distribuire i tuoi AWS Proton servizi utilizzando Git. Puoi usare service sync per gestire le distribuzioni e gli aggiornamenti iniziali del tuo AWS Proton servizio con una configurazione definita in un repository Git. Tramite Git, puoi utilizzare funzionalità come il monitoraggio delle versioni e le richieste pull per configurare, gestire e distribuire i tuoi servizi. Service sync combina AWS Proton e Git per aiutarti a fornire un'infrastruttura standardizzata definita e gestita tramite AWS Proton modelli. Gestisce le definizioni dei servizi nel tuo repository Git e riduce il cambio di strumento. Rispetto all'utilizzo esclusivo di Git, la standardizzazione dei modelli e dell'implementazione AWS Proton consente di dedicare meno tempo alla gestione dell'infrastruttura. AWS Proton offre inoltre una maggiore trasparenza e verificabilità sia per gli sviluppatori che per i team di piattaforma.

AWS Proton File OPS

Il proton-ops file definisce dove si AWS Proton trova il file delle specifiche utilizzato per aggiornare l'istanza del servizio. Definisce inoltre in quale ordine aggiornare le istanze del servizio e quando promuovere le modifiche da un'istanza all'altra.

Il proton-ops file supporta la sincronizzazione di un'istanza del servizio utilizzando il file spec, o più file di specifiche, presenti nell'archivio collegato. È possibile farlo definendo un blocco di sincronizzazione nel proton-ops file, come nell'esempio seguente.

Esempio. /configuration/proton-ops.yaml:

sync: services: frontend-svc: alpha: branch: dev spec: ./frontend-svc/test/frontend-spec.yaml beta: branch: dev spec: ./frontend-svc/test/frontend-spec.yaml gamma: branch: pre-prod spec: ./frontend-svc/pre-prod/frontend-spec.yaml prod-one: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml prod-two: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml prod-three: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml

Nell'esempio precedente, frontend-svc è il nome del servizio e,,,, e alpha sono le istanze. beta gamma prod-one prod-two prod-three

Il spec file può essere composto da tutte le istanze o da un sottoinsieme delle istanze definite all'interno del file. proton-ops Tuttavia, come minimo, deve avere l'istanza definita all'interno del ramo e le specifiche da cui viene sincronizzata. Se le istanze non sono definite nel proton-ops file, con il ramo e la posizione del spec file specifici, la sincronizzazione del servizio non creerà o aggiornerà tali istanze.

Gli esempi seguenti mostrano l'aspetto dei spec file. Ricorda che il proton-ops file viene sincronizzato da questi spec file.

Esempio./frontend-svc/test/frontend-spec.yaml:

proton: "ServiceSpec" instances: - name: "alpha" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "beta" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Esempio./frontend-svc/pre-prod/frontend-spec.yaml:

proton: "ServiceSpec" instances: - name: "gamma" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Esempio./frontend-svc/prod/frontend-spec-second.yaml:

proton: "ServiceSpec" instances: - name: "prod-one" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "prod-two" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "prod-three" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Se un'istanza non si sincronizza e il problema persiste durante il tentativo di sincronizzazione, chiamare l'GetServiceInstanceSyncStatusAPI può aiutare a risolvere il problema.

Nota

I clienti che utilizzano la sincronizzazione del servizio sono ancora limitati da AWS Proton limiti.

Bloccanti

Sincronizzando il servizio utilizzando AWS Proton service sync, puoi aggiornare le specifiche del servizio e creare e aggiornare le istanze del servizio dal tuo repository Git. Tuttavia, in alcuni momenti potrebbe essere necessario aggiornare manualmente un servizio o un'istanza tramite o. AWS Management Console AWS CLI

AWS Proton aiuta a evitare di sovrascrivere eventuali modifiche manuali apportate tramite il AWS Management Console sistema operativo AWS CLI, ad esempio l'aggiornamento di un'istanza del servizio o l'eliminazione di un'istanza del servizio. A tal fine, crea AWS Proton automaticamente un blocco della sincronizzazione dei servizi disabilitando la sincronizzazione del servizio quando rileva una modifica manuale.

Per ottenere tutti i blocker associati a un servizio, è necessario eseguire le seguenti operazioni in ordine per ciascuno serviceInstance associato al servizio:

  • Chiama l'getServiceSyncBlockerSummaryAPI solo con. serviceName

  • Chiama l'getServiceSyncBlockerSummaryAPI con serviceName eserviceInstanceName.

Ciò restituisce un elenco dei bloccanti più recenti e lo stato ad essi associato. Se alcuni bloccanti sono contrassegnati come ATTIVI, è necessario risolverli chiamando l'UpdateServiceSyncBlockerAPI con blockerId e resolvedReason per ognuno di essi.

Se aggiorni o crei manualmente un'istanza del servizio, AWS Proton crea un blocco della sincronizzazione dei servizi sull'istanza del servizio. AWS Proton continua a sincronizzare tutte le altre istanze del servizio, ma disabilita la sincronizzazione di questa istanza di servizio fino alla risoluzione del blocco. Se elimini un'istanza del servizio da un servizio, AWS Proton crea un blocco della sincronizzazione dei servizi sul servizio. Ciò AWS Proton impedisce la sincronizzazione di qualsiasi istanza del servizio fino a quando il blocco non è stato risolto.

Dopo aver installato tutti i bloccanti attivi, è necessario risolverli chiamando l'UpdateServiceSyncBlockerAPI con blockerId e resolvedReason per ciascuno dei bloccanti attivi.

Utilizzando AWS Management Console, è possibile determinare se la sincronizzazione di un servizio è disabilitata accedendo alla scheda Service Sync AWS Proton e selezionandola. Se il servizio o le istanze del servizio sono bloccati, viene visualizzato il pulsante Abilita. Per abilitare la sincronizzazione del servizio, scegli Abilita.