gpt4 book ai didi

amazon-web-services - AWS Lambda 随机返回 502 作为状态

转载 作者:行者123 更新时间:2023-12-02 11:21:28 25 4
gpt4 key购买 nike

我有一个 lambda 函数,它利用 Graphql 和 webscraping 返回一些数据作为响应。有时它不会出现像 502 这样的错误,有时它不会。对我来说,502 错误似乎是完全随机的,因为我一直使用相同的数据发送相同的请求。

我的超时在 AWS 控制台中设置为 5 分钟。

这些是我得到的错误(在浏览器中):

Failed to load [BIG URL] No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '[mydomainurl]' is therefore not allowed access. The response had HTTP status code 502.

spread.js:25 GET [BIG URL] 502 ()



但是,当我转到 Chrome 中的“网络”选项卡并在浏览器中查看复制的链接地址时,我会收到带有我想要的数据的 JSON 响应。我在 CloudWatch 中找不到错误。

标题

响应头
content-length: 36
content-type: application/json
date: Fri, 13 Apr 2018 06:17:06 GMT
status: 502
via: 1.1 67284fcf464f6f1529cc1e521669622c.cloudfront.net (CloudFront)
x-amz-apigw-id: FRC2oEiuDoEF_YQ=
x-amz-cf-id: O1VfzIVPySw657r6WV34EvcPMTyeT7eFUBnM3P30NXBmdjTeWHfryw==
x-amzn-requestid: 4766f279-3ee2-11e8-9e72-bdddab0f02d6
x-cache: Error from cloudfront

请求头
:authority: wqbgu8c3ql.execute-api.eu-west-1.amazonaws.com
:method: GET
:scheme: https
accept: application/json, text/plain, */*
accept-encoding: gzip, deflate, br
accept-language: nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7
origin: [url]
referer: [url]
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

回复:
{"message": "内部服务器错误"}

我的 handler.js
'use strict'

const {
graphql,
GraphQLSchema,
GraphQLObjectType,
GraphQLString,
GraphQLNonNull
} = require('graphql')

const schema = require('./schema/schema');


module.exports.query = (event, context, callback) => graphql(schema, event.queryStringParameters.query)
.then(
result => callback(null, {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin" : "*"
},
body: JSON.stringify(result)
}),
err => callback(err)
)

也许我在回调中返回错误的方式有问题?

最佳答案

对于 Python 使用以下内容

def returnresponse(status_code, message):
myjson = {}
myjson['statusCode']=status_code
myjson['body']=json.dumps(message)
myjson['headers']={}
myjson['headers']['Access-Control-Allow-Origin']="*"
myjson['headers']['Content-Type']="application/json"
return myjson

您可以从上面删除 Content-Type header 。
在 lambda 类型的末尾:
return returnresponse(200, "hello world")

还要检查您进行 API 调用的代码。就我而言,我使用了 javascript。如果您使用的是 javascript,请删除“数据类型:json”,除非您在正文中返回 json 数据。

关于amazon-web-services - AWS Lambda 随机返回 502 作为状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49810775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com