gpt4 book ai didi

aws-cloudformation - 如何获取同一 CDK 堆栈内的代码管道的 ARN

转载 作者:行者123 更新时间:2023-12-03 07:30:58 26 4
gpt4 key购买 nike

我正在尝试将通知规则设置为 CDK 堆栈中代码管道的一部分。

请注意,这不是 CDK 管道,而是正在设置 AWS CodePipeline 的 CDK 堆栈。

为了创建 CfnNotificationRule,我必须传入 CodePipeline 的 ARN 作为 resource 参数。在下面的示例代码中,我将 ARN 硬编码为 TARGET_ARN

但是,我想动态地提供这个。

如何将 CDK 为 my-pipeline 生成的 ARN 提供给 CfnNotificationRule 构造函数?

const codepipeline = require('@aws-cdk/aws-codepipeline');

class PipelineStack extends cdk.Stack {

constructor(scope, id, props) {
super(scope, id, props);

//I want the ARN of this pipeline in TARGET_ARN
new codepipeline.Pipeline(this, 'Pipeline', {
crossAccountKeys: false,
pipelineName: "my-pipeline",
stages: [{
stageName: 'Source',
},
{
stageName: 'Build',
},
{
stageName: 'Deploy',
]
}
]
})



const AWS_SLACK_CHATBOT_ARN = 'arn:aws:chatbot::111111111111:chat-configuration/slack-channel/my-slack-channel'
const TARGET_ARN = 'arn:aws:codepipeline:us-east-2:111111111111:my-pipeline'

const notes = new notifications.CfnNotificationRule(this, 'my-dev-slack', {
detailType: "FULL",
name: "my-dev-slack",
eventTypeIds: [
"codepipeline-pipeline-action-execution-succeeded",
"codepipeline-pipeline-action-execution-failed",
"codepipeline-pipeline-stage-execution-failed"
],
targets: [{
targetType: "AWSChatbotSlack",
targetAddress: AWS_SLACK_CHATBOT_ARN
}],
resource: TARGET_ARN

})
}
}

最佳答案

将管道初始化为局部变量,然后您可以使用其内部方法,例如您的新代码将如下所示(我注意到您在 stageName 下有一个括号 [: '部署',导致代码注释编译,因此我在示例中删除了它)

        const myPipeline = new codepipeline.Pipeline(this, 'Pipeline', {
crossAccountKeys: false,
pipelineName: "my-pipeline",
stages: [{
stageName: 'Source',
},
{
stageName: 'Build',
},
{
stageName: 'Deploy',

}]
})

myPipeline.pipelineArn

myPipeline.pipelineArn 将为您提供 ARN

关于aws-cloudformation - 如何获取同一 CDK 堆栈内的代码管道的 ARN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64781823/

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