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-one
prod-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 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 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 demserviceName
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.