我正在使用Lambda函数和API网关设置.Net Core Serverless应用程序。我遇到的问题是,在我使用资源策略配置IP网关以限制IP地址之后,API网关没有将方法类型或任何URL传递给Lambda函数。即使在删除策略并重新部署后,我也遇到了同样的问题。如果我将部署回滚到策略之前,则该功能将按预期工作。
这是我添加的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:us-west-2:SOME_ACCOUNT_NUMBER:SOME_GATEWAY_IDENTIFER/*/*/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "SOME_IP"
}
}
}
]
}
该策略按照预期的IP地址进行限制。
第一个重点显示添加上述资源策略时发生的情况(如果删除策略并重新部署,也会发生相同的情况)。您会看到未传递方法类型,也未传递路由。
第二个重点显示运行成功,我通过重新部署API的早期版本实现了这一目标。您可以看到方法类型和路由都已传递。日志的其余部分仅显示了在Lambda函数中执行的相应方法。
除资源策略外,未对API网关配置或Lambda函数进行任何更改。为了使用此策略,我可能在配置中缺少什么想法?
谢谢, 山姆