mFe*_*ein 3 java aws-lambda firebase-authentication aws-api-gateway firebase-admin
我需要在我的 AWS Lambda 项目中使用 Firebase Admin Java,但是SocketTimeoutException当Firebase Auth Admin尝试在 Google 的服务器中获取公钥时会抛出一个。我知道 Firebase Admin 配置正确,因为我可以在 Tomcat 实例中本地运行它而无需担心。
然后我尝试向像 一样的测试 API 发出 HTTPS 请求https://postman-echo.com/get?foo1=bar1&foo2=bar2,并且它具有相同的行为,我也收到超时,这让我认为这是 Lambda 调用 HTTPS 请求的问题。
现在我所知道的:
为了完整起见,我将把SocketTimeoutException我从 Firebase Admin Java 中获得的内容留在这里,尽管我不确定这是 Firebase Admin 库中的问题还是 AWS Lambda + HTTPS 的问题,或者两者兼而有之:
[main] ERROR com.example.project.filters.FirebaseAuthenticationFilter - 解析或验证令牌 com.google.firebase.auth.FirebaseAuthException 时出错:验证签名时出错。在 com.google.firebase.auth.FirebaseTokenVerifierImpl.checkSignature(FirebaseTokenVerifierImpl.java:160) 在 com.google.firebase.auth.FirebaseTokenVerifierImpl.verifyToken(FirebaseTokenVerifierImpl.java:92) 在 com.google.firebase.auth.FirebaseAuth$4。 execute(FirebaseAuth.java:426) at com.google.firebase.auth.FirebaseAuth$4.execute(FirebaseAuth.java:423) at com.google.firebase.internal.CallableOperation.call(CallableOperation.java:36) at com。 google.firebase.auth.FirebaseAuth.verifyIdToken(FirebaseAuth.java:388) 在 com.google.firebase.auth.FirebaseAuth.verifyIdToken(FirebaseAuth.java:362) 在 com.example.project.filters。
我的 lambda 位于通过 Internet 网关访问 Internet 的子网内
单独的 Internet 网关不会提供驻留在对 Internet 的 VPC 访问中的 Lambda 函数。这是因为 VPC 内的 Lambda 函数不接收公有 IP 地址。您必须使用 NAT 网关为 VPC 内的 Lambda 函数提供 Internet 访问。
| 归档时间: |
|
| 查看次数: |
3160 次 |
| 最近记录: |