node.js - AWS-CDK:需要将管道中生成的资源传递到创建的堆栈

标签 node.js amazon-web-services aws-cloudformation aws-cdk

我目前正在开发跨帐户部署管道。

我使用 4 个不同的堆栈:

  • 后端管道堆栈
  • 通用基础设施堆栈
  • Assets 部署堆栈
  • BusinessAssetAPIStack

最后 2 个堆栈都有 props,其中包括生成的 Layer 和构建的 JS 文件(针对不同的 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 (here's a python example) 覆盖 Lambda Stack 中提供的参数。 .

关于node.js - AWS-CDK:需要将管道中生成的资源传递到创建的堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70940592/

相关文章:

amazon-dynamodb - 授予一个 IAM 角色对大量 DynamoDB 表的访问权限

java - 用于将文件从 HDFS 复制到 AWS S3 的 Hadoop 服务器连接

json - Spectron 测试产生 JScript 语法错误

node.js - elasticdump 中的 SyntaxError : Unexpected token { at exports. runInThisContext (vm.js:53:16)

javascript - 在 Node.js 中使用 post 请求获取选中的单选按钮的值

amazon-web-services - 当消息发布到SQS时如何触发lambda?

amazon-web-services - 通过 CloudFormation 授予 Lake Formation 对 Glue 数据库中所有表的读取权限

python-3.x - 在 aws CodePipelines 上工作,每次创建堆栈都会失败

amazon-web-services - 通过 CloudFormation 为现有表添加自动缩放功能到 AWS DynamoDB

javascript - 如何从随机生成的数组中排除某些值