我正在尝试使用CDK创建一个简单的堆栈,其中代码流水线会触发lambda。
我碰壁试图设置CfnNotificationRule的目标:
THE_PIPELINE_ARN = "arn:aws:codepipeline:eu-west-2:121212121212:the-pipeline"
class ExampleStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
notification_topic = aws_sns.Topic(self, "TheNotificationTopic")
notification_rule = aws_codestarnotifications.CfnNotificationRule(
self,
"StackStatusChangeNotificationRule",
detail_type="FULL",
event_type_ids=[
"codepipeline-pipeline-action-execution-succeeded",
"codepipeline-pipeline-action-execution-failed",
],
name="TheStackCodeStarNotificationsNotificationRule",
resource=THE_PIPELINE_ARN,
targets= # what goes here?
)
我希望通知转至notification_topic定义的SNS主题。
我认为这应该是基于的aws_cdk.aws_codestarnotifications.TargetProperty https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-codestarnotifications.CfnNotificationRule.TargetProperty.html 但Python似乎不存在该类型。
答案 0 :(得分:2)
THE_PIPELINE_ARN = "arn:aws:codepipeline:eu-west-2:121212121212:the-pipeline"
class ExampleStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
notification_topic = aws_sns.Topic(self, "TheNotificationTopic")
notification_rule = aws_codestarnotifications.CfnNotificationRule(
self,
"StackStatusChangeNotificationRule",
detail_type="FULL",
event_type_ids=[
"codepipeline-pipeline-action-execution-succeeded",
"codepipeline-pipeline-action-execution-failed",
],
name="TheStackCodeStarNotificationsNotificationRule",
resource=THE_PIPELINE_ARN,
targets= [aws_codestarnotifications.CfnNotificationRule.TargetProperty(
target_type="SNS",
target_address=notification_topic.topic_arn),
]
)