问题标签 [aws-api-gateway]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aws-lambda - AWS API Gateway:如何将 IAM 身份传递给 Lambda 函数?
我已使用 AWS API Gateway 前端成功配置了对我的 Lambda 函数的 IAM 身份验证访问,但无法找到如何将 IAM 用户身份传递给我的 Lambda 函数。
我完全需要 IAM 用户身份,并且无法在调用 IAM 用户凭证下运行 Lambda 函数。我所需要的只是在我的 Lambda 函数中调用 IAM 用户身份。
有选择吗?
javascript - Amazon API Gateway IAM 使用生成的 JS 开发工具包进行身份验证的示例
我按照官方文档在 Amazon API Gateway 上创建了示例 GET 和 POST API。我已经为这些 API 生成了 JS SDK,我用它来从托管在 S3 上的客户端 JS 文件调用这些 API。无需任何“授权类型”即可完美运行。
现在,当我将 GET 方法的“授权类型”设置为“IAM”时,我需要传递 IAM 凭证才能使其工作。尽管传递了我的 AWS 账户的根凭证,但我在响应标头中得到了这个:
最后它返回一个403错误代码。
我的问题是:有没有人成功地尝试使用从 Amazon API Gateway 生成的 JavaScript 开发工具包和 IAM 身份验证?你能指出我可能出错的地方吗?
谢谢。
node.js - AWS Lambda 函数可以调用另一个函数吗
我有 2 个 Lambda 函数 - 一个产生报价,另一个将报价转化为订单。我希望 Order lambda 函数调用 Quote 函数来重新生成报价,而不是仅仅从不受信任的客户端接收它。
我已经看过我能想到的所有地方 - 但看不到我将如何链接或调用函数......当然这存在!
aws-lambda - 将 Lambda 输出映射到 API Gateway 标头
我正在尝试将来自 Lambda 函数的 JSON 输出映射到 API Gateway 调用的标头。作为此处的示例,我们可以考虑重定向场景。所以我想Location
在我的 API Gateway 调用的响应中添加一个标头。
来自 Lambda 函数的 JSON 输出:
在“方法响应”->“响应标头”中,我可以将Location
标头添加到所需的 HTTP 状态代码。
然后在“Integration Response”->“Header Mappings”中,我可以将标头的映射添加Location
为something。
现在我的问题是这应该是什么?
注意:我已经尝试过integration.response.header.Location
,或使用“映射模板”,但到目前为止还没有运气。
目前可能无法实现(https://forums.aws.amazon.com/thread.jspa?messageID=651482),但由于 API Gateway/Lambda 目前发展如此之快,我会无论如何问。
amazon-web-services - Twilio 在指向连接到 Lambda 的 AWS API Gateway 时返回 502
我有一个指向 AWS API 网关的 twilio 数字,该网关连接到返回 XML 的 AWS lambda 函数。经过多次尝试,我终于能够将 Lambda 的响应映射到 API 网关,现在它正在为 twilio 返回有效的 XML。如果我尝试转到 URL 或尝试对 URL 进行卷曲,我会得到预期的结果:一些 XML。但是,当我从 twilio 尝试此操作时,我得到 502 Bad gateway。不知道为什么?我也从多个 IP 地址尝试过这个,所以我不认为这是一个安全问题,因为我没有在 API 网关上启用任何安全性或身份验证。我需要帮助...
amazon-web-services - 处理 AWS API Gateway 阶段的不同端点
我希望能够更改在每个 API Gateway 方法中定义的端点,以便名为“Dev”的登台环境指向我的内部开发 API,而 Prod 阶段当然会路由到我的生产 API。
现在我必须手动更改每种方法,然后部署到 prod stag,但现在要进行任何测试,我必须再次将它们全部更改为开发阶段。
我正在通过 DNS 切换将 Dev 转移到 Prod,但未来的开发仍然需要对每种方法进行更改。
例子:
我有一个名为 User 的资源和一个映射到端点(HTTP 代理)的 GET 方法 - > http://dev.mytestapp.com/api/v1/user
然后我部署到一个名为 Dev 的阶段 - Dev 阶段给了我一个 URL 来调用来请求这个资源,例如。https://xxxobl.execute-api.us-east-1.amazonaws.com/dev/user
现在我进行了测试,它按预期工作,所以我想把它移到生产阶段,称为阶段。当我部署到 prod 时,我的调用 url 现在是https://xxxxobl.execute-api.us-east-1.amazonaws.com/prod/user
但问题是 API 仍在将端点映射到http://dev.mytestapp.com/api/v1/user而不是http://prod.mytestapp.com/api/v1/user
所以我的舞台和网址已经改变,但实际调用的 API 被硬编码为 dev。
有任何想法吗?谢谢
aws-api-gateway - 如何将数组查询参数传递给 AWS API Gateway?
Rails API 通常喜欢这样的数组查询参数:
example.com?colors[]=cyan&colors[]=magenta&colors[]=yellow&colors[]=black
我如何将其映射到 lambda 函数?
amazon-web-services - 使用 http 端点访问 lambda 中的 HTTP 请求(标头、查询字符串、cookie、正文)对象
我正在尝试查看如何从 lambda 代码中访问请求标头和正文值。如果请求正文是 JSON 格式,它似乎会自动被解析并在事件对象中可用。
如何访问 Lambda 内任何类型的传入“Content-Type”请求的完整查询字符串、请求正文、请求标头 (cookie)?
下面的编辑是我收集的信息,以帮助解决可能相关或不相关的问题。如果您愿意,请忽略它们。
编辑:
我在这里和这里浏览了关于 SE 的现有问题。根据这个线程,使用$input.json('$')
应该可以解决问题。我猜上面这些链接的答案已经过时了,因为默认情况下 API 网关似乎可以识别请求中的 JSON,如果是这样,它可以在event
对象中使用而无需配置任何映射模板。
按照建议设置映射对我不起作用。它不包含请求头信息。
这是有关如何配置的屏幕截图。
“headers”键返回一个空白值。使用$input.params('$')
还是"$input.params('$')"
出错了。
编辑 2
尝试在方法请求中定义标头。仍然没有在 lambda 中获取 User-Agent 值。
编辑 3
我在 API Gateway 上使用了以下模板映射
以及下面的 lambda 代码
查看响应中的“标头”值,AWS-SDK/API 网关/cloudfront 似乎剥离了从 HTTP 客户端接收到的所有标头?这是 $input.params().header 返回的 JSON 的全文
它的标头中没有 User-Agent 字符串,尽管如上面的屏幕截图所示,它是由 REST 客户端发送的。有趣的是,整个查询字符串都可用。不确定这是否是访问它的预期方式。
amazon-web-services - Amazon API Gateway - 删除 API 密钥
您能否删除已通过 AWS 管理控制台的 Amazon API Gateway 页面创建的 API 密钥?也许我们只能打开关闭“启用”复选框?