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.
Konfigurationen für die Dienstsynchronisierung
Mit Service Sync können Sie Ihre AWS Proton Dienste mit 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 und Git unterstützt Sie bei der Bereitstellung einer standardisierten Infrastruktur, die über AWS Proton Vorlagen definiert und verwaltet wird. Es verwaltet Dienstdefinitionen in Ihrem Git-Repository und reduziert den Werkzeugwechsel. Im Vergleich zur alleinigen Verwendung von Git können Sie durch die Standardisierung von Vorlagen und Bereitstellung weniger Zeit für die Verwaltung Ihrer Infrastruktur aufwenden. AWS Proton AWS Proton bietet außerdem eine höhere Transparenz und Überprüfbarkeit sowohl für Entwickler als auch für Plattformteams.
AWS Proton OPS-Datei
Die proton-ops
Datei definiert, wo AWS Proton sich die Spezifikationsdatei befindet, die zum Aktualisieren Ihrer Dienstinstanz verwendet wird. Sie definiert auch, in welcher Reihenfolge Serviceinstanzen aktualisiert werden sollen und wann Änderungen von einer Instanz auf eine andere übertragen werden sollen.
Die proton-ops
Datei unterstützt das Synchronisieren einer Dienstinstanz 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 sind dies der Dienstname und,frontend-svc
,,, alpha
beta
, gamma
und sind die Instanzen. prod-one
prod-two
prod-three
Bei der spec
Datei kann es sich um alle Instanzen oder eine Teilmenge der in der proton-ops
Datei definierten Instanzen handeln. Es muss jedoch mindestens die Instanz innerhalb des Branches und die Spezifikation, mit der sie synchronisiert wird, definiert sein. 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 beim Versuch, sie zu synchronisieren, weiterhin ein Problem auftritt, kann der Aufruf der GetServiceInstanceSyncStatus
API zur Lösung des Problems beitragen.
Anmerkung
Kunden, die Service Sync verwenden, sind immer noch durch AWS Proton Beschränkungen eingeschränkt.
Blocker
Indem Sie Ihren Service mithilfe AWS Proton von Service Sync synchronisieren, können Sie Ihre Servicespezifikation aktualisieren und Service-Instanzen aus Ihrem Git-Repository erstellen und aktualisieren. Es kann jedoch vorkommen, dass Sie einen Service oder eine Instanz manuell über das AWS Management Console oder aktualisieren müssen. AWS CLI
AWS Proton verhindert, dass manuelle Änderungen, die Sie über das AWS Management Console oder vornehmen, überschrieben werden AWS CLI, z. B. das Aktualisieren einer Dienstinstanz oder das Löschen einer Dienstinstanz. Um dies zu erreichen, erstellt es AWS Proton automatisch einen Service Sync-Blocker, indem Service Sync deaktiviert wird, wenn eine manuelle Änderung erkannt wird.
Um alle mit einem Dienst verknüpften Blocker abzurufen, müssen Sie für jeden, der mit dem Dienst serviceInstance
verknüpft ist, die folgenden Schritte ausführen:
-
Rufen Sie die
getServiceSyncBlockerSummary
API nur mit dem aufserviceName
. -
Rufen Sie die
getServiceSyncBlockerSummary
API mit demserviceName
und aufserviceInstanceName
.
Dadurch wird eine Liste der neuesten Blocker und der ihnen zugeordnete Status zurückgegeben. Wenn irgendwelche Blocker als AKTIV markiert sind, müssen Sie sie lösen, indem Sie die UpdateServiceSyncBlocker
API mit dem blockerId
und resolvedReason
für jeden Block aufrufen.
Wenn Sie eine Dienstinstanz manuell aktualisieren oder erstellen, AWS Proton wird auf der Dienstinstanz ein Dienstsynchronisierungsblocker erstellt. AWS Proton synchronisiert weiterhin alle anderen Dienstinstanzen, deaktiviert jedoch die Synchronisierung dieser Dienstinstanz, bis der Blocker behoben ist. Wenn Sie eine Dienstinstanz aus einem Dienst löschen, AWS Proton wird für den Dienst ein Dienstsynchronisierungsblocker erstellt. Dadurch wird AWS Proton verhindert, dass eine der Dienstinstanzen synchronisiert wird, bis der Blocker behoben wurde.
Wenn Sie alle aktiven Blocker haben, müssen Sie sie lösen, indem Sie die UpdateServiceSyncBlocker
API mit blockerId
und resolvedReason
für jeden der aktiven Blocker aufrufen.
Mithilfe von können Sie feststellen AWS 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 die Schaltfläche Aktivieren angezeigt. Um die Dienstsynchronisierung zu aktivieren, wählen Sie Aktivieren.