我正在尝试将 api 网关的调用重定向到 AWS 中的公共 elb。ELB 向世界开放,但我无法通过 API 网关使其工作。
当我调用事件操作 { "message": "Internal server error" } 时,我从邮递员那里收到此响应
从 AWS 测试控制台,我收到此错误:
2018 年 1 月 17 日星期三 20:29:12 UTC :由于配置错误而执行失败:主机名“public-elb.amazonaws.com”与对等方提供的证书主题不匹配 (CN=*.confidential.com) 17 20:29:12 UTC 2018:方法已完成,状态:500
我假设 ELB 是可访问的,因为然后我更改为另一个随机 URL,错误代码是“无效的端点地址”。
为什么我会收到此错误?我只有一个证书,并且 url 和 elb 中的证书相同。
amazon-web-services amazon-elb aws-api-gateway elastic-load-balancer api-gateway
我有一个带有 Kestrel 的 ASP.NET Core 2 应用程序。该应用程序部署到 AWS Lambda/API Gateway。一切都按预期进行,除了一个导致一切不同的小细节。
对我的应用程序的某些请求需要发出多个与安全相关的Set-Cookie标头。由于 API Gateway 和 Lambda 之间传递数据的方式,重复的标头名称会连接在一起,这会导致标Set-Cookie头无效并且浏览器拒绝接受它。
克服此限制的建议解决方案是使用仅因大小写而异的多个标头名称:Set-Cookie, Set-cookie, set-cookie...
我知道这是一个 hacky 解决方案,但如果它有效,那么在 AWS 修复这个限制的同时,它应该已经足够好了。
但是,当使用 时HttpContext.Response.Headers.Add(name, value),已知的标头名称将被规范化并成为常规的重复标头。
是否有可能绕过这种常态化机制或以其他方式实现最终目标?
我正在使用 AWS,并且有以下设置:UserPool; API网关、Lambda函数
API 网关使用 UserPool 授权者来保护 lambda 函数。到目前为止,这是有效的。现在我想将每个 lambda 函数限制为特定的用户组。因此,我在 CognitoPool 中创建了两个用户组(user和admin),并使用策略为每个组分配了特定角色。之后,我在 UserPool 中创建了一个用户并将其添加到该user组中。该用户仍然能够向每个路由/lambda 函数提交请求。
我如何提交请求?
IdToken(经过身份验证的用户)AuthorizationAuthorization标头,响应是 401(如预期)Authorization标头,每个 lambda 函数都可以被触发(不是预期的)用户池组的配置:
团体用户:
Role ARN: arn:aws:iam::xxxxxx:role/User用户角色指定为
{
"Version": "2012-10-17",
"Statement": [
"Action": [
"lambda:InvokeFunction",
"lambda:InvokeAsync"
],
"Resource": [
"arn:aws:lambda:region:xxxxxx:function:api-dev-getItems
],
"Effect": "Allow"
]
}
Run Code Online (Sandbox Code Playgroud)群组管理员:
Role ARN: arn:aws:iam::xxxxxx:role/AdminAdminRole 指定为
{
"Version": "2012-10-17",
"Statement": [
"Action": [
"lambda:InvokeFunction",
"lambda:InvokeAsync"
],
"Resource": …Run Code Online (Sandbox Code Playgroud)amazon-web-services amazon-cognito aws-lambda aws-api-gateway
我正在使用 API 网关,这是我的 api 网关:
所以这只是一种post方法,其更多细节如下:
该问题与方法响应中的 200 响应中缺少 og application/json 有关,如以下链接中所述:
为了解决这个问题,我尝试手动添加
现在我将 application/json 添加为空。但当我尝试启用 cors 时,我仍然收到指定的无效状态代码。知道如何修复它吗?
我正在使用 API Gateway 和 Lambda 构建一个无服务器 Web 应用程序,它限制 Cognito 和 IAM 对注册用户的 API 调用。我们有个人/企业用户,希望对特定企业用户设置额外的访问限制。
所以就有了如下的用户组。
控制这种访问限制的有效方法是什么?
我部署了一个 lambda,它本身'Access-Control-Allow-Origin': '*'在其响应中返回一个标头。
我从 API 网关调用它。调用API网关URL时,CORS配置即可。
我将 CloudFront 放在 API 前面,但是现在我无法访问 API,因为 CORS 配置似乎被 CloudFront 覆盖,并且我不确定在 CloudFront 中的何处添加自定义标头。
如何在 CloudFront 中启用 CORS?
amazon-web-services amazon-cloudfront aws-lambda aws-api-gateway
我使用 Lambda Integration 设置 API 网关并遇到了这个问题。
请求URI:https://api-gateway-host/stage/hoge
hoge 不是配置的路径,因此返回:
请求URI:https://api-gateway-host/stage/ho[ge
路径是ho"["ge。它也不是配置的路径,所以我期望相同的结果,但是:
/ho]ge、/ho[]ge、/ho[g]e、/hoge[]和都/hoge[1]返回相同的结果。实际上,如果方括号是在“查询”中,例如/hoge?q=hoge[],它是可以接受的。
有谁知道原因吗?这是Api网关的限制吗?我认为这并不违反RFC。
环境
您好,我正在尝试aws apigateway create-stage 命令,我需要部署 ID 来创建新阶段,因为它是[必需]选项。
我在控制台上找不到部署 ID。
我已经从控制台创建了 2 个阶段(从 Actions--> DeployApi)。在哪里可以找到部署 ID?它在控制台上可用吗?
请帮忙。
有人知道我可以.yml在 Flask 上提供 swagger UI 文件而不创建或连接 API 的方法吗?我只是想在网站上显示 swagger 文件,以便人们可以看到如何使用 API,但我不想创建 API 或连接任何东西,因为 API 是私有的,所以无论如何都不能调用它。
该API来自AWS API Gateway,所以我无法将任何东西与flask连接起来。
我研究了connexion,但我需要连接我的 API 方法才能使用它,但这是行不通的。
我可以使用 openapi 编辑器将 api 规范转换为 html,然后提供 html,但我想尝试使用 swagger ui 提供的漂亮布局。
我设置了一个 AWS Cognito 用户池/身份池来授权 API 网关后面的 Lambda 函数。我的 lambda 使用适用于 Node.js 的 AWS 开发工具包。登录过程工作正常。在我的函数中,我有一个CognitoIdentityServiceProvider用于调用该getUser函数的对象。我为函数提供的访问密钥来自 lambda 变量event.requestContext.identity.accessKey。但是,函数调用失败,并通过我的 Cloud Watch 日志查看以下错误:
{
"message": "Invalid Access Token",
"code": "NotAuthorizedException",
"time": "2019-08-03T20:34:50.511Z",
"requestId": ...,
"statusCode": 400,
"retryable": false,
"retryDelay": 36.048605458111794
}
Run Code Online (Sandbox Code Playgroud)
在经过身份验证的请求中提供给我的令牌为何无效?我什至不确定如何调试它,或者我应该寻找什么问题。
我如何尝试在 lamdba 处理程序中进行调用的示例:
var AWS = require('aws-sdk');
AWS.config.region = "us-west-2";
let poolData = {
UserPoolId: MY_POOL_ID,
ClientId: MY_CLIENT_ID
};
const cognito = new AWS.CognitoIdentityServiceProvider(poolData);
export async function myHandler(event, context, cb) {
var params = {
AccessToken: …Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-cognito aws-lambda aws-api-gateway
aws-api-gateway ×10
aws-lambda ×6
amazon-elb ×1
amazon-iam ×1
api-gateway ×1
c# ×1
cookies ×1
flask ×1
python ×1
python-3.x ×1
swagger-ui ×1