Aktualisierung einer Service-Pipeline - AWS Proton

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktualisierung einer Service-Pipeline

Erfahren Sie, wie Sie eineAWS Proton Service-Pipeline aktualisieren und das Update abbrechen.

Eine Service-Pipeline gehört zu einem Dienst. Sie können eine Pipeline nur im Zusammenhang mit Aktionen zum Erstellen und Löschen von Diensten erstellen oder löschen.

Es gibt vier Modi zum Aktualisieren einer Service-Pipeline, wie in der folgenden Liste beschrieben. Bei Verwendung von definiert dasdeployment-type Feld den Modus.AWS CLI Wenn Sie die Konsole verwenden, werden diese Modi der Bearbeitungspipeline und der Option Auf empfohlene Version aktualisieren zugeordnet.

NONE

In diesem Modus findet keine Bereitstellung statt. Nur die angeforderten Metadatenparameter werden aktualisiert.

CURRENT_VERSION

In diesem Modus wird die Service-Pipeline bereitgestellt und mit der von Ihnen bereitgestellten neuen Spezifikation aktualisiert. Nur angeforderte Parameter werden aktualisiert. Geben Sie keine Parameter für Neben- oder Hauptversionen an, wenn Sie dies verwendendeployment-type.

MINOR_VERSION

In diesem Modus wird die Service-Pipeline bereitgestellt und mit der veröffentlichten, empfohlenen (neuesten) Nebenversion der aktuell verwendeten Hauptversion aktualisiert, die standardmäßig verwendet wird. Sie können auch eine andere Nebenversion der aktuell verwendeten Hauptversion angeben.

MAJOR_VERSION

In diesem Modus wird die Service-Pipeline bereitgestellt und standardmäßig mit der veröffentlichten, empfohlenen (neuesten) Haupt- und Nebenversion der aktuellen Vorlage aktualisiert. Sie können auch eine andere Hauptversion angeben, die höher ist als die verwendete Hauptversion und eine Nebenversion (optional).

Sie können versuchen, die Bereitstellung eines Service Pipeline-Updates abzubrechen, falls dies derdeploymentStatus Fall istIN_PROGRESS. AWS Protonversucht, die Bereitstellung abzubrechen. Eine erfolgreiche Stornierung ist nicht garantiert.

Wenn Sie eine Update-Bereitstellung stornieren, wirdAWS Proton versucht, die Bereitstellung abzubrechen, wie in den folgenden Schritten aufgeführt.

  • Setzt den Bereitstellungsstatus aufCANCELLING.

  • Stoppt die laufende Bereitstellung und löscht alle neuen Ressourcen, die durch die Bereitstellung erstellt wurden, wennIN_PROGRESS.

  • Setzt den Bereitstellungsstatus aufCANCELLED.

  • Setzt den Zustand der Ressource auf den Zustand zurück, den er vor dem Start der Bereitstellung hatte.

Weitere Informationen zum Abbrechen einer Service-Pipeline-Bereitstellung finden Sie CancelServicePipelineDeploymentin der AWS ProtonAPI-Referenz.

Verwenden Sie die Konsole oderAWS CLI um Updates vorzunehmen oder die Bereitstellung von Updates abzubrechen.

AWS Management Console

Aktualisieren Sie eine Service-Pipeline mithilfe der Konsole wie in den folgenden Schritten beschrieben.

  1. Wählen Sie in der AWS ProtonKonsole Dienste aus.

  2. Wählen Sie in der Liste der Services den Namen des anzuzeigenden Service.

  3. Auf der Seite mit den Servicedetails gibt es zwei Tabs: Übersicht und Pipeline. Wählen Sie Pipeline.

  4. Wenn Sie Spezifikationen aktualisieren möchten, wählen Sie Pipeline bearbeiten und füllen Sie jedes Formular aus. Wählen Sie Weiter, bis Sie das endgültige Formular ausgefüllt haben, und wählen Sie dann Pipeline aktualisieren.

    Wenn Sie auf eine neue Version aktualisieren möchten und es ein Informationssymbol gibt, das darauf hinweist, dass eine neue Version unter Pipeline-Vorlage verfügbar ist, wählen Sie den Namen der neuen Vorlagenversion.

    1. Wählen Sie Auf empfohlene Version aktualisieren.

    2. Füllen Sie jedes Formular aus und wählen Sie Weiter, bis Sie das endgültige Formular ausgefüllt haben und Aktualisieren wählen.

AWS CLI

Aktualisieren Sie eine Service-Pipeline auf eine neue Nebenversion, wie in den folgenden CLI-Beispielbefehlen und -antworten gezeigt.

Wenn Sie Ihre Service-Pipeline mit einer Änderung aktualisierenspec, können"${Proton::CURRENT_VAL}" Sie angeben, welche Parameterwerte gegenüber dem Original beibehalten werden sollenspec, sofern die Werte in der vorhanden sindspec. Wird verwendetget-service, um das Originalspec für eine Service-Pipeline anzuzeigen, wie unter beschriebenAnzeigen von Servicedaten.

Das folgende Beispiel zeigt, wie Sie"${Proton::CURRENT_VAL}" in einen verwenden könnenspec.

Spezifikation:

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"

Befehl: zum Aktualisieren

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

Antwort:

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

Befehl: um den Status abzurufen und zu bestätigen

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

Antwort:

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

Brechen Sie eine Service-Pipeline-Bereitstellung mithilfe der Konsole ab, wie in den folgenden Schritten gezeigt.

  1. Wählen Sie in der AWS ProtonKonsole im Navigationsbereich Dienste aus.

  2. Wählen Sie in der Liste der Services den Namen des anzuzeigenden Service.

  3. Wählen Sie auf der Servicedetailseite den Tab Pipeline (Pipeline) aus.

  4. Wenn Ihr Update-Bereitstellungsstatus In Bearbeitung ist, wählen Sie auf der Detailseite der Service Pipeline die Option Bereitstellung abbrechen aus.

  5. Ein Modal fordert Sie auf, den Abbruch zu bestätigen. Wählen Sie Bereitstellung stornieren aus.

  6. Ihr Update-Bereitstellungsstatus ist auf Storniert und dann auf Storniert gesetzt, um die Stornierung abzuschließen.

AWS CLI

Brechen Sie ein Update der IN_PROGRESS-Dienstpipeline auf die Nebenversion 2 ab, wie in den folgenden CLI-Beispielbefehlen und -antworten gezeigt.

Die für dieses Beispiel verwendete Vorlage enthält eine Wartebedingung, sodass die Stornierung beginnt, bevor die Aktualisierung erfolgreich bereitgestellt wird.

Befehl: stornieren

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

Antwort:

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

Befehl: um den Status abzurufen und zu bestätigen

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

Antwort:

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