使用Lambda + API Gateway + 自定义域名,提示缺失认证令牌

0

【以下的问题经过翻译处理】 大家好,AWS的同僚们。

我遇到了一些麻烦,无法在AWS Lambda函数中设置自定义域名。我设置了一切,但我得到的响应是“缺少身份验证令牌”。

以下是重现步骤:

1. AWS Lambda - Hello World

1.1. 我进入了AWS控制台中的AWS Lambda

1.2. 我创建了一个名为“exampleService”的“Hello World”函数。

1.3. 我添加了一个API Gateway触发器“exampleService-API”,这给了我一个类似于“https://xxx.execute-api.us-east-1.amazonaws.com/default/exampleService”的API端点。

1.4. 访问API端点成功地返回“Hello from Lambda!”。

2. API Gateway - 自定义域名

2.1. 我使用AWS控制台访问AWS API Gateway

2.2. 我为“exampleService-API”添加了一个新的自定义域名,类似于:

协议=HTTP
域名= api.example.com
端点配置=边缘优化
ACM证书=*.example.com,我在许多其他项目中使用相同的证书
基本路径映射=
  / example-> exampleService-API:default

2.3. 它给我返回了一个像xxx.cloudfront.net的目标域名

3. Route 53

3.1. 我使用AWS控制台进入了AWS Route 53

3.2. 添加了以下记录:

Name = api.example.com
Type = A - IPv4 address
Alias Target = xxx.cloudfront.net
Routing Policy = Simple
Evaluate Target Health = No

4. 尝试

如果我尝试访问api.example.com/example,它将返回:

{
  "message": "Missing Authentication Token"
}

我不知道该怎么做。我很确定自定义域名基础路径是正确的,如果我尝试访问其他路径比如 api.example.com/ or api.example.com/somethingelse, 他会返回 禁止访问 (Forbidden)

profile picture
专家
已提问 5 个月前24 查看次数
1 回答
0

【以下的回答经过翻译处理】 您需要访问api.example.com/example/exampleService

当您访问api.example.com/example时,您正在调用API的根资源上的GET方法,该方法当前未配置集成,因此会返回403“缺少身份验证令牌”的结果。

如果您希望api.example.com/example正常工作,则需要向API的根资源添加适当的方法。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则