首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AWS EventBridge集成细节体中包含上下文变量

问如何在AWS EventBridge集成细节体中包含上下文变量
EN

Stack Overflow用户
提问于 2022-01-31 21:48:03
回答 1查看 340关注 0票数 0

我有一个ApiGatewayv2事件桥-PutEvents集成正在运行。将POST正文作为事件细节发送到事件桥中。

集成请求参数如下:

代码语言:javascript
复制
{
    'Source': 'com.me.api',
    'DetailType': 'ApiEvent',
    'Detail': $request.body,
    'EventBusName': BUS_NAME,
}

如果我将{"foo":"bar"}发布到API端点,则在总线中以{"foo":"bar"}作为Detail结束事件。到目前为止,一切都很简单。

我还在API上启用了一个授权程序,我也希望将上下文从该授权程序传递到事件细节中。

目前,我正在使用IAM授权程序进行测试,但希望使用科尼图。

我可以更新请求参数以将DetailType更改为$context.identity.caller,并在事件的DetailType中获取访问键。

这不是我想要的,但它表明我可以在集成中访问这些上下文变量。

不过,我想要的是细节,而不是DetailType。

因此,当我将{"foo":"bar"}发布到我的API GW时,我会得到一个包含详细信息的事件:

代码语言:javascript
复制
{
    "body": {"foo":, "bar"},
    "auth": {"user": "AAA1111ACCESSKEY"}
}

但是,除了$request.body之外,我不能使用它作为Integration参数中的Detail值。

如果使用像{"body": $request.body}这样的详细信息,则在保存集成- Invalid selection expression specified: Validation Result: warnings : [], errors : [Invalid source: {"body": $request.body} specified for destination: Detail]时会出现错误。

而且,我也尝试过使用字符串{"body":$request.body}。

如何将POST数据封装在事件详细信息中,如"body“键中,并从我从授权程序获得的上下文变量中添加键/值。

或者,将授权程序上下文注入到我的事件中的其他方式。我应该放弃使用lambda来访问ApiGw上下文并运行PutEvent吗?似乎是失败主义者!

EN

回答 1

Stack Overflow用户

发布于 2022-02-10 21:59:52

这个SAM模板展示了如何使用API https://github.com/aws-samples/client-event-sample/blob/6d58777382da148a3ccc1314b0bdf21c46b6378f/template.yaml#L196来做我想做的事情。

rest端点带来了额外的好处,我们可以验证入站事件json。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70933202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档