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à.
Hook del ciclo di vita per le implementazioni di servizi Amazon ECS
Quando inizia un'implementazione, passa attraverso le fasi del ciclo di vita. Queste fasi possono trovarsi in stati come IN_PROGRESS o SUCCESSFUL. È possibile utilizzare gli hook del ciclo di vita, che sono funzioni Lambda che Amazon ECS esegue in fasi del ciclo di vita specifiche. Le funzioni possono essere le seguenti:
-
Un'API asincrona che convalida il controllo dell'integrità entro 15 minuti.
-
Un'API di sondaggio che avvia un altro processo asincrono che valuta il completamento dell'hook del ciclo di vita.
Al termine dell'esecuzione della funzione, essa deve restituire un hookStatus affinché l'implementazione continui. Se non viene restituito un hookStatus o se la funzione ha esito negativo, l'implementazione viene ripristinata. Di seguito sono riportati i valori hookStatus:
-
SUCCEEDED: l'implementazione continua fino alla fase successiva del ciclo di vita -
FAILED: l'implementazione torna all'ultima riuscita. -
IN_PROGRESS: Amazon ECS esegue nuovamente la funzione dopo un breve periodo di tempo. Per impostazione predefinita, si tratta di un intervallo di 30 secondi, tuttavia questo valore è personalizzabile restituendo uncallBackDelayinsieme ahookStatus.
Nell'esempio seguente viene illustrato come restituire un hookStatus con un ritardo di callback personalizzato. In questo esempio, Amazon ECS riproverebbe questo hook dopo 60 secondi invece dei 30 secondi predefiniti:
{ "hookStatus": "IN_PROGRESS", "callBackDelay": 60 }
Quando si verifica un rollback, Amazon ECS esegue gli hook del ciclo di vita per le seguenti fasi del ciclo di vita:
-
PRODUCTION_TRAFFIC_SHIFT
-
TEST_TRAFFIC_SHIFT
Payload del ciclo di vita
Quando si configurano gli hook del ciclo di vita per le implementazioni di servizi ECS, Amazon ECS richiama questi hook in fasi specifiche del processo di implementazione. Ogni fase del ciclo di vita fornisce un payload JSON con informazioni sullo stato attuale dell'implementazione. Questo documento descrive la struttura del payload per ogni fase del ciclo di vita.
Struttura comune del payload
I payload in tutte le fasi del ciclo di vita includono i seguenti campi comuni:
-
serviceArn: il nome della risorsa Amazon (ARN) del servizio. -
targetServiceRevisionArn: l'ARN della revisione del servizio target in fase di implementazione. -
testTrafficWeights- Una mappa delle revisioni dei servizi in base ARNs alle corrispondenti percentuali di peso del traffico di test. -
productionTrafficWeights- Una mappa della revisione dei servizi in base ARNs alle corrispondenti percentuali di peso del traffico di produzione.
Payload delle fasi del ciclo di vita
RECONCILE_SERVICE
Questa fase si verifica all'inizio del processo di implementazione quando il servizio viene riconciliato. Di seguito viene riportato un esempio di payload per questa fase del ciclo di vita.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 }, "productionTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 } }
Aspettative in questa fase:
-
Il set di attività principale è su scala 0%
PRE_SCALE_UP
Questa fase avviene prima che le nuove attività vengano aumentate. Di seguito viene riportato un esempio di payload per questa fase del ciclo di vita.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Aspettative in questa fase:
-
Le attività di revisione del servizio verde sono su una scala dello 0%
POST_SCALE_UP
Questa fase avviene dopo che le nuove attività sono state aumentate e sono integre. Di seguito viene riportato un esempio di payload per questa fase del ciclo di vita.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Aspettative in questa fase:
-
Le attività di revisione del servizio verde sono su una scala dello 100%
-
Le attività di revisione del servizio verde sono integre
TEST_TRAFFIC_SHIFT
Questa fase avviene quando il traffico di test viene spostato sulle attività di revisione del servizio verde.
Di seguito viene riportato un esempio di payload per questa fase del ciclo di vita.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 }, "productionTrafficWeights": {} }
Aspettative in questa fase:
-
Il traffico di test si sta avviando verso le attività di revisione del servizio verde.
POST_TEST_TRAFFIC_SHIFT
Questa fase avviene dopo che il traffico di test è stato completamente spostato verso le nuove attività.
Di seguito viene riportato un esempio di payload per questa fase del ciclo di vita.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Aspettative in questa fase:
-
Il 100% del traffico di test è stato spostato verso le attività di revisione del servizio verde.
PRODUCTION_TRAFFIC_SHIFT
Questa fase avviene quando il traffico di produzione viene spostato sulle attività di revisione del servizio verde.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 } }
Aspettative in questa fase:
-
Il traffico di produzione si sta spostando verso la revisione del servizio verde.
POST_PRODUCTION_TRAFFIC_SHIFT
Questa fase avviene dopo che il traffico di produzione è stato spostato completamente alle attività di revisione del servizio verde.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Aspettative in questa fase:
-
Il 100% del traffico di produzione è stato spostato verso le attività di revisione del servizio verde.
Categorie della fase del ciclo di vita
Le fasi del ciclo di vita rientrano in due categorie:
-
Fasi di invocazione singole: queste fasi vengono invocate una sola volta durante l'implementazione di un servizio:
PRE_SCALE_UP
POST_SCALE_UP
POST_TEST_TRAFFIC_SHIFT
POST_PRODUCTION_TRAFFIC_SHIFT
-
Fasi di invocazione ricorrenti: queste fasi possono essere invocate più volte durante l'implementazione di un servizio, ad esempio quando si verifica un'operazione di rollback:
TEST_TRAFFIC_SHIFT
PRODUCTION_TRAFFIC_SHIFT
Stato dell'implementazione durante gli hook del ciclo di vita
Mentre gli hook del ciclo di vita sono in esecuzione, lo stato di implementazione sarà IN_PROGRESS per tutte le fasi del ciclo di vita.
| Stadio del ciclo di vita | Stato dell'implementazione |
|---|---|
| RECONCILE_SERVICE | IN_PROGRESS |
| PRE_SCALE_UP | IN_PROGRESS |
| POST_SCALE_UP | IN_PROGRESS |
| TEST_TRAFFIC_SHIFT | IN_PROGRESS |
| POST_TEST_TRAFFIC_SHIFT | IN_PROGRESS |
| PRODUCTION_TRAFFIC_SHIFT | IN_PROGRESS |
| POST_PRODUCTION_TRAFFIC_SHIFT | IN_PROGRESS |