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 la sincronizzazione dei servizi per gestire le distribuzioni iniziali e gli aggiornamenti 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 di pull per configurare, gestire e distribuire i tuoi servizi. La sincronizzazione dei servizi si combina AWS Proton con 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 al solo utilizzo di Git, la standardizzazione dei modelli e della distribuzione AWS Proton consente di dedicare meno tempo alla gestione dell'infrastruttura. AWS Protonoffre inoltre maggiore trasparenza e verificabilità sia per gli sviluppatori che per i team della piattaforma.

AWS ProtonFile OPS

Il proton-ops file definisce dove AWS Proton trovare 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 di servizio utilizzando il file delle specifiche, o più file di specifiche, presenti nell'archivio collegato. Puoi farlo definendo un blocco di sincronizzazione nel proton-ops file, come nell'esempio seguente.

Esempio /configurazione/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,alpha,beta, gamma prod-oneprod-two, e prod-three sono le istanze.

Il spec file può essere costituito 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 si esegue la sincronizzazione. Se le istanze non sono definite nel proton-ops file, con il ramo e la posizione del spec file specifici, Service Sync non creerà o aggiornerà tali istanze.

Gli esempi seguenti mostrano l'aspetto spec dei file. Ricorda che il proton-ops file viene sincronizzato a partire 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 dei servizi sono ancora limitati dai AWS Proton limiti.

Bloccanti

Sincronizzando il servizio tramite 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 un servizio o un'istanza manualmente tramite AWS Management Console oAWS CLI.

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

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

  • Chiama l'getServiceSyncBlockerSummaryAPI solo conserviceName.

  • Chiama l'getServiceSyncBlockerSummaryAPI con il comando serviceName andserviceInstanceName.

Viene restituito un elenco dei blocker più recenti e lo stato ad essi associato. Se alcuni blocker 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 del servizio sull'istanza del servizio. AWS Protoncontinua a sincronizzare tutte le altre istanze del servizio, ma disabilita la sincronizzazione di questa istanza di servizio fino alla risoluzione del blocco. Se si elimina un'istanza di servizio da un servizio, AWS Proton crea un blocco della sincronizzazione del servizio sul servizio. Ciò AWS Proton impedisce la sincronizzazione delle istanze del servizio fino a quando il blocco non viene risolto.

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

Utilizzando ilAWS Management Console, è possibile determinare se una sincronizzazione del servizio è disattivata accedendo AWS Proton e scegliendo la scheda Sincronizzazione dei servizi. Se il servizio o le istanze del servizio sono bloccate, viene visualizzato il pulsante Abilita. Per abilitare la sincronizzazione dei servizi, scegli Abilita.