Google Cloud Function函数访问AWS的Redis服务(二)

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

 

posted @ 2024-11-01 19:12  Joy_CShow  阅读(14)  评论(0编辑  收藏  举报