簡體   English   中英

AWS-CDK:需要將管道中生成的資源傳遞給創建的堆棧

[英]AWS-CDK: Need to pass resource generated in pipeline to a created stack

我目前正在研究跨賬戶部署管道。

我正在使用 4 個不同的堆棧:

  • 后端管道堆棧
  • 公共基礎設施堆棧
  • 資產部署堆棧
  • BusinessAssetAPIStack

最后 2 個堆棧都有包含生成Layer和構建 JS 文件的props (用於不同的 Lambda)。

我的cdk.ts看起來像這樣:

import * as cdk from "@aws-cdk/core"
import { BackendPipelineStack } from "../lib/backend-pipeline"
import { BusinessAssetAPIStack } from "../lib/business-asset-api-stack"
import { projectConfig } from "../config/config"
import { AssetDeploymentStack } from "../lib/asset-deployment-stack"
import { CommonInfrastructureStack } from "../lib/common-infrastructure-stack"
const app = new cdk.App()
const commonInfraStack = new CommonInfrastructureStack(app, "CommonInfrastructureStack", {
  stackName: `${projectConfig.resourcePrefix}-common-infrastructure-stack`,
})
const apiStack = new BusinessAssetAPIStack(app, "BusinessAssetAPIStack", {
  stackName: `${projectConfig.resourcePrefix}-business-asset-api-stack`,
  ...,
  installationUserEmailIndexName: commonInfraStack.installationTechnicalAssetUserEmailIndexName,
})
const deploymentStack = new AssetDeploymentStack(app, "AssetDeploymentStack", {
  stackName: `${projectConfig.resourcePrefix}-asset-deployment-stack`,
  ...,
  installationAccountRegionIndexName: commonInfraStack.installationAccountRegionIndexName,
})

new BackendPipelineStack(app, "BackendPipelineStack", {
  nonProdAccountId: "nonProdAccountId",
  apiStack,
  commonInfraStack,
  deploymentStack,
})

我的BackendPipelineStack堆棧是生成codepipeline.Artifact的堆棧,它存儲構建的 JS 文件和Layer

//backend-pipeline.ts
export class BackendPipelineStack extends Stack {
   ...
   const lambdaBuildOutput = new Artifact("DistArtifact")
   const lambdaLayer = new Artifact("LayerArtifact")
   ...

我希望能夠將兩個Artifacts傳遞給通過 PipelineStack 構造函數傳遞的其他堆棧。

有沒有辦法做到這一點?

我為那些與我陷入同樣境遇的人找到了答案。

查看管道操作,有一個稱為CloudFormationCreateOrUpdateStack允許通過CfnParametersCode覆蓋 Lambda 堆棧中提供的參數(這里是 python 示例)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM