es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo desactivar la transición en CodePipeline a través de CDK?

Estoy utilizando nodejs CDK para implementar codepipeline en AWS. A continuación está el código:

const pipeline = new codepipeline.Pipeline(this, this.projectName, {
      pipelineName: this.projectName,
      role: this.pipelineRole,
      stages,
      artifactBucket: s3.Bucket.fromBucketName(
        this,
        'deploymentS3Bucket',
        cdk.Fn.importValue(this.s3Bucket)
      ),
});

Todas las etapas están definidas dentro del arreglo stages. Mi pregunta es ¿cómo puedo desactivar la transición en una de las etapas de este pipeline?

He intentado el siguiente código:

const primaryDeployStage: codepipeline.CfnPipeline = pipeline.node.findChild('Approve') as codepipeline.CfnPipeline;
      const stageTransitionProperty: codepipeline.CfnPipeline.StageTransitionProperty = {
        reason: 'reason',
        stageName: 'stageName',
      };
      primaryDeployStage.addPropertyOverride('DisableInboundStageTransitions', stageTransitionProperty);

pero muestra un error de “no such method addOverride”.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error ocurre porque el método addPropertyOverride no es un método válido para codepipeline.CfnPipeline.

    Para deshabilitar la transición en una de las etapas del pipeline, puedes utilizar la clase codepipeline.StageTransition y establecer la propiedad enabled en false.

    Aquí tienes un fragmento de código de ejemplo:

    const pipeline = new codepipeline.Pipeline(this, this.projectName, {
      pipelineName: this.projectName,
      role: this.pipelineRole,
      stages,
      artifactBucket: s3.Bucket.fromBucketName(
        this,
        'deploymentS3Bucket',
        cdk.Fn.importValue(this.s3Bucket)
      ),
    });
    
    const primaryDeployStage = pipeline.stageByName('Approve');
    if (primaryDeployStage) {
      primaryDeployStage.addTransition(new codepipeline.StageTransition(this, 'DisableTransition', {
        stage: primaryDeployStage,
        transitionType: codepipeline.TransitionType.INBOUND,
        enabled: false,
      }));
    }
    

    En este ejemplo, primero obtenemos la etapa Approve llamando a pipeline.stageByName('Approve'). Luego creamos una nueva instancia de codepipeline.StageTransition y establecemos la propiedad enabled en false para deshabilitar la transición entrante de esta etapa. Por último, llamamos a primaryDeployStage.addTransition() para agregar esta nueva transición a la etapa Approve.

Comments are closed.