Cloud Front:请求无法满足

时间:2017-09-21 19:35:17

标签: amazon-web-services amazon-ec2 amazon-cloudfront serverless-framework

我遇到了这个问题,我有一个聊天服务器需要与aws中托管的lambda服务进行通信,但是云端会抛出以下错误。

<Screen_Manager>:
    id: screen_manager
    Login:
    Main:

<Login>:
    name: 'login'
    Button:
        text: 'Go to Main'
        on_press: root.manager.current = 'main'

<Main>:
    name: 'main'
    Button:
        text: 'Go to Login'
        on_press: root.manager.current = 'login'

这是我的申请中的请求。

BODY: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Bad request.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: h5kPdVnMXwh-P7e7mxQ5LL1gj9fAupp_MNAPxmxufI74W4WhE_MByw==
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>

聊天服务器.js托管在ec2中。这是什么问题?

6 个答案:

答案 0 :(得分:3)

我以前见过这个问题。它是由于以下原因而发生的,

  1. 无效协议(使用http而不是https)
  2. 未知的http动词,请确保端点正在您的情况下实施POST。如果您使用的是API网关,请确保已部署它。

答案 1 :(得分:3)

  

require('http');

这是一个HTTP客户端 - 而不是HTTPS客户端。

指定端口443不会产生HTTPS请求,即使端口443是HTTPS的已分配端口也是如此。它只针对目标端口443发出普通的HTTP请求。

这不是一件有效的事情,因此CloudFront返回Bad Request错误。

你几乎肯定想要require('https');

答案 2 :(得分:1)

我正面临着同样的错误,我通过从邮递员请求中删除尸体来解决了这个问题。

答案 3 :(得分:0)

就我而言,在调用CloudFront时,我有一个客户端负载均衡器。结果,我通过IP地址而不是hostName调用CF。 我与Amazon AWS支持团队联系过,在这种情况下,CF拒绝了该请求并返回“ 403错误,该请求可以得到满足”。

答案 4 :(得分:0)

我遇到了同样的问题,this thread为我工作。

此错误消息:

“无法满足该请求。错误的请求。”

来自客户端,并且由于以下原因之一而可能发生错误:

  1. 该请求是通过HTTP发起的,但是CloudFront分发配置为仅允许HTTPS请求。
  2. 请求的备用域名(CNAME)与CloudFront发行版没有关联。

(在我的情况下,原因是#2)。

答案 5 :(得分:0)

对我来说,问题是,我重新启动了EC2,从而更改了实例ID,但我的云前源仍指向先前的ID。因此,一旦我更改它,它就可以正常工作。