Aggiorna una pipeline di 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à.

Aggiorna una pipeline di servizi

Scopri come aggiornare una pipeline AWS Proton di servizi e annullare l'aggiornamento.

Una pipeline di servizi appartiene a un servizio. È possibile creare o eliminare una pipeline solo nel contesto delle azioni di creazione ed eliminazione del servizio.

Esistono quattro modalità per aggiornare una pipeline di servizi, come descritto nell'elenco seguente. Quando si utilizza AWS CLI, il deployment-type campo definisce la modalità. Quando si utilizza la console, queste modalità vengono mappate alla pipeline Modifica e all'aggiornamento alla versione consigliata.

NONE

In questa modalità, non si verifica una distribuzione. Vengono aggiornati solo i parametri dei metadati richiesti.

CURRENT_VERSION

In questa modalità, la pipeline di servizi viene distribuita e aggiornata con le nuove specifiche fornite dall'utente. Vengono aggiornati solo i parametri richiesti. Non includere i parametri della versione minore o principale quando lo usideployment-type.

MINOR_VERSION

In questa modalità, la pipeline del servizio viene distribuita e aggiornata con la versione secondaria pubblicata, consigliata (più recente) della versione principale corrente, utilizzata per impostazione predefinita. È inoltre possibile specificare una versione secondaria diversa della versione principale corrente in uso.

MAJOR_VERSION

In questa modalità, per impostazione predefinita, la pipeline di servizi viene distribuita e aggiornata con la versione principale e secondaria pubblicata, consigliata (più recente) del modello corrente. È inoltre possibile specificare una versione principale diversa che sia superiore alla versione principale in uso e una versione secondaria (opzionale).

È possibile tentare di annullare la distribuzione di un aggiornamento della pipeline di servizio, se lo deploymentStatus èIN_PROGRESS. AWS Proton tenta di annullare la distribuzione. L'annullamento riuscito non è garantito.

Quando annulli la distribuzione di un aggiornamento, AWS Proton tenta di annullare la distribuzione come indicato nei passaggi seguenti.

  • Imposta lo stato di distribuzione suCANCELLING.

  • Interrompe il processo di distribuzione ed elimina tutte le nuove risorse create dalla distribuzione quandoIN_PROGRESS.

  • Imposta lo stato di distribuzione suCANCELLED.

  • Riporta lo stato della risorsa allo stato precedente all'avvio della distribuzione.

Per ulteriori informazioni sull'annullamento della distribuzione di una pipeline di servizi, consulta l'AWS Proton API CancelServicePipelineDeploymentReference.

Utilizza la console o AWS CLI per effettuare aggiornamenti o annullare le distribuzioni degli aggiornamenti.

AWS Management Console

Aggiorna una pipeline di servizi utilizzando la console come descritto nei passaggi seguenti.

  1. Nella AWS Proton console, scegli Servizi.

  2. Nell'elenco dei servizi, scegli il nome del servizio per cui desideri aggiornare la pipeline.

  3. Nella pagina dei dettagli del servizio sono presenti due schede, Overview e Pipeline. Scegliete Pipeline.

  4. Se desideri aggiornare le specifiche, scegli Modifica pipeline e compila ogni modulo e scegli Avanti fino a completare il modulo finale, quindi scegli Aggiorna pipeline.

    Se desideri eseguire l'aggiornamento a una nuova versione e c'è un'icona informativa che indica che una nuova versione è disponibile in Pipeline template, scegli il nome della nuova versione del modello.

    1. Scegli Aggiorna alla versione consigliata.

    2. Compila ogni modulo e scegli Avanti fino a completare il modulo finale e scegli Aggiorna.

AWS CLI

Aggiorna una pipeline di servizi a una nuova versione secondaria, come mostrato nei seguenti comandi e risposte di esempio CLI.

Quando si aggiorna la pipeline di servizio con una versione modificataspec, è possibile utilizzare "${Proton::CURRENT_VAL}" per indicare quali valori dei parametri preservare rispetto all'originalespec, se i valori esistono in. spec get-serviceDa utilizzare per visualizzare l'originale spec di una pipeline di servizi, come descritto in. Visualizza i dati del servizio

L'esempio seguente mostra come è possibile utilizzare "${Proton::CURRENT_VAL}" in unspec.

Spec:

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "${Proton::CURRENT_VAL}" my_sample_pipeline_required_input: "${Proton::CURRENT_VAL}" instances: - name: "my-instance" environment: "simple-env" spec: my_sample_service_instance_optional_input: "${Proton::CURRENT_VAL}" my_sample_service_instance_required_input: "${Proton::CURRENT_VAL}" - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

Comando: aggiornare

$ aws proton update-service-pipeline \ --service-name "simple-svc" \ --spec "file://service-spec.yaml" \ --template-major-version "1" \ --template-minor-version "1" \ --deployment-type "MINOR_VERSION"

Risposta:

{ "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-04-02T21:39:28.991000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\ninstances:\n - name: \"my-instance\"\n environment: \"MySimpleEnv\"\n spec:\n my_sample_service_instance_optional_input: \"def\"\n my_sample_service_instance_required_input: \"456\"\n - name: \"my-other-instance\"\n environment: \"MySimpleEnv\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "svc-simple" } }

Comando: per ottenere e confermare lo stato

$ aws proton get-service \ --name "simple-svc"

Risposta:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc", "branchName": "main", "createdAt": "2021-04-02T21:29:59.962000+00:00", "lastModifiedAt": "2021-04-02T21:30:54.364000+00:00", "name": "simple-svc", "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "SUCCEEDED", "lastDeploymentAttemptedAt": "2021-04-02T21:39:28.991000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\ninstances:\n - name: \"instance-one\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_optional_input: \"def\"\n my_sample_service_instance_required_input: \"456\"\n - name: \"my-other-instance\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" }, "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "repo-name/myorg-myapp", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\ninstances:\n - name: \"instance-one\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_optional_input: \"def\"\n my_sample_service_instance_required_input: \"456\"\n - name: \"my-other-instance\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "status": "ACTIVE", "templateName": "svc-simple" } }
AWS Management Console

Annulla l'implementazione di una pipeline di servizi utilizzando la console, come illustrato nei passaggi seguenti.

  1. Nella AWS Proton console, scegli Servizi nel riquadro di navigazione.

  2. Nell'elenco dei servizi, scegli il nome del servizio che include la pipeline con l'aggiornamento di distribuzione che desideri annullare.

  3. Nella pagina dei dettagli del servizio, scegli la scheda Pipeline.

  4. Se lo stato della distribuzione degli aggiornamenti è In corso, nella pagina dei dettagli della pipeline del servizio, scegli Annulla distribuzione.

  5. Un modale ti chiede di confermare l'annullamento. Scegli Annulla distribuzione.

  6. Lo stato di distribuzione degli aggiornamenti è impostato su Annullamento e quindi su Annullato per completare l'annullamento.

AWS CLI

Annulla un aggiornamento della distribuzione della pipeline del servizio IN_PROGRESS alla versione secondaria 2, come mostrato nei seguenti comandi e risposte di esempio CLI.

Nel modello utilizzato per questo esempio è inclusa una condizione di attesa in modo che l'annullamento inizi prima del completamento della distribuzione dell'aggiornamento.

Comando: annullare

$ aws proton cancel-service-pipeline-deployment \ --service-name "simple-svc"

Risposta:

{ "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "CANCELLING", "lastDeploymentAttemptedAt": "2021-04-02T22:02:45.095000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" } }

Comando: per ottenere e confermare lo stato

$ aws proton get-service \ --name "simple-svc"

Risposta:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc", "branchName": "main", "createdAt": "2021-04-02T21:29:59.962000+00:00", "lastModifiedAt": "2021-04-02T21:30:54.364000+00:00", "name": "simple-svc", "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "CANCELLED", "deploymentStatusMessage": "User initiated cancellation.", "lastDeploymentAttemptedAt": "2021-04-02T22:02:45.095000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\ninstances:\n - name: \"instance-one\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_optional_input: \"def\"\n my_sample_service_instance_required_input: \"456\"\n - name: \"my-other-instance\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" }, "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "repo-name/myorg-myapp", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\ninstances:\n - name: \"instance-one\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_optional_input: \"def\"\n my_sample_service_instance_required_input: \"456\"\n - name: \"my-other-instance\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "status": "ACTIVE", "templateName": "svc-simple" } }