代码之家  ›  专栏  ›  技术社区  ›  Joey Yi Zhao

如何在CDK中引用来自不同地区的代码构建项目?

  •  0
  • Joey Yi Zhao  · 技术社区  · 4 年前

    我正在使用CDK来部署代码管道。我的设计是将代码构建项目部署到不同的区域,并在一个区域的单个管道中引用它们。

    我将代码构建项目构建为:

    export class CodebuildCdkStack extends cdk.Stack {
      region: string;
    
      constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
        super(scope, id, props);
      }
    
      createCodebuildProject = () => {
        return new codebuild.PipelineProject(this, name, ...
        });
      }
    }
    
    const project1 = new CodebuildCdkStack(this, 'project1', {env: {region: 'ap-southeast-1', account}});
    
    const project2 = new CodebuildCdkStack(this, 'project2', {env: {region: 'ap-southeast-2', account}});
    
    actions1 =new actions.CodeBuildAction({
              ...
              project: codebuild.PipelineProject.fromProjectArn(this, `project1`, project1.projectArn),
    });
    
    actions2 =new actions.CodeBuildAction({
              ...
              project: codebuild.PipelineProject.fromProjectArn(this, `project2`, project2.projectArn),
    });
    

    当我跑步时 cdk deploy ,我收到了以下错误:

    The 'account' property must be a concrete value (action: 'project1')
    

    经过一些调试,我发现了 project1.projectArn 不是Arn字符串,而是Token对象。那么,我如何才能以正确的方式引用代码构建项目呢?

    0 回复  |  直到 4 年前