Aggiornamento di 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à.

Aggiornamento di una pipeline di servizi

Scopri come aggiornare una pipelineAWS 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 l'aggiornamento di una pipeline di servizi, come descritto nell'elenco seguente. Quando si utilizza ilAWS CLI, ildeployment-type campo definisce la modalità. Quando si utilizza la console, queste modalità vengono associate alla pipeline di 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. Vengono aggiornati solo i parametri richiesti. Non includere parametri di versione secondari o principali quando lo usideployment-type.

MINOR_VERSION

In questa modalità, la pipeline del servizio viene distribuita e aggiornata con la versione secondaria pubblicata e consigliata (più recente) della versione principale corrente in uso 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 del servizio viene distribuita e aggiornata con la versione principale e secondaria pubblicata e consigliata (più recente) del modello corrente. È inoltre possibile specificare una versione principale diversa superiore alla versione principale in uso e una versione secondaria (opzionale).

È possibile tentare di annullare la distribuzione dell'aggiornamento di una pipeline di servizi, se lodeploymentStatus èIN_PROGRESS. AWS Protontenta di annullare la distribuzione. L'annullamento riuscito non è garantito.

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

  • Imposta lo stato di distribuzione suCANCELLING.

  • Interrompe la distribuzione in corso 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 CancelServicePipelineDeploymentl'AWS ProtonAPI Reference.

Usa la console oAWS 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 Protonconsole, scegli Servizi.

  2. Nell'elenco dei servizi, scegliere il nome del servizio per cui si desidera aggiornare la pipeline.

  3. Ci sono due schede nella pagina dei dettagli del servizio, Panoramica e Pipeline. Scegli 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 nel modello Pipeline, scegli il nome della nuova versione del modello.

    1. Scegli Aggiorna alla versione consigliata.

    2. Compila ogni modulo e scegli Avanti finché non completi 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 della CLI.

Quando si aggiorna la pipeline di servizi con una modificaspec, è possibile utilizzarla"${Proton::CURRENT_VAL}" per indicare quali valori dei parametri conservare rispetto all'originalespec, se i valori esistono inspec. get-serviceUtilizzatelospec per visualizzare l'originale di una pipeline di servizi, come descritto inVisualizzazione dei dati del servizio.

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

Specifiche:

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

Annullare la distribuzione di una pipeline di servizi utilizzando la console, come illustrato nei passaggi seguenti.

  1. Nella AWS Protonconsole, scegli Servizi nel riquadro di navigazione.

  2. Nell'elenco dei servizi, scegliere il nome del servizio con la pipeline con l'aggiornamento della distribuzione che si desidera annullare.

  3. Nella pagina dei dettagli del servizio scegliere la scheda Pipeline (Pipeline).

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

  5. Una modalità chiederà di confermare la cancellazione. 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 della CLI.

Nel modello utilizzato per questo esempio è inclusa una condizione di attesa in modo che l'annullamento inizi prima che la distribuzione dell'aggiornamento abbia esito positivo.

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" } }