Amazon web services 云端:无法满足请求

Amazon web services 云端:无法满足请求,amazon-web-services,amazon-ec2,amazon-cloudfront,serverless-framework,Amazon Web Services,Amazon Ec2,Amazon Cloudfront,Serverless Framework,我遇到了这个问题,我有一个聊天服务器,它需要与aws中托管的lambda服务通信,但是CloudFront抛出以下错误 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/ht

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

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>

chat server.js托管在ec2中。这里的问题是什么

我以前见过这个问题。发生这种情况的原因如下:

  • 无效协议(使用http而不是https)
  • 未知http谓词,请确保端点在您的案例中实现了POST。如果您使用的是API网关,请确保已部署它
  • require('http')

    这是一个HTTP客户端,而不是HTTPS客户端

    指定端口443不会导致HTTPS请求,即使端口443是为HTTPS分配的端口。它只是针对目标端口443发出一个普通HTTP请求

    这不是有效的操作,因此CloudFront返回了一个
    错误请求


    您几乎肯定想要
    要求('https')

    在我的例子中,调用CloudFront时我有一个客户端负载平衡器。因此,我通过IP地址而不是主机名调用CF。
    我与Amazon AWS支持团队进行了检查,在这种情况下,CF拒绝了请求并返回“403错误,请求可以满足”。

    我遇到了相同的问题,为我工作

    此错误消息:

    “无法满足请求。请求不正确。”

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

  • 请求是通过HTTP发起的,但CloudFront发行版配置为仅允许HTTPS请求
  • 请求的备用域名(CNAME)与CloudFront发行版不关联

  • (在我的例子中,原因是#2)。

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

    对我来说,问题是,我重新启动了EC2,它更改了实例ID,但我的cloudfront原点仍然指向以前的ID。因此,一旦我更改了它,它工作得很好。

    什么类型的对象是
    http
    ?consthttp=require('http');它实现了POST方法我应该使用https吗?是的,这是答案
    const options = {
        hostname: 'xxx.uat.com',
        port : '443',        
        path: '/qa/addMessage',
        method: 'POST'
    };
    const req = http.request(options, (res) => {
    }