【发布时间】:2016-05-18 07:59:59
【问题描述】:
我们希望使用 AWS 将现有 API 设置为 SAAS 我们的代码已通过 elastic-beanstalk 部署,并且我们通过网关创建了对方法的访问以管理权限。
我们现在正尝试记录用户的活动,以进行计费
目前,我们找到的最佳解决方案涉及完整的调用记录(启用 CloudWatch Logs + 记录完整的请求/响应数据),这看起来相当繁重,甚至可能最终变得昂贵。
我们对集成请求中的请求正文进行了重新设计,为正文添加了一个映射模板,但这似乎很繁琐,但希望我们错过了更好的解决方案。
基本上,我们用生成的基本“passthrough”代码替换了默认的“passthrough”,并在其中添加了一个值“MyUserArn”:“$context.identity.userArn”,这使得请求正文充满了混乱,但看起来像是“避免破坏某些东西的最可靠方法”。
我们只想在标头或查询字符串参数中添加 IAM 用户标识符,但未能找到这是否可行。有几篇文章提到了“使用调用者凭据调用”选项,但我们也没有找到这个选项。
是与 cognito 相关还是其他?
我们是不是做错了什么?
【问题讨论】:
-
你能澄清一下什么是“大混乱”吗?
-
使用默认的“passthrough”创建body会在输出body中增加很多细节(body内容被移动到变量
"body-json",还有很多数据比如"query params"、"content-type"和添加了"date"。我使用它是因为我认为它可能是必要的(如果需要传递非空值),但我现在可以更新这一点,因为我用$input.json('$'), "userArn" : "$context.identity.userArn"的简单输出替换了所有这些. 填充原本为空的请求正文看起来并不像我需要的东西。
标签: amazon-web-services saas aws-api-gateway amazon-cloudwatch