Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuraciones de sincronización de servicios
Con la sincronización de servicios, puedes configurar e implementar tus AWS Proton servicios mediante Git. Puedes usar la sincronización de servicios para gestionar las implementaciones y actualizaciones iniciales de tu AWS Proton servicio con una configuración definida en un repositorio de Git. A través de Git, puede utilizar características como el seguimiento de versiones y las solicitudes de extracción para configurar, administrar e implementar los servicios. La sincronización de servicios combina AWS Proton Git para ayudarlo a aprovisionar una infraestructura estandarizada que se define y administra mediante AWS Proton plantillas. Además, administra las definiciones de servicios en el repositorio de Git del usuario y reduce la necesidad de tener que cambiar de herramienta. En comparación con el uso exclusivo de Git, la estandarización de las plantillas y la implementación le AWS Proton ayudan a dedicar menos tiempo a administrar su infraestructura. AWS Proton también proporciona una mayor transparencia y capacidad de auditoría tanto para los desarrolladores como para los equipos de plataformas.
AWS Proton Archivo OPS
El proton-ops
archivo define dónde se AWS Proton encuentra el archivo de especificaciones que se utiliza para actualizar la instancia de servicio. También define en qué orden actualizar las instancias de servicio y cuándo promover los cambios de una instancia a otra.
El archivo proton-ops
permite sincronizar una instancia de servicio mediante el archivo de especificaciones, o varios archivos de especificaciones, que se encuentran en el repositorio vinculado. Para ello, defina un bloque de sincronización en el archivo de proton-ops
, como en el siguiente ejemplo.
Ejemplo ./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
En el ejemplo anterior, frontend-svc
es el nombre del servicio y alpha
, beta
, gamma
, prod-one
, prod-two
y prod-three
son las instancias.
El archivo spec
puede ser todas las instancias o un subconjunto de las instancias definidas en el archivo proton-ops
. Sin embargo, como mínimo, debe tener la instancia definida en la ramificación y la especificación desde la que se sincronice. Si las instancias no están definidas en el archivo proton-ops
, con la ramificación específica y la ubicación del archivo spec
, el servicio de sincronización no creará ni actualizará esas instancias.
El siguiente ejemplo muestra el posible aspecto de los archivos spec
. Recuerde que el archivo proton-ops
se sincroniza desde estos archivos spec
.
Ejemplo./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"
Ejemplo./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"
Ejemplo./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"
Si una instancia no se sincroniza y hay un problema persistente al intentar sincronizarla, llamar a la API GetServiceInstanceSyncStatus
puede ayudar a resolver el problema.
nota
Los clientes que utilizan la sincronización de servicios siguen estando restringidos por AWS Proton ciertos límites.
Bloqueadores
Al sincronizar tu AWS Proton servicio mediante la sincronización de servicios, puedes actualizar las especificaciones del servicio y crear y actualizar instancias de servicio desde tu repositorio de Git. Sin embargo, puede haber ocasiones en las que necesites actualizar un servicio o una instancia manualmente a través de la AWS Management Console tecla o. AWS CLI
AWS Proton ayuda a evitar sobrescribir los cambios manuales que realice a través del AWS Management Console o AWS CLI, por ejemplo, actualizar una instancia de servicio o eliminar una instancia de servicio. Para conseguirlo, AWS Proton crea automáticamente un bloqueador de sincronización de servicios al deshabilitar la sincronización de servicios cuando detecta un cambio manual.
Para obtener todos los bloqueadores asociados a un servicio, se debe hacer lo siguiente para cada serviceInstance
asociada al servicio:
-
Llamar a la API
getServiceSyncBlockerSummary
solo con elserviceName
. -
Llamar a la API
getServiceSyncBlockerSummary
con elserviceName
y elserviceInstanceName
.
Esto devuelve una lista de los bloqueadores más recientes y el estado asociado a ellos. Si algún bloqueador está marcado como ACTIVO, debe resolverlo mediante una llamada a la API UpdateServiceSyncBlocker
con el blockerId
y resolvedReason
para cada uno de ellos.
Si actualiza o crea una instancia de servicio manualmente, AWS Proton crea un bloqueador de sincronización de servicios en la instancia de servicio. AWS Proton continúa sincronizando todas las demás instancias de servicio, pero deshabilita la sincronización de esta instancia de servicio hasta que se resuelva el bloqueo. Si eliminas una instancia de servicio de un servicio, AWS Proton crea un bloqueador de sincronización de servicios en el servicio. Esto AWS Proton impide que se sincronice ninguna de las instancias de servicio hasta que se haya resuelto el bloqueo.
Una vez que tenga todos los bloqueadores activos, deberá resolverlos mediante una llamada a la API UpdateServiceSyncBlocker
con el blockerId
y resolvedReason
para cada uno de los bloqueadores activos.
Con el AWS Management Console, puede determinar si la sincronización de un servicio está deshabilitada navegando hasta la pestaña Service Sync AWS Proton y seleccionándola. Si el servicio o las instancias de servicio están bloqueados, aparecerá el botón Habilitar. Para habilitar la sincronización de servicios, seleccione Habilitar.