Service-Synchronisationskonfigurationen - 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.

Service-Synchronisationskonfigurationen

Mit Service Sync können Sie Ihre AWS Proton Dienste mithilfe von Git konfigurieren und bereitstellen. Sie können Service Sync verwenden, um erste Bereitstellungen und Updates für Ihren AWS Proton Service mit einer in einem Git-Repository definierten Konfiguration zu verwalten. Über Git kannst du Funktionen wie Versionsverfolgung und Pull-Requests verwenden, um deine Dienste zu konfigurieren, zu verwalten und bereitzustellen. Service Sync kombiniert AWS Proton Git, um Ihnen bei der Bereitstellung einer standardisierten Infrastruktur zu helfen, die anhand von AWS Proton Vorlagen definiert und verwaltet wird. Es verwaltet Servicedefinitionen in Ihrem Git-Repository und reduziert den Toolwechsel. Im Vergleich zur alleinigen Verwendung von Git können Sie durch die Standardisierung der Vorlagen und die Bereitstellung AWS Proton in weniger Zeit für die Verwaltung Ihrer Infrastruktur aufwenden. AWS Protonbietet außerdem eine höhere Transparenz und Überprüfbarkeit sowohl für Entwickler als auch für Plattformteams.

AWS ProtonOPS datei

Die proton-ops Datei definiert, wo AWS Proton sich die Spezifikationsdatei befindet, die zum Aktualisieren Ihrer Serviceinstanz verwendet wird. Es definiert auch, in welcher Reihenfolge Dienstinstanzen aktualisiert werden und wann Änderungen von einer Instanz auf eine andere übertragen werden sollen.

Die proton-ops Datei unterstützt das Synchronisieren einer Serviceinstanz mithilfe der Spezifikationsdatei oder mehrerer Spezifikationsdateien, die sich in Ihrem verknüpften Repository befinden. Sie können dies tun, indem Sie einen Sync-Block in der proton-ops Datei definieren, wie im folgenden Beispiel.

Beispiel. /configuration/proton-ops.yaml:

sync: services: frontend-svc: alpha: branch: dev spec: ./frontend-svc/test/frontend-spec.yaml beta: branch: dev spec: ./frontend-svc/test/frontend-spec.yaml gamma: branch: pre-prod spec: ./frontend-svc/pre-prod/frontend-spec.yaml prod-one: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml prod-two: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml prod-three: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml

Im vorherigen Beispiel frontend-svc ist dies der Dienstname undalpha,beta,gamma, prod-oneprod-two, und prod-three sind die Instanzen.

Bei der spec Datei kann es sich um alle Instanzen oder um eine Teilmenge der Instanzen handeln, die in der proton-ops Datei definiert sind. Es muss jedoch mindestens die Instanz innerhalb des Branches und die Spezifikation haben, von der aus sie synchronisiert wird. Wenn in der proton-ops Datei keine Instanzen mit dem spezifischen Zweig und dem Speicherort der spec Datei definiert sind, erstellt oder aktualisiert Service Sync diese Instanzen nicht.

Die folgenden Beispiele zeigen, wie die spec Dateien aussehen. Denken Sie daran, dass die proton-ops Datei aus diesen spec Dateien synchronisiert wird.

Beispiel./frontend-svc/test/frontend-spec.yaml:

proton: "ServiceSpec" instances: - name: "alpha" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "beta" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Beispiel./frontend-svc/pre-prod/frontend-spec.yaml:

proton: "ServiceSpec" instances: - name: "gamma" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Beispiel./frontend-svc/prod/frontend-spec-second.yaml:

proton: "ServiceSpec" instances: - name: "prod-one" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "prod-two" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "prod-three" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Wenn eine Instanz nicht synchronisiert wird und bei dem Versuch, sie zu synchronisieren, weiterhin ein Problem auftritt, kann der Aufruf der GetServiceInstanceSyncStatusAPI zur Lösung des Problems beitragen.

Anmerkung

Kunden, die Service Sync verwenden, sind immer noch durch AWS Proton Beschränkungen eingeschränkt.

Blocker

Indem du deinen Service mithilfe AWS Proton von Service Sync synchronisierst, kannst du deine Servicespezifikation aktualisieren und Service-Instances aus deinem Git-Repository erstellen und aktualisieren. Es kann jedoch vorkommen, dass Sie einen Dienst oder eine Instanz manuell über das AWS Management Console oder aktualisieren müssenAWS CLI.

AWS Protonträgt dazu bei, dass manuelle Änderungen, die Sie über das AWS Management Console oder vornehmenAWS CLI, wie das Aktualisieren einer Dienstinstanz oder das Löschen einer Dienstinstanz, nicht überschrieben werden. Um dies zu erreichen, AWS Proton wird automatisch ein Dienstsynchronisierungsblocker erstellt, indem die Dienstsynchronisierung deaktiviert wird, wenn eine manuelle Änderung erkannt wird.

Um alle einem Dienst zugeordneten Blocker abzurufen, müssen Sie für jeden, der dem Dienst serviceInstance zugeordnet ist, die folgenden Schritte ausführen:

  • Rufen Sie die getServiceSyncBlockerSummary API nur mit dem aufserviceName.

  • Rufen Sie die getServiceSyncBlockerSummary API mit dem serviceName und aufserviceInstanceName.

Dies gibt eine Liste der neuesten Blocker und den ihnen zugeordneten Status zurück. Wenn irgendwelche Blocker als AKTIV markiert sind, musst du sie auflösen, indem du die UpdateServiceSyncBlocker API mit dem blockerId und resolvedReason für jeden einzelnen aufrufst.

Wenn Sie eine Dienstinstanz manuell aktualisieren oder erstellen, AWS Proton wird auf der Dienstinstanz ein Dienstsynchronisierungsblocker erstellt. AWS Protonsynchronisiert weiterhin alle anderen Dienstinstanzen, deaktiviert jedoch die Synchronisierung dieser Dienstinstanz, bis der Blocker aufgelöst ist. Wenn Sie eine Dienstinstanz aus einem Dienst löschen, AWS Proton wird ein Dienstsynchronisierungsblocker für den Dienst erstellt. Dadurch wird AWS Proton verhindert, dass eine der Dienstinstanzen synchronisiert wird, bis der Blocker behoben wurde.

Nachdem Sie alle aktiven Blocker gefunden haben, müssen Sie sie lösen, indem Sie die UpdateServiceSyncBlocker API mit dem blockerId und resolvedReason für jeden der aktiven Blocker aufrufen.

Mithilfe der können Sie feststellenAWS Management Console, ob eine Dienstsynchronisierung deaktiviert ist, indem Sie zur Registerkarte Service Sync navigieren AWS Proton und diese auswählen. Wenn der Dienst oder die Dienstinstanzen blockiert sind, wird eine Schaltfläche zum Aktivieren angezeigt. Um die Servicesynchronisierung zu aktivieren, wählen Sie Aktivieren.