上一章介紹了使用VP嗯將Google Cloud和AWS的網路連通,這裡介紹如何使用:使用Google Cloud Function 訪問AWS的Redis服務。
一:Google Cloud 建立 一個無服務VPC訪問通道:VPC網路-》無伺服器VPC訪問通道-》ip範圍自定義(記住這個ip範圍)。
二:AWS新增路由,讓這個新建的VPC能訪問AWS的網路。有兩個地方需要修改。
1:VPC皮膚-》路由表-》編輯路由表-》新增一個規則:目標就是上面記住的IP範圍 10.8.0.0/28。第二個目標就是AWS的虛擬私有閘道器(建立AWS-VPN時建立的)。
2:VPN的靜態路由-》新增靜態路由(上面記住的IP範圍 10.8.0.0/28)。
兩個路由設定完成後,google Cloud新建的無服務VPC就能透過VPN訪問AWS了。
三:新建Google Cloud Function,訪問AWS的Redis。建立雲函式時-》出站流量設定-》選擇上面建立的 無服務VPC.
函式程式碼:
const functions = require('@google-cloud/functions-framework'); const Redis = require('ioredis'); // 配置 Redis 客戶端 const redis = new Redis({ host: 'redisdb.qbkjf-df-rer-dd',//AWS的redis的端點 port: 6379, connectTimeout: 10000, // 設定連線超時為 10 秒 retryStrategy: () => null // 禁用自動重試 }); redis.on('error', (err) => { console.error('----Redis 連線錯誤:', err); }); functions.http('helloHttp', async (req, res) => { await redis.set('test_key', 'Hello from Google Cloud Function!'); const result = await redis.get('test_key'); res.send(`Redis result: ${result}`); });
package.json { "dependencies": { "@google-cloud/functions-framework": "^3.0.0", "ioredis": "^5.3.2" } }
建立完成後就可以呼叫Cloud Function的http連結,傳送請求試試看能不能列印log: