Tag: aws api gateway

AmazonWebService – 我应该使用AWS API网关还是AWS SDK

我试图从NodeJS调用一个lambda函数。 经过研究,我知道两种方法来做到这一点: 将Lambda函数分配到AWS API网关并调用该API。 通过AWS SDK调用Lambda函数 API网关和AWS SDK的优缺点是什么? 何时使用上面的每个方法?

在另一个独立的lambda中获取AWS API网关主机名

我已经使用无服务器部署创build了一个API网关。 AWSdynamic地为网关创buildurl, https://xxxx.execute-api.us-west-2.amazonaws.com/test/hello 这里xxxx (即主机)正在dynamic生成。 请让我知道是否有任何方法来手动设置此主机(无需创build自定义域和所有这些漫长的过程)。 或者有什么办法来获得这个主机名在另一个独立的lambda使用代码。 我们不想在该lambda中编写硬编码主机名。 任何帮助提前感激。 谢谢。

如何从节点正确调用aws api网关

我在下面的节点代码中调用aws api网关: module.exports = function(app) { var apigClientFactory = require('aws-api-gateway-client').default; var querystring = require('querystring'); var params = { //This is where any header, path, or querystring request params go. The key is the parameter named as defined in the API userId: '1234' }; var additionalParams = {}; app.get('*', function(req, res) { res.sendfile('./public/index.html'); }); app.post("/customerinfo", function(req, […]

API网关+ lambda上的http / 2

有没有可能运行http / 2与aws-serverless-express推? 据我所知,aws API网关支持http / 2(通过https://tools.keycdn.com/http2-test进行validation)。 Unfornately我找不到在lambda上部署的node.js应用程序下的任何http / 2压入示例。 我发现的唯一例子是支持http / 2的node.js应用程序: https : //github.com/azat-co/http2-node-server-push 有小费吗? 解决scheme? 这甚至有可能吗?

AWS Lambda网关API会提供错误消息

我为lambda函数创build了一个API端点,如下所示: https://XXXXXXXXX.execute-api.us-east-1.amazonaws.com/XXXX/XXXXXXXXXXXX/这是GET方法。 在从邮差中调用这个端点的时候,它正在给我 {“message”:“XXXXXXXXX3LPDGPBF33Q:XXXXXXXXXXBLh219REWwTsNMyyyfbucW8MuM7”授权标头中没有有效的键=值对(缺less等号):“AWS XXXXXXXXX3LPDGPBF33Q:XXXXXXXXXXBLh219REWwTsNMyyyfbucW8MuM7”。 } 这是Amazon Lambda上传网站的屏幕截图: http : //i.stack.imgur.com/mwJ3w.png 我有IAM用户的访问密钥ID和密钥访问密钥。 我用它,但没有运气。 任何人都可以build议调整这一点。

AWS backend +响应前端:处理请求

我正在搞AWS,我已经使用dynamodb,api网关和cognito设置了一个简单的REST API。 我用node + express编写了REST API。 我的节点应用程序在EB上,基本上我使用cognito处理API网关中的请求的身份validation。 作为一个独立的,这似乎是正常工作,因为我正在testing它使用一个简单的反应的应用程序。 现在我正在为我的实际反应应用程序做服务器端渲染,所以我试图找出处理这个问题的最佳方法。 对于服务器端渲染,我有另一个名为react-app-server的节点应用程序,我想在API网关上处理caching,并使用cloudfront来提供静态文档,图像等。 所以,如果我去www.mysite.com/for-sale/some-item-thats-for-sale ,这个请求应该首先检查是否有这个页面的caching版本并提供它。 否则,我需要让我的react-app-server呈现.html并提供/caching它。 由于有两个节点应用程序,api-server和react-app-server,我怎么能从我的api-gateway指向react-app-server来呈现html? 这个场景如何适应AWS体系结构? 我意识到这可能是一个非常愚蠢的问题,但我真的很新。 谢谢

AWS API网关 – Elastic Beanstalk – 受限访问

我在Amazon EB上有一个NodeJS API,在API网关上有一个API。 API网关被configuration为EB的代理。 我可以调用我的API没有问题,它的工作,但我不知道如何pipe理安全。 实际上,如果我使用API​​网关URL,我必须签署请求(没关系!),但我可以使用EBurl,没有必要。 在使用API​​网关之前,我正在使用JWT,但现在应该在Node应用程序上做什么? API网关正在使用授权标头签署请求,所以我的节点应用程序必须检查此签名也许? 或者是其他东西?

AWS API网关:由于configuration错误而导致执行失败:响应中的JSON无效

我有一个调用Lambda函数的自定义授权者的API网关设置。 为了testing的目的,我从这里复制了这个例子: http : //docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html#api-网关代理集成-λ-function的NodeJS 我得到的文件相同的答案,但是当我testing授权者,我得到这个堆栈跟踪: Endpoint request body after transformations: {"type":"TOKEN","authorizationToken":"test","methodArn":"arn:aws:execute-api:ap-southeast-2:893445519708:uyue0zqh15/null/GET/"} Authorizer result body before parsing: {"statusCode":200,"headers":{"x-custom-header":"my custom header value"},"body":"{\"message\":\"Hello World!\",\"input\":{\"type\":\"TOKEN\",\"authorizationToken\":\"test\",\"methodArn\":\"arn:aws:execute-api:ap-southeast-2:893445519708:uyue0zqh15/null/GET/\"}}"} Execution failed due to configuration error: Invalid JSON in response: {"statusCode":200,"headers":{"x-custom-header":"my custom header value"},"body":"{\"message\":\"Hello World!\",\"input\":{\"type\":\"TOKEN\",\"authorizationToken\":\"test\",\"methodArn\":\"arn:aws:execute-api:ap-southeast-2:893445519708:uyue0zqh15/null/GET/\"}}"} AuthorizerConfigurationException 为什么授权人不喜欢JSON响应?

如何从AWS Api网关获取根path“/”资源?

我一直在尝试使用NodeJs AWS SDK从AWS Api Gateway的path“/”(root)检索资源。 我知道天真的解决办法就是这样做: var AWS = require('aws-sdk'); var __ = require('lodash'); var Promise = require('bluebird'); var resources = []; var apiGateway = Promise.promisifyAll(new AWS.APIGateway({apiVersion: '2015-07-09', region: 'us-west-2'})); var _finishRetrievingResources = function (resources) { var orderedResources = __.sortBy(resources, function (res) { return res.path.split('/').length; }); var firstResource = orderedResources[0]; }; var _retrieveNextPage = function […]

为什么我的Lambda函数超时,即使API网关callback已被调用?

我有一个AWS API网关方法,通过AWS Lambda代理请求。 但是,它在三秒钟后在日志中出现以下错误: 转换前的端点响应主体:{“errorMessage”:“2017-09-05T16:30:49.987Z 922186c0-9257-11e7-9db3-51921d5597a2任务在3.00秒后超时”} 因此,我继续检查我的Node 6.10 AWS Lambda函数,看看它为什么会超时。 我在每个函数调用之前和之后添加了日志logging。 令人惊讶的是,它做了所有它应该做的事情:称为API网关callback,然后对数据库运行一个查询。 所有需要0.6s的,据我所知,没有其他的代码需要运行。 尽pipe如此,它似乎继续在三秒钟的其余时间运行,然后超时。 (这是,我想,因为我打开数据库的连接。) 我在callback调用之前和之后放置的日志语句表明,该调用在半秒内执行。 然而,这种回应似乎并没有使它成为API网关,而三秒钟后的错误呢。 这可能是什么原因,我该如何debugging呢?