繁体   English   中英

如何将新的 cdk 堆栈与现有的 aws EventBridge (EventTarget) 集成

[英]How to integrate new cdk stack with existed aws EventBridge (EventTarget)

由于 AWS 上的资源是在控制台上手动创建的。 例如RuleEventBusAPIDestination (目标)。 意味着这些资源不提供任何 cdk 代码。

重点是我想用现有的EventBusAPIDestination (Target)** 添加更多规则 然后在 cdk 代码中的目标中自定义input_transformer

from aws_cdk import aws_events as events, aws_events_targets as targets

class TheDestinedLambdaStack(core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        new_rule = events.Rule(
            self, 
            "rule",
            event_pattern=events.EventPattern(),
            event_bus=events.from_event_bus_arn(), # imported
            targets=#APIDestination with params and transformer, dont know method ???
        )

有可能实现这个吗?
或者有人知道EventTarget的哪种方法能够将现有资源导入 cdk?

文档: https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_events/EventBus.html

L1 CfnRule构造可以针对现有的 API 目标和自定义总线创建新规则。 它还可以选择应用输入转换:

events.CfnRule(
    self,
    "Rule",
    event_bus_name="my-bus-name",
    event_pattern={"source": ["cdk-test"]},
    targets=[
        events.CfnRule.TargetProperty(
            arn="arn:aws:events:us-east-1:xxxx:api-destination/xxxxxxxx",
            id="foo_rule",
            role_arn="arn:aws:iam::xxxxx:role/xxxxxxxxx",
            input_transformer=events.CfnRule.InputTransformerProperty(
                input_paths_map={"detail-type": "$.detail-type"},
                input_template=json.dumps(
                    {
                        "transformed": '{"name": "DETAIL_TYPE", "value": <detail-type>}'
                    }
                ),
            ),
        )
    ],
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM