![](/img/trans.png)
[英]How to use AWS CDK to set EventBridge Rule Target for Lambda with Alias
[英]How to integrate new cdk stack with existed aws EventBridge (EventTarget)
由于 AWS 上的资源是在控制台上手动创建的。 例如Rule 、 EventBus 、 APIDestination (目标)。 意味着这些资源不提供任何 cdk 代码。
重点是我想用现有的EventBus和APIDestination (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.