Google Cloud Function函式訪問AWS的Redis服務(二)

Joy_CShow發表於2024-11-01

  上一章介紹了使用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:

相關文章