我有一个通过GET请求从C#网关调用的API函数。
[LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
public ResponseModel MyFunction(RequestModel request)
{
return new ResponseModel { body = "Hello world!" };
}
public class RequestModel
{
[JsonProperty("a")]
public str
我用API网关创建了一个REST。我有一个GET方法来触发Lambda函数,但是我无法得到我需要的响应。我正确地配置了查询参数等等,但是在Lambda日志中我看到了以下内容。
com.amazonaws.serverless.exceptions.InvalidRequestEventException: The incoming event is not a valid request from Amazon API Gateway or an Application Load Balancer
2021-05-19T15:37:38.003+04:00 at com.amazonaw
我有AWS网关REST,它接受2个查询字符串参数
https://xxxxxx.xxxx.us-east-1.amazonaws.com/dev/pets?type=dog&page=1
API的调用方还在标头中包括x-api-key。我希望API网关传递查询字符串参数,x-api-key传递给lambda函数。因此,在AWS API Gateway Console中,我配置了Integration Request,如下所示
lambda函数如下所示
namespace AWSLambda1
{
public class Function
{
我试图弄清楚如何从运行在VPC中的lambda访问Api网关服务 API (又名“管理Amazon网关”)。我不是而不是,而是试图在私有API中调用资源方法(我知道如何创建execute-api VPC接口端点),只需调用AWS服务方法(get-api-key,FWIW,使用boto3客户端)。希望这是有意义的,在这里很难用太多的"API“来清楚地表达这一点。当前的尝试由于超时而失败,所以我认为这是与VPC相关的,但我不知道如何提供访问。我没有看到任何明显的端点类型会这样做。我已经看到了将NAT网关用于额外VPC资源的引用,但我不清楚这将如何应用(或是否适用)。 VPC配置了NAT网关
我有一个api网关v1 foo。
这个api网关有一个阶段bar。
我正在尝试设置一个域名baz.com来访问这个阶段。
当我创建一个将API映射到foo的新域名(stage为空)时,我可以使用https://baz.com/bar/user/get访问api。
但是,当我试图使用api映射到foo、bar到bar和path空的API访问API时,查询https://baz.com/user/get不起作用(我正在获取Could not find matching action for /get and method POST)。更奇怪的是,将路径映射设置为a,我可以查询我的api:https
如何配置Amazon API Gateway和AWS Step功能?
客户端在api网关上调用api,Api网关===>步函数===>内部调用lambda =>,lambda返回响应,==>响应返回给api网关。
现在,我的Amazon API Gateway不是直接调用AWS步骤函数,而是调用一个lambda,该lambda调用步骤函数并检查其成功状态,然后向Amazon API Gateway返回response。
我正在用C#学习AWS。我的函数看起来有点像这样:
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
namespace Function_Redeem
{
public class Function
{
public FunctionOutput FunctionHandler(FunctionInput input, ILambdaContext context)
{
还有其他关于此错误的问题,但他们正在寻找访问查询参数的方法,这不是我的方案。
在测试控制台的errorMessage字段中测试我的简单GET请求失败如下:
Can not deserialize instance of java.lang.String out of START_OBJECT token\n at [Source: lambdainternal.util.NativeMemoryAsInputStream@6bdf28bb; line: 1, column: 1
我的lambda函数是一个简单的Java类,它有一个静态方法get,它接受一个参数:路径param中的id。
例如,
我希望使用API密钥保护AWS API网关终结点。但是,API密钥必须作为查询参数的一部分发送。无法指示使用此端点的服务发送报头中的密钥(x-api- key )。
所以我想要这个请求:
在发出请求时自动将x- API -key视为API密钥。在AWS API Gateway中有没有实现这一点的直接方法?
我有一个jquery方法,如下所示:
$.post("/api/amazon/signature", { "policy": policy }, function (data) {
console.log(data);
});
api方法如下所示:
// POST api/amazon/signature
[HttpPost]
[Route("api/amazon/signature")]
public IHttpActionResult GetSignature([FromBody]string policy)
{
var bK