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.
Cree una EventBridge regla para una fuente de Amazon S3 (CloudFormation plantilla)
Para usarla CloudFormation para crear una regla, actualice la plantilla como se muestra aquí.
Para crear una EventBridge regla con Amazon S3 como origen y CodePipeline destino del evento y aplicar la política de permisos
-
En la sección de abajo de la plantilla
Resources, utilice elAWS::IAM::RoleCloudFormation recurso para configurar el rol de IAM que permite que su evento inicie su canalización. Esta entrada crea un rol que utiliza dos políticas:-
La primera política permite asumir el rol.
-
La segunda política concede permisos para iniciar la canalización.
¿Por qué voy a hacer este cambio? Añadir
AWS::IAM::Roleun recurso permite CloudFormation crear permisos para EventBridge. Este recurso se agrega a su CloudFormation pila. -
-
Usa el
AWS::Events::RuleCloudFormation recurso para agregar una EventBridge regla. Este patrón de eventos crea un evento que monitorizaCopyObject,PutObjectyCompleteMultipartUploaden el bucket de origen de Amazon S3. Además, incluya un objetivo de la canalización. Cuando se produceCopyObject,PutObjectoCompleteMultipartUpload, esta regla invocaStartPipelineExecutionen la canalización de destino.¿Por qué voy a hacer este cambio? Agregar el
AWS::Events::Rulerecurso permite CloudFormation crear el evento. Este recurso se añade a tu CloudFormation pila. -
Añada este fragmento a su primera plantilla para permitir la funcionalidad de pila cruzada:
-
(Opcional) Para configurar un transformador de entrada con anulaciones de origen para un ID de imagen específico, utilice el siguiente fragmento de código YAML. En el siguiente ejemplo, se configura una anulación donde:
-
actionName(Sourceen este ejemplo) es el valor dinámico, que se define en la creación de la canalización, no se deriva del evento de origen. -
revisionType(S3_OBJECT_VERSION_IDen este ejemplo) es el valor dinámico, que se define en la creación de la canalización, no se deriva del evento de origen. -
En este ejemplo
revisionValue, <revisionValue> se deriva de la variable de evento de origen.
--- Rule: my-rule Targets: - Id: MyTargetId Arn:pipeline-ARNInputTransformer: InputPathsMap: revisionValue: "$.detail.object.version-id" InputTemplate: sourceRevisions: actionName:SourcerevisionType:S3_OBJECT_VERSION_IDrevisionValue: '<revisionValue>' -
-
Guarde la plantilla actualizada en su equipo local y abra la CloudFormation consola.
-
Seleccione la pila y luego elija Create Change Set for Current Stack (Crear conjuntos de cambios para la pila actual).
-
Cargue su plantilla actualizada y, a continuación, consulte los cambios indicados en CloudFormation. Estos son los cambios que se realizarán en la pila. Debería ver los nuevos recursos en la lista.
-
Elija Ejecutar.
Para editar el PollForSourceChanges parámetro de tu canalización
importante
Al crear una canalización con este método, el parámetro PollForSourceChanges se establece en true de forma predeterminada si no se establece explícitamente en false. Al añadir la detección de cambios basada en eventos, debe añadir el parámetro a la salida y establecerlo en false para deshabilitar el sondeo. De lo contrario, la canalización comienza dos veces para un único cambio en el código fuente. Para obtener más información, consulte Configuración válida para el parámetro PollForSourceChanges.
-
En la plantilla, cambie
PollForSourceChangesporfalse. Si no ha incluidoPollForSourceChangesen la definición de la canalización, añádalo y establézcalo enfalse.¿Por qué voy a hacer este cambio? Al cambiar
PollForSourceChangesafalse, se desactivan las comprobaciones periódicas, por lo que únicamente puede utilizar la detección de cambios basada en eventos.
Para crear una segunda plantilla para los CloudTrail recursos de su canalización de Amazon S3
-
En una plantilla independiente, en
Resources, utilice losAWS::S3::BucketAWS::CloudTrail::TrailCloudFormation recursos y para proporcionar una definición y un registro sencillos del bucket CloudTrail.AWS::S3::BucketPolicy¿Por qué voy a hacer este cambio? Dado el límite actual de cinco rutas por cuenta, la CloudTrail ruta se debe crear y gestionar por separado. (Consulta la sección Límites en AWS CloudTrail.) Sin embargo, puede incluir muchos buckets de Amazon S3 en un único registro de seguimiento, por lo que puede crear el registro de seguimiento una vez y, a continuación, añadir buckets de Amazon S3 para otras canalizaciones según sea necesario. Pegue lo siguiente en el segundo archivo de plantilla de ejemplo.