amazon-web-services - AWS - HTTP API 网关 - 如何阻止网站图标请求?

标签 amazon-web-services aws-api-gateway aws-http-api

我正在使用 HTTP API 网关来触发 lambda 调用。当我使用 postman 的网址时,没有问题。当我从浏览器中使用它时,它总是会发出第二个请求,即网站图标。

网关本身是否有阻止 favicon 请求到达 lambda 的方法?

我正在使用以下地形:

resource "aws_apigatewayv2_api" "retry_api" {
  name          = "${var.environment}_${var.cdp_domain}_retry_api"
  protocol_type = "HTTP"
  description   = "To pass commands into the retry lambda."
  target = module.retry-support.etl_lambda_arn
}

resource "aws_lambda_permission" "allow_retry_api" {
  statement_id  = "AllowAPIgatewayInvokation"
  action        = "lambda:InvokeFunction"
  function_name = module.retry-support.etl_lambda_arn
  principal     = "apigateway.amazonaws.com"
  source_arn = "${aws_apigatewayv2_api.retry_api.execution_arn}/*/*"
}

最佳答案

这不会阻止浏览器发出的网站图标请求,也不会为这些请求调用 Lambda。

假设 API 端点为 /hello 并且 http 方法为 GET,您可以限制 api-gateway 仅调用 lambda这个网址。格式是这样的。

arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/hello

因此,aws_lambda_permission 中的 source_arn 将更改为如下内容

source_arn = "${aws_apigatewayv2_api.retry_api.execution_arn}/*/*/GET/hello"

答案假设现有的/最终分别用于apiIdstage。否则,请检查 ${aws_apigatewayv2_api.retry_api.execution_arn} 的值并进行相应修改。

This答案也能有所帮助。您可以在 body 中提供 openapi 规范仅适用于您支持的路径。对于上述情况,调用名为 HelloWorldFunction 的 Lambda 的 openapi 规范 的相关路径部分将如下所示

  "paths": {
        "/hello": {
          "get": {
            "x-amazon-apigateway-integration": {
              "httpMethod": "POST",
              "type": "aws_proxy",
              "uri": {
                "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HelloWorldFunction.Arn}/invocations"
              },
              "payloadFormatVersion": "2.0"
            },
            "responses": {} //Provide the expected response model
          }
        }
      }

Here是 OpenApi 规范的链接。

关于amazon-web-services - AWS - HTTP API 网关 - 如何阻止网站图标请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67335270/

相关文章:

amazon-web-services - AWS API网关: form-data support

aws-cloudformation - CloudFormation 中的 AWS API Gateway 方法响应 - 输出直通 : No

amazon-web-services - 笔记应用程序的 DynamoDB 分区键选择

amazon-web-services - 如何为 AssumeRole 事件配置 AWS Cloudwatch Events(以触发 SNS 通知)

aws-lambda - 预置并发对 Lambda 函数的响应时间影响较小

amazon-web-services - AWS API Gateway HttpAPI SAM 自定义域名错误

java - AWS S3 查询字符串请求身份验证备选上传文件

amazon-web-services - AWS 负载均衡器 ERR_TOO_MANY_REDIRECTS

amazon-web-services - AWS HTTP API网关Lambda处理程序的 typescript