当调用AssumeRole时,我们可以设置从900秒(15分钟)到最大3600秒(1小时)的时间。默认值为 1 小时。这能超过1个小时吗?比如12小时?
如果使用 API 网关作为 S3 代理,我想将文件名/密钥名称生成为随机字符串。
参考以下答案,我了解到 $context.requestId 可用于生成随机密钥。但是,我无法在集成请求的 URL 路径参数中使用 $context。
如何将状态代码设置为 429 并从 API Gateway 自定义授权方返回自定义消息?
我正在尝试使用 Cloudformation 在 AWS APIGateway 的方法执行上设置标头映射。
这是我尝试使用的 Cloudformation JSON 模板片段:
"AlertDetailMock": {
"Type": "AWS::ApiGateway::Method",
"Properties": {
"RestApiId": {
"Ref": "RestApi"
},
"ResourceId": {
"Ref": "AlertDetailResource"
},
"HttpMethod": "OPTIONS",
"AuthorizationType": "NONE",
"Integration": {
"Type": "MOCK",
"RequestTemplates": {
"application/json": "{\"statusCode\": 200}"
}
},
"IntegrationResponses": [
{
"ResponseTemplates": {
"application/json": ""
},
"ResponseParameters": {
"method.response.header.Access-Control-Allow-Origin": "\\'*\\'",
"method.response.header.Access-Control-Allow-Methods": "\\'GET,OPTIONS\\'",
"method.response.header.Access-Control-Allow-Headers": "\\'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token\\'"
},
"StatusCode": 200
}
],
"MethodResponses": [
{
"ResponseModels": {
"application/json": {
"Ref": "AlertDetailsModel"
}
},
"ResponseParameters": {
"method.response.header.Access-Control-Allow-Origin": true,
"method.response.header.Access-Control-Allow-Methods": true, …Run Code Online (Sandbox Code Playgroud) json amazon-web-services aws-cloudformation devops aws-api-gateway
我正在关注一个演示,并使用 C# 创建了一个通过 AWSSDK 调用的 Lambda。函数处理程序如下所示:
public async Task<bool> FunctionHandler(string fileName, ILambdaContext context)
Run Code Online (Sandbox Code Playgroud)
这很好用。现在我想看看是否可以使用API网关调用它。我知道为了使其工作,我需要添加APIGatewayProxyRequest到函数签名中。我可以将其添加为参数还是必须替换变量“fileName”?
当我希望以两种方式调用该函数时,这是如何工作的?直接通过 SDK 还是通过 APIGateway?我可以让一个函数可以通过多种方式调用吗?
我不明白我的授权有什么问题。
我有一个 Hello 函数,它只返回一条简单的静态消息。如果我在没有设置“Authorizer”的情况下部署,它就可以工作。我已经在邮递员上进行了测试。当我尝试添加授权者时,问题就出现了。
我的 Cognito 已完全正常工作。在我的前端,我可以注册,然后登录,然后从此登录会话获取令牌。
当我去邮差测试时,我总是得到“未经授权”的答案。在 Postman 上,我测试了 GET 方法,在“标头”选项卡上,我添加了“授权”属性,并粘贴了我从登录会话中获得的令牌值。我还在一些地方推荐的前缀“bearer”的值字段上对此进行了测试。没有成功。
过去一周我一直在努力解决这个问题。请,任何帮助都将非常有用。
serverless.yml
provider:
name: aws
runtime: nodejs10.x
stage: dev
region: eu-west-1
environment:
MY_TABLE: ${self:custom.myStage}_${self:custom.settings.tb_items}
MY_STAGE: ${self:custom.myStage}
MY_DOMAIN: ${self:custom.myDomain}
iamRoleStatements:
- Effect: "Allow"
Action:
- "dynamodb:GetItem"
- "dynamodb:PutItem"
- "dynamodb:UpdateItem"
- "dynamodb:DeleteItem"
- "dynamodb:Scan"
Resource: "*"
functions:
hello:
handler: ${self:custom.pathFunc}/phraseOption.hello
events:
- http:
method: GET
path: hello
cors: true
integration: lambda-proxy
authorizer:
type: COGNITO_USER_POOLS
authorizerId:
Ref: ApiGatewayAuthorizer
resources:
Resources:
CognitoUserPool:
Type: "AWS::Cognito::UserPool"
DeletionPolicy: Retain
Properties:
MfaConfiguration: OFF
UserPoolName: ${self:custom.myStage}_aePool …Run Code Online (Sandbox Code Playgroud) unauthorized amazon-cognito aws-lambda aws-api-gateway serverless-framework
亚马逊最近为他们的 api 网关产品发布了HTTP API,我想使用 Terraform 来启动一些。我看到Terraform具有文档的aws_apigatewayv2_api资源,这将创造网关本身,但我找不到路,阶段,或任何其他类型的资源,我会需要我的网关文档。
Terraform 还没有完全支持 HTTP API,还是我在某处遗漏了一些文档?
amazon-web-services terraform aws-api-gateway terraform-provider-aws
我们正在尝试根据https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html利用 AWS API 网关中的 $default 路径
像这样配置 api 网关,利用$default 作为路由之一
/
/-default
ANY
/api
/{proxy=}
Run Code Online (Sandbox Code Playgroud)
当我们尝试在$default路径和 GET 调用上调用 api 网关时
https://apigateway.amazonaws.com/prod/test
Run Code Online (Sandbox Code Playgroud)
我们假设它会调用默认路径,但它没有
message: "Missing Authentication Token"
Run Code Online (Sandbox Code Playgroud)
但是当我们这样做时
https://apigateway.amazonaws.com/prod/api/test
Run Code Online (Sandbox Code Playgroud)
该API集成时调用
注意:我们已经尝试配置贪婪路径{proxy+}而不是 $default ,因为贪婪路径总是优先并且 /api 路由也被路由到贪婪路径
社区为我们指明正确方向的任何帮助都会有很大帮助
amazon-web-services aws-api-gateway api-gateway amazon-api-gateway
我有一个公共 AWS API 网关。
我在与该 API 网关位于同一区域的 VPC 中有一台服务器。服务器无法访问该 API 网关的端点。对网关的请求挂起并超时。服务器可以访问同一个AWS账户其他区域的API网关就好了。
其他地域的VPC中的服务器可以正常访问API网关。我的本地计算机可以正常访问网关。唯一不能访问网关的是同一地区的服务器。
到底是怎么回事?
我的架构是 AWS Gateway - Lambda - RDS 我从客户那里获取数据作为 xlsx 文件。
我有2个步骤
1.处理文件并存储到事务表中。
2.用户批准后处理数据到活动表。
我的问题是针对大文件,由于时间限制(AWS 网关 30 秒,Lambda 15 分钟)和同步过程,我无法完成这些过程。请建议我 AWS 中的任何服务都可以执行需要与 RDS 持续交互的长时间运行的作业,将文件数据与系统数据进行比较。
aws-api-gateway ×10
aws-lambda ×3
amazon-rds ×1
amazon-s3 ×1
amazon-vpc ×1
api-gateway ×1
aws-sts ×1
c# ×1
devops ×1
json ×1
terraform ×1
unauthorized ×1