{"message":"Missing Authentication Token"} 无服务器 Lambda 函数的卷曲和端点时
{"message":"Missing Authentication Token"} when curling and endpoint for a Serverless Lambda function
我已经从这个存储库 https://github.com/serverless/examples/tree/master/aws-python-simple-http-endpoint 克隆并部署了示例无服务器 Lambda 函数,它有一个端点,它只打印当前时间:
import json
import datetime
def endpoint(event, context):
current_time = datetime.datetime.now().time()
body = {
"message": "Hello, the current time is " + str(current_time)
}
response = {
"statusCode": 200,
"body": json.dumps(body)
}
return response
我已经部署了它:
> serverless deploy list functions
Serverless: Listing functions and their last 5 versions:
Serverless: -------------
Serverless: currentTime: $LATEST, 1
并且能够使用 serverless invoke
:
调用它
> serverless invoke --function currentTime --log
{
"body": "{\"message\": \"Hello, the current time is 22:51:06.872660\"}",
"statusCode": 200
}
--------------------------------------------------------------------
START RequestId: d4629611-e16b-4afa-80ef-5ac1a7331679 Version: $LATEST
END RequestId: d4629611-e16b-4afa-80ef-5ac1a7331679
REPORT RequestId: d4629611-e16b-4afa-80ef-5ac1a7331679 Duration: 0.32 ms Billed Duration: 100 ms Memory Size: 1024 MB Max Memory Used: 43 MB
在 AWS 控制台中,我在 'API Gateway' 服务下查找了 Lambda 函数的端点,
并尝试 curl
它。但是,我收到缺少授权令牌的错误消息:
curl https://x6gnvhuuzh.execute-api.us-east-1.amazonaws.com/dev
{"message":"Missing Authentication Token"}⏎
根据该示例的 README.md
,我应该看到与 serverless invoke
相同的输出。知道端点为什么返回 Missing Authentication Token
消息吗?
显然我忘记了在 Github 示例中将 /ping
附加到 URL。如 https://docs.aws.amazon.com/apigateway/latest/developerguide/amazon-api-gateway-using-stage-variables.html、
中所述
所以我用/ping
输入了URL,得到了预期的结果:
我已经从这个存储库 https://github.com/serverless/examples/tree/master/aws-python-simple-http-endpoint 克隆并部署了示例无服务器 Lambda 函数,它有一个端点,它只打印当前时间:
import json
import datetime
def endpoint(event, context):
current_time = datetime.datetime.now().time()
body = {
"message": "Hello, the current time is " + str(current_time)
}
response = {
"statusCode": 200,
"body": json.dumps(body)
}
return response
我已经部署了它:
> serverless deploy list functions
Serverless: Listing functions and their last 5 versions:
Serverless: -------------
Serverless: currentTime: $LATEST, 1
并且能够使用 serverless invoke
:
> serverless invoke --function currentTime --log
{
"body": "{\"message\": \"Hello, the current time is 22:51:06.872660\"}",
"statusCode": 200
}
--------------------------------------------------------------------
START RequestId: d4629611-e16b-4afa-80ef-5ac1a7331679 Version: $LATEST
END RequestId: d4629611-e16b-4afa-80ef-5ac1a7331679
REPORT RequestId: d4629611-e16b-4afa-80ef-5ac1a7331679 Duration: 0.32 ms Billed Duration: 100 ms Memory Size: 1024 MB Max Memory Used: 43 MB
在 AWS 控制台中,我在 'API Gateway' 服务下查找了 Lambda 函数的端点,
并尝试 curl
它。但是,我收到缺少授权令牌的错误消息:
curl https://x6gnvhuuzh.execute-api.us-east-1.amazonaws.com/dev
{"message":"Missing Authentication Token"}⏎
根据该示例的 README.md
,我应该看到与 serverless invoke
相同的输出。知道端点为什么返回 Missing Authentication Token
消息吗?
显然我忘记了在 Github 示例中将 /ping
附加到 URL。如 https://docs.aws.amazon.com/apigateway/latest/developerguide/amazon-api-gateway-using-stage-variables.html、
所以我用/ping
输入了URL,得到了预期的结果: