gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:40:13 25 4
gpt4 key购买 nike

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

我使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com