Bearbeiten Sie einen Dienst - 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.

Bearbeiten Sie einen Dienst

Sie können die folgenden Änderungen an einem AWS Proton Dienst vornehmen.

  • Bearbeiten Sie die Dienstbeschreibung.

  • Bearbeiten Sie einen Dienst, indem Sie Dienstinstanzen hinzufügen und entfernen.

Dienstbeschreibung bearbeiten

Sie können die Konsole oder die verwenden AWS CLI , um eine Servicebeschreibung zu bearbeiten.

AWS Management Console

Bearbeiten Sie einen Dienst mithilfe der Konsole, wie in den folgenden Schritten beschrieben.

In der Liste der Dienste.
  1. Wählen Sie in der AWS Proton Konsole Dienste aus.

  2. Wählen Sie in der Liste der Dienste das Optionsfeld links neben dem Dienst aus, den Sie aktualisieren möchten.

  3. Wählen Sie Bearbeiten aus.

  4. Füllen Sie auf der Seite Dienst konfigurieren das Formular aus und wählen Sie Weiter.

  5. Wählen Sie auf der Seite Benutzerdefinierte Einstellungen konfigurieren die Option Weiter aus.

  6. Überprüfen Sie Ihre Änderungen und wählen Sie Änderungen speichern.

Auf der Seite mit den Servicedetails.
  1. Wählen Sie in der AWS Proton Konsole Dienste aus.

  2. Wählen Sie in der Liste der Dienste den Namen des Dienstes aus, den Sie bearbeiten möchten.

  3. Wählen Sie auf der Seite mit den Service-Details die Option Bearbeiten aus.

  4. Füllen Sie auf der Seite Service konfigurieren das Formular aus und wählen Sie Weiter.

  5. Füllen Sie auf der Seite Benutzerdefinierte Einstellungen konfigurieren das Formular aus und wählen Sie Weiter.

  6. Überprüfen Sie Ihre Änderungen und wählen Sie Änderungen speichern.

AWS CLI

Bearbeiten Sie eine Beschreibung wie im folgenden CLI-Beispielbefehl und der folgenden Antwort gezeigt.

Befehl:

$ aws proton update-service \ --name "MySimpleService" \ --description "Edit by updating description"

Antwort:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "branchName": "main", "createdAt": "2021-03-12T22:39:42.318000+00:00", "description": "Edit by updating description", "lastModifiedAt": "2021-03-12T22:44:21.975000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "my-repository/myorg-myapp", "status": "ACTIVE", "templateName": "fargate-service" } }

Bearbeiten Sie einen Dienst, um Dienstinstanzen hinzuzufügen oder zu entfernen

Für einen AWS Proton Service können Sie Dienstinstanzen hinzufügen oder löschen, indem Sie eine bearbeitete Spezifikation einreichen. Die folgenden Bedingungen müssen für eine erfolgreiche Anfrage erfüllt sein:

  • Ihr Service und Ihre Pipeline werden nicht bereits bearbeitet oder gelöscht, wenn Sie die Bearbeitungsanfrage einreichen.

  • Ihre bearbeitete Spezifikation enthält keine Änderungen, die die Service-Pipeline ändern, oder Änderungen an vorhandenen Serviceinstanzen, die nicht gelöscht werden sollen.

  • Ihre bearbeitete Spezifikation entfernt keine vorhandene Dienstinstanz, der eine Komponente angehängt ist. Um eine solche Dienstinstanz zu löschen, sollten Sie zuerst die Komponente aktualisieren, um sie von ihrer Dienstinstanz zu trennen. Weitere Hinweise zu Komponenten finden Sie unterAWS Proton Komponenten.

Instanzen, bei denen beim Löschen ein Fehler aufgetreten ist, sind Dienstinstanzen im DELETE_FAILED Status. Wenn Sie eine Servicebearbeitung anfordern, wird AWS Proton versucht, die beim Löschen fehlgeschlagenen Instanzen im Rahmen des Bearbeitungsvorgangs für Sie zu entfernen. Wenn eine Ihrer Dienstinstanzen nicht gelöscht werden konnte, sind den Instanzen möglicherweise immer noch Ressourcen zugeordnet, auch wenn sie in der Konsole oder nicht sichtbar sind. AWS CLIÜberprüfen Sie die Infrastrukturressourcen Ihrer Instances, bei denen das Löschen fehlgeschlagen ist, und bereinigen Sie sie, damit wir sie für Sie entfernen AWS Proton können.

Informationen zum Kontingent an Dienstinstanzen für einen Service finden Sie unter. AWS Proton Kontingente Sie müssen außerdem mindestens eine Dienstinstanz für Ihren Service verwalten, nachdem er erstellt wurde. Zählt während des Aktualisierungsvorgangs die vorhandenen Dienstinstanzen und die Instanzen, die hinzugefügt oder entfernt werden sollen. AWS Proton Instanzen, bei denen das Löschen fehlschlug, sind in dieser Anzahl enthalten, und Sie müssen sie berücksichtigen, wenn Sie Ihre bearbeiten. spec

Verwenden Sie die Konsole oder AWS CLI um Serviceinstanzen hinzuzufügen oder zu entfernen

AWS Management Console

Bearbeiten Sie Ihren Service, um Dienstinstanzen mithilfe der Konsole hinzuzufügen oder zu entfernen.

In der AWS Proton Konsole

  1. Wählen Sie im Navigationsbereich Services.

  2. Wählen Sie den Dienst aus, den Sie bearbeiten möchten.

  3. Wählen Sie Bearbeiten aus.

  4. (Optional) Bearbeiten Sie auf der Seite Dienst konfigurieren den Dienstnamen oder die Beschreibung und wählen Sie dann Weiter aus.

  5. Wählen Sie auf der Seite Benutzerdefinierte Einstellungen konfigurieren die Option Löschen aus, um eine Dienstinstanz zu löschen, und wählen Sie Neue Instanz hinzufügen, um eine Dienstinstanz hinzuzufügen und das Formular auszufüllen.

  6. Wählen Sie Weiter aus.

  7. Überprüfen Sie Ihr Update und wählen Sie Änderungen speichern.

  8. In einem Modal werden Sie aufgefordert, das Löschen von Dienstinstanzen zu überprüfen. Folgen Sie den Anweisungen und wählen Sie Ja, löschen.

  9. Sehen Sie sich auf der Seite mit den Servicedetails die Statusdetails für Ihren Dienst an.

AWS CLI

Fügen Sie Dienstinstanzen mit bearbeiteten Befehlen und Antworten hinzu und löschen Sie sie, spec wie in den folgenden AWS CLI Beispielbefehlen und Antworten gezeigt.

Wenn Sie die CLI verwenden, spec müssen Sie die zu löschenden Dienstinstanzen ausschließen und sowohl die hinzuzufügenden Dienstinstanzen als auch die vorhandenen Serviceinstanzen einbeziehen, die Sie nicht zum Löschen markiert haben.

Die folgende Liste zeigt das Beispiel spec vor der Bearbeitung und eine Liste der Serviceinstanzen, die von der Spezifikation bereitgestellt wurden. Diese Spezifikation wurde im vorherigen Beispiel für die Bearbeitung einer Servicebeschreibung verwendet.

Spezifikation:

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "abc" my_sample_pipeline_required_input: "123" instances: - name: "my-instance" environment: "simple-env" spec: my_sample_service_instance_optional_input: "def" my_sample_service_instance_required_input: "456" - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

Der folgende list-service-instances CLI-Beispielbefehl und die folgende Antwort zeigen die aktiven Instanzen vor dem Hinzufügen oder Löschen einer Dienstinstanz.

Befehl:

$ aws proton list-service-instances \ --service-name "MySimpleService"

Antwort:

{ "serviceInstances": [ { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00", "name": "my-other-instance", "serviceName": "example-svc", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" }, { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.160000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.160000+00:00", "name": "my-instance", "serviceName": "example-svc", "serviceTemplateArn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" } ] }

Die folgende Liste zeigt das bearbeitete Beispiel, das zum Löschen und Hinzufügen einer Instanz spec verwendet wurde. Die bestehende Instanz mit dem Namen my-instance wird entfernt und eine neue Instanz mit dem Namen yet-another-instance hinzugefügt.

Spezifikation:

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "abc" my_sample_pipeline_required_input: "123" instances: - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789" - name: "yet-another-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

Sie können "${Proton::CURRENT_VAL}" damit angeben, welche Parameterwerte aus dem Original beibehalten werden sollenspec, sofern die Werte in der spec vorhanden sind. get-serviceDient zum Anzeigen des Originals spec für einen Service, wie unter beschriebenServicedaten anzeigen.

Die folgende Liste zeigt, wie Sie sicherstellen können, dass Sie spec keine Änderungen "${Proton::CURRENT_VAL}" an den Parameterwerten enthalten, damit die vorhandenen Services-Instanzen erhalten bleiben.

Spezifikation:

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

Die nächste Liste zeigt den CLI-Befehl und die Antwort zum Bearbeiten des Dienstes.

Befehl:

$ aws proton update-service --name "MySimpleService" \ --description "Edit by adding and deleting a service instance" \ --spec "file://spec.yaml"

Antwort:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "branchName": "main", "createdAt": "2021-03-12T22:39:42.318000+00:00", "description": "Edit by adding and deleting a service instance", "lastModifiedAt": "2021-03-12T22:55:48.169000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "my-repository/myorg-myapp", "status": "UPDATE_IN_PROGRESS", "templateName": "fargate-service" } }

Der folgende list-service-instances Befehl und die folgende Antwort bestätigen, dass die vorhandene Instanz mit dem Namen my-instance entfernt und eine neue Instanz mit dem Namen yet-another-instance hinzugefügt wurde.

Befehl:

$ aws proton list-service-instances \ --service-name "MySimpleService"

Antwort:

{ "serviceInstances": [ { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/yet-another-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:56:01.565000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:56:01.565000+00:00", "name": "yet-another-instance", "serviceName": "MySimpleService", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" }, { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00", "name": "my-other-instance", "serviceName": "MySimpleService", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" } ] }

Was passiert, wenn Sie Dienstinstanzen hinzufügen oder entfernen

Nachdem Sie eine Servicebearbeitung zum Löschen und Hinzufügen von Dienstinstanzen eingereicht haben, AWS Proton werden die folgenden Aktionen ausgeführt.

  • Legt den Dienst auf festUPDATE_IN_PROGRESS.

  • Wenn der Dienst über eine Pipeline verfügt, legt dessen Status auf Pipeline-Aktionen fest IN_PROGRESS und blockiert sie.

  • Legt alle Dienstinstanzen fest, die gelöscht werden sollenDELETE_IN_PROGRESS.

  • Blockiert Dienstaktionen.

  • Blockiert Aktionen auf Dienstinstanzen, die zum Löschen markiert sind.

  • Erzeugt neue Dienstinstanzen.

  • Löscht Instanzen, die Sie zum Löschen aufgelistet haben.

  • Versuche, beim Löschen fehlgeschlagene Instanzen zu entfernen.

  • Wenn die Hinzufügungen und Löschungen abgeschlossen sind, wird die Service-Pipeline (falls vorhanden) erneut bereitgestellt, Ihr Service auf Service- und Pipeline-Aktionen ACTIVE gesetzt und aktiviert.

AWS Proton versucht, Fehlermodi wie folgt zu beheben.

  • Wenn eine oder mehrere Dienstinstanzen nicht erstellt werden konnten, wird AWS Proton versucht, die Bereitstellung aller neu erstellten Dienstinstanzen aufzuheben, und der spec vorherige Zustand wird wiederhergestellt. Es löscht keine Dienstinstanzen und ändert die Pipeline in keiner Weise.

  • Wenn eine oder mehrere Dienstinstanzen nicht gelöscht werden konnten, wird die Pipeline ohne die gelöschten Instanzen AWS Proton erneut bereitgestellt. Die spec wird aktualisiert, um die hinzugefügten Instanzen einzubeziehen und die Instanzen auszuschließen, die zum Löschen markiert wurden.

  • Wenn die Bereitstellung der Pipeline fehlschlägt, wird kein Rollback versucht, und sowohl der Dienst als auch die Pipeline geben den Status eines fehlgeschlagenen Updates wieder.

Tagging und Änderungen am Dienst

Wenn Sie im Rahmen Ihrer Servicebearbeitung Dienstinstanzen hinzufügen, werden AWS verwaltete Tags auf die neuen Instanzen und bereitgestellten Ressourcen übertragen und automatisch für diese erstellt. Wenn Sie neue Tags erstellen, werden diese Tags nur auf die neuen Instanzen angewendet. Bestehende, vom Kunden verwaltete Service-Tags werden ebenfalls auf die neuen Instanzen übertragen. Weitere Informationen finden Sie unter AWS Proton Ressourcen und Tagging.