我有一個 AWS Lambda 函式:
- 檢查資料庫并創建通知
- 將這些通知發送到 Firebase
由于資料庫互動,該功能需要在 VPC 上。我按照本指南為該函式提供了一種連接到 Firebase 的方法。如何為連接到 Amazon VPC 的 Lambda 函式提供 Internet 訪問權限?. 有效。
Lambda 函式還與 AWS S3 存盤桶互動,因為該函式是使用Zappa部署的,slim_handler = True這使得 Zappa 將一個小型處理程式上傳到 Lambda 并在運行時從 S3 加載實際專案。
有些通知已發送,有些則未發送。當我檢查日志時,對于成功發送通知,我看到以下內容:
Starting new HTTPS connection (1): fcm.googleapis.com:443
...
https://fcm.googleapis.com:443 "POST /fcm/send HTTP/1.1" 200 None
對于未傳遞的其他通知,它會記錄:
Starting new HTTP connection (1): 169.254.169.254:80
...
Task timed out after 180.01 seconds
Instancing..
AWS Lambda 函式有一個重試策略,由于此超時,函式運行 3 次,并且通知在資料庫上重復三次(但不發送到 Firebase)。
為什么 HTTP 連接從 169.254.169.254:80 而不是正確的端點 fcm.googleapis.com:443 開始?
我不確定這是否相關,但 Zappa 會自動設定一個運行 4 分鐘的事件,以使 Lambda 函式保持溫暖。
為什么有時連接到 Firebase 有效,有時無效?
uj5u.com熱心網友回復:
聽起來 Lambda 函式配置為在其中運行的某些子網沒有到您的 NAT 實體或 NAT 網關的路由。如果您為 Lambda 函式配置的任??何子網是公有子網,那么您將看到此問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/518683.html
標籤:Google Cloud Collective 亚马逊网络服务火力基地aws-lambdafirebase-云消息传递亚马
