敏捷数据开发实践:基于 Amazon Q Developer + Remote MCP 构建本地与云端 Amazon Redshift 交互体系

新用户可获得高达 200 美元的服务抵扣金

亚马逊云科技新用户可以免费使用亚马逊云科技免费套餐(Amazon Free Tier)。注册即可获得 100 美元的服务抵扣金,在探索关键亚马逊云科技服务时可以再额外获得最多 100 美元的服务抵扣金。使用免费计划试用亚马逊云科技服务,最长可达 6 个月,无需支付任何费用,除非您选择付费计划。付费计划允许您扩展运营并获得超过 150 项亚马逊云科技服务的访问权限。

前言

数据驱动的开发场景中,本地工具与云端数据库的高效交互是提升效率的关键。本文聚焦 Amazon Q Developer + Remote MCP 访问 Amazon Redshift 方案,通过搭建 “本地 CLI - 中间服务 - 云端数据库” 链路,实现自然语言转 SQL 执行、内网安全访问等能力,帮助开发者简化 Redshift 数据查询流程,构建敏捷、可扩展的云端数据操作体系,适配快速迭代的开发需求

技术架构

在这里插入图片描述

本地环境中,Amazon Q Developer CLI 作为操作入口,向 MCP Server(stdio)发起请求,MCP Server 接收后,执行 SQL 语句并与 Amazon Redshift 数据库交互,构建起 “本地工具 - 中间服务 - 云端数据库” 的简洁数据处理链路,实现本地对云端数据库的操作与数据交互

  • 操作链路精简高效:本地通过 Amazon Q Developer CLI 直连 MCP Server,省去复杂中间环节,快速触发 SQL 执行流程,降低操作延迟,让开发侧与服务端交互更敏捷,提升日常数据操作效率
  • 精准的数据交互闭环:清晰构建 “本地工具 → 中间服务 → 云端数据库” 的交互路径,MCP Server 精准承接 CLI 指令并执行 SQL,保障数据操作精准触达,让本地开发对云端数据的读写、查询等需求,能稳定、直接地落地执行
  • 架构轻量易维护:整体架构聚焦核心功能,以最少组件实现 “本地 - 服务端 - 云端数据库” 连通,无冗余设计。后续运维只需关注 CLI 工具、MCP Server 及 Redshift 交互逻辑,降低系统复杂度与维护成本,适配快速迭代的开发场景

前提准备:亚马逊云科技注册流程

Step.1 登录官网

登录亚马逊云科技官网,填写邮箱和账户名称完成验证(注册亚马逊云科技填写 root 邮箱、账户名,验证邮件地址,查收邮件填验证码验证,验证通过后设 root 密码并确认)

在这里插入图片描述

Step.2 选择账户计划

选择账户计划,两种计划,按需选"选择免费计划 / 选择付费计划"继续流程

  • 免费(6 个月,适合学习实验,含$200抵扣金、限精选服务,超限额或到期可升级付费,否则关停)
  • 付费(适配生产,同享$200 抵扣金,可体验全部服务,抵扣金覆盖广,用完按即用即付计费)

在这里插入图片描述

Step.3 填写联系人信息

填写联系人信息(选择使用场景,填联系人全名、电话,选择所在国家地区,完善地址、邮政编码,勾选同意客户协议,点击继续 进入下一步)

在这里插入图片描述

Step.4 绑定信息

绑定相关信息,选择国家地区,点击"Send code"收验证码填写,勾选同意协议后,点击"验证并继续"进入下一步

在这里插入图片描述

Step.5 电话验证

电话验证填写真实手机号,选择验证方式,完成安全检查,若选语音,网页同步显 4 位数字码,接来电后输入信息,再填收到的验证信息,遇问题超 10 分钟收不到可返回重试。

在这里插入图片描述

Step.6 售后支持

售后支持:免费计划自动获基本支持,付费计划需选支持计划(各计划都含客户服务,可访问文档白皮书,按需选后点 “完成注册”,若需企业级支持可了解付费升级选项,确认选好即可完成整个注册流程 )

在这里插入图片描述

Amazon Q Developer+Remote MCP 访问 Amazon Redshift

1、集成 Local MCP Server,创建 Python 虚拟环境

curl -LsSf https://astral.sh/uv/install.sh | sh# Create a new directory for your project (you've already done this)
uv init redshift
cd redshift# Create a Python 3.12 virtual environment
uv venv # Activate the virtual environment
source .venv/bin/activate# Install dependencies
uv add mcp fastmcp redshift_connector# Create our server file
touch redshift.py

2、准备 Local MCP Server 的 Python 代码 redshift.py

from mcp.server.fastmcp import FastMCP
from mcp.types import TextContent
from mcp.types import Resource, ResourceTemplate, Tool, TextContent
import redshift_connector
import osmcp = FastMCP(name="redshift", stateless_http=True)
REDSHIFT_CONFIG = {"host": os.environ['REDSHIFT_HOST'],"port": int(os.environ['REDSHIFT_PORT']),"database": os.environ['REDSHIFT_DATABASE'],"user": os.environ['REDSHIFT_USER'],"password": os.environ['REDSHIFT_PASSWORD']
}def _execute_sql(sql:str):with redshift_connector.connect(**REDSHIFT_CONFIG) as conn:conn.autocommit = Truewith conn.cursor() as cursor:try:cursor.execute(sql)columns = [desc[0] for desc in cursor.description]rows = cursor.fetchall()result = [",".join(map(str, row)) for row in rows]return [TextContent(type="text", text="\n".join([",".join(columns)] +  result ))]except Exception as e:return [TextContent(type="text", text=f"Error executing query: {str(e)}")]return None@mcp.tool()
def execute_sql(sql: str) :"""Execute a SQL Query on the Redshift clusterArgs:sql: The SQL to Execute"""return _execute_sql(sql)@mcp.tool()
def get_schemas(schema: str) :"""Get all tables in a schema from redshift databaseArgs:schema: the redshift schema"""sql = f"""SELECT table_name FROM information_schema.tablesWHERE table_schema = '{schema}'GROUP BY table_nameORDER BY table_name"""return _execute_sql(sql)@mcp.tool()
def get_table_ddl(schema: str, table:str) :"""Get DDL for a table from redshift databaseArgs:schema: the redshift schema nametable: the redshift table name"""sql = f"""show table {schema}.{table}"""return _execute_sql(sql)
if __name__ == "__main__":# Initialize and run the servermcp.run(transport='stdio')

3、通过 vim .amazonq/mcp.json 编辑 MCP Server 配置

{"mcpServers": {"redshiftserver": {"timeout": 60,"command": "uv","args": ["--directory","/path/redshift","run","redshift.py"],"env": {"RS_HOST": "your_redshift_cluster_host","RS_DATABASE": "default_is_dev","RS_SCHEMA": "default_is_public","RS_USER": "your_redshift_user","RS_PASSWORD": "your_redshift_password"},"transportType": "stdio"}}
}

4、运行 Amazon Q Developer CLI,列出当前的 MCP Tools

在这里插入图片描述

5、输入自然语言查询数据:查看 Redshift 中客户表的数据条数,Amazon Q Developer CLI 将其转换为 SQL 并执行,获取到查询结果

在这里插入图片描述

6、需要为 Amazon Lambda 函数构建 Layer,将相关依赖包放入 Layer 当中,通过如下脚本构建 zip 包,并上传至 S3 中

#!/bin/bash
mkdir -p layer_build
cd layer_buildcat > requirements.txt << EOL
fastapi==0.115.12
fastmcp==2.3.0
mcp==1.8.0
pydantic==2.11.4
uvicorn==0.34.2
redshift_connector
EOLpython3.12 -m venv create_layer
source create_layer/bin/activate
pip install -r requirements.txt
mkdir python
cp -r create_layer/lib python/
zip -r layer_content.zip python

7、创建 Amazon Lambda Layer

在这里插入图片描述

8、创建 Amazon Lambda 函数,创建用于部署 MCP Server 的 Amazon Lambda 函数

在这里插入图片描述

9、为了让 Amazon Lambda 函数通过内网访问 Amazon Redshift 集群,需要设置 Amazon Lambda 函数的 VPC 、子网和安全组,并配置 Amazon Redshift 集群的安全组入站规则,允许来自 Amazon Lambda 函数安全组的访问

在这里插入图片描述

10、创建 Amazon API Gateway

在这里插入图片描述

11、使用 Amazon Q Developer CLI 进行测试

{"mcpServers":{"redshift-remote-server":{"command": "npx","args":["mcp-remote","https://xxxxx.execute-api.ap-southeast-1.amazonaws.com/dev/redshift/mcp/","--header","x-api-key: you api key of api gateway"]}}
}

Amazon Q 介绍

Amazon Q 是一款生成式人工智能助手,专为企业和开发者打造,能改变组织工作模式。它整合多方数据,以自然语言交互,覆盖软件开发、商业智能分析、客户服务及供应链管理等领域,为员工提供专业功能,加速任务完成,深入洞察数据

  • 专业领域赋能:为软件开发人员、商业智能分析师等不同岗位人员提供针对性功能。比如开发者版可助力编码、测试、部署及故障排查等全流程任务;在商业智能方面,能让业务分析师用自然语言快速构建 BI 仪表板
  • 安全隐私保障:严格遵循身份、角色和权限体系,用户无法通过它访问原本无权接触的数据。其管理控件支持自定义授权,数据在传输和存储时均加密,且不会利用企业数据训练基础模型,确保企业数据安全与隐私
  • 广泛系统集成:内置超 40 个连接器,可连接如 Amazon S3、Salesforce、Google Drive 等常用企业应用和文档存储库,还能为内部 Intranets 等构建自定义连接器,打破数据孤岛,综合各类信息为用户提供服务

总结

本文围绕 Amazon Q Developer + Remote MCP 访问 Amazon Redshift 方案,构建了从本地开发到云端部署的完整数据交互体系。通过搭建 “本地 CLI - MCP Server - 云端数据库” 链路,实现自然语言转 SQL 执行的敏捷开发体验;结合 Lambda Layer、VPC 配置及 API Gateway,完成 MCP Server 远程化部署与内网安全访问。方案以精简架构提升数据操作效率,以安全配置保障链路可靠,为开发者提供了一套适配快速迭代需求的 Redshift 云端数据操作实践指南。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/918860.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/918860.shtml
英文地址,请注明出处:http://en.pswp.cn/news/918860.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBoot】11 概念理解 - 深入理解 Java 和 Spring 中的容器、组件、类、对象与 Bean

文章目录引言1. 基本概念解析1.1 类&#xff08;Class&#xff09;1.2 对象&#xff08;Object&#xff09;1.3 组件&#xff08;Component&#xff09;1.4 Bean 实例&#xff08;Bean Instance&#xff09;1.5 容器&#xff08;Container&#xff09;2. 运行时 vs. 非运行时的…

【学习嵌入式day-25-线程】

exec函数族exec函数族利用进程空间执行另一份代码#include "../head.h"int main(void) {char *parg[5] {"./hello","how","are","you",NULL,};printf("execl-up\n");//execl("./hello", "./hello…

Rust 中 Box 的深度解析:作用、原理与最佳实践

Rust 中 Box 的深度解析&#xff1a;作用、原理与最佳实践 Box 是 Rust 中最基础且最重要的智能指针类型&#xff0c;它在 Rust 的内存管理和所有权系统中扮演着核心角色。以下是关于 Box 的全面解析&#xff1a; Box 的核心作用 #mermaid-svg-m6liFZlmqOHRfIZB {font-family:&…

【测试用例】

需求背景部分金融/政企等行业客户&#xff0c;企业内部安全要求较高&#xff0c;且因为某些原因未接入 sso 登录&#xff0c;会要求 MG 提供较为复杂的密码规则甚至提供强更机制&#xff1b;且每个客户的安全要求不一样目前 MG 线上密码规则&#xff1a; 8 位以上&#xff0c;包…

Klipper-probe模块

配置信息[probe] pin: !PD4 x_offset: 0 y_offset: 0 z_offset: -0.20 #the distance between nozzle and level switch speed: 10 samples: 2 #probe one point three times get an average samples_result: average sample_retract_dist: 5 samples_tolerance: 0.05 # …

Excel多级数据结构导入导出工具

Excel多级数据结构导入导出工具 这是一个功能强大的Excel导入导出工具库&#xff0c;专门用于处理复杂的多级嵌套数据结构。通过自定义注解配置&#xff0c;可以轻松实现Java对象与Excel文件之间的双向转换。 核心功能特性 1. 多级数据结构支持 嵌套对象处理: 支持任意层级的对…

基于UniApp的新大陆物联网平台温湿度检测系统开发方案

新大陆物联网平台对接要点 认证方式&#xff1a; 使用AccessToken进行API认证 Token存储在本地缓存中 数据格式&#xff1a; 温度数据单位&#xff1a;摄氏度(C) 湿度数据单位&#xff1a;百分比(%) 时间格式&#xff1a;ISO 8601或时间戳 设备状态&#xff1a; online:…

Git、JSON、MQTT

GIT简介&#xff1a;Git是什么&#xff1f;Git是目前世界上最先进的分布式版本控制系统作用&#xff1a;版本控制&#xff08;版本的备份--->版本的回溯和前进&#xff09;多人协作优势&#xff1a;SVN(集中式)劣势&#xff1a;过度依赖服务器和网络&#xff0c;容灾性差Git…

yolo目标检测技术之yolov11项目实战(三)

yolo目标检测技术之yolov11项目实战&#xff08;三&#xff09; 文章目录yolo目标检测技术之yolov11项目实战&#xff08;三&#xff09;一、 基于 YOLO11 的火焰与烟雾检测系统&#xff08;实战代码&#xff09;项目目标环境搭建创建虚拟环境安装依赖1.1 数据集准备1. 下载地址…

CF思维小训练(二)

清晰的缤纷的都可以 脏兮兮的甜的也都有转机 不想太小心 错过第一百零一场美丽 CF思维小训练&#xff08;二&#xff09; 书接上回CF思维小训练-CSDN博客 虽然代码很短&#xff0c;都是每一道题的背后都思维满满&#xff1b; 目录CF思维小训练&#xff08;二&#xff09;Arbo…

分布式锁:从理论到实战的深度指南

1. 分布式锁是啥&#xff1f;为什么它比单机锁更“硬核”&#xff1f;分布式锁&#xff0c;听起来高大上&#xff0c;其实核心问题很简单&#xff1a;在多个机器、进程或服务同时抢夺资源时&#xff0c;怎么保证不打架&#xff1f; 想象一下&#xff0c;你在双十一抢购限量款球…

基于UniApp的智能在线客服系统前端设计与实现

了解更多&#xff0c;搜索“程序员老狼”一、引言在当今数字化时代&#xff0c;客户服务已成为企业竞争力的重要组成部分。本文将详细介绍一款基于UniApp框架开发的跨平台智能客服系统前端实现方案&#xff0c;该系统不仅具备传统客服功能&#xff0c;还融入了现代即时通讯和人…

react与vue的对比,来实现标签内部类似v-for循环,v-if等功能

前言&#xff1a;在vue中我们提供了很多标签方法&#xff0c;比如用的比较多的v-for循环内容&#xff0c;v-if/v-show等判断&#xff0c;可以直接写在标签中&#xff0c;大大提高了我们的开发效率&#xff0c;那么在react中有没有类似的方法呢&#xff1f;我们这里来说一说。re…

PCB工艺-四层板制作流程(简单了解下)

一&#xff09;流程&#xff1a;四层板的内层芯板&#xff0c;是由一张双面覆铜板PP*2铜箔*2覆铜板蚀刻好线路&#xff0c;就是我们的芯板了PP全名叫半固化片&#xff0c;主体是玻璃纤维布环氧树脂&#xff0c;是绝缘介质铜箔片&#xff0c;是单独一张铜箔&#xff0c;很薄&…

无人机三维路径规划

文章目录 1、引言 2、背景知识 3、核心算法 4、挑战与优化 5、初始效果 6、需要改进地方 7、水平方向优化路线 8、垂直方向优化路线 9、与经过路线相交的网格都绘制出来 1、引言 介绍三维路径规划的定义和重要性:在无人机、机器人导航、虚拟现实等领域的应用。 概述文章目标和…

Spring-解决项目依赖异常问题

一.检查项目的Maven路径是否正确在确保新项目中的依赖在自己的电脑中已经存在的情况下&#xff1a;可以检查项目的Maven路径是否正确在拿到一个新项目时&#xff0c;要检查这个项目的Maven路径是自己电脑上设置好的Maven路径吗&#xff1f;如果不是&#xff0c;项目依赖会出问题…

系统设计——DDD领域模型驱动实践

摘要本文主要介绍了DDD&#xff08;领域驱动设计&#xff09;在系统设计中的实践应用&#xff0c;包括其在编码规范、分层架构设计等方面的具体要求和建议。重点强调了应用层的命名规范&#xff0c;如避免使用模糊的Handler、Processor等命名&#xff0c;推荐使用动词加业务动作…

开源卫星软件平台LibreCube技术深度解析

LibreCube技术深度解析&#xff1a;开源卫星软件平台的完整指南 LibreCube是一个专为CubeSat设计的模块化开源卫星软件平台&#xff0c;它通过整合姿态控制、通信管理和任务调度等核心功能&#xff0c;为立方星开发者提供了完整的解决方案。本文将全面剖析LibreCube的技术架构…

React(四):事件总线、setState的细节、PureComponent、ref

React(四) 一、事件总线 二、关于setState的原理 1. setState的三种使用方式 (1)基本使用 (2)传入一个回调 (3)第一个参数是对象,第二个参数是回调 2. 为什么setState要设置成异步 (1)提升性能,减少render次数 (2)避免state和props数据不同步 3. 获取异步修改完数…

CPUcores-【硬核优化】CPU增强解锁全部内核!可优化游戏性能、提升帧数!启用CPU全内核+超线程,以更高优先级运行游戏!支持各种游戏和应用优化~

软件介绍&#xff08;文末获取&#xff09;CPUCores&#xff1a;游戏性能优化利器‌这款工具&#xff0c;专为优化提升中低配电脑的帧数而生。其独创的CPU资源调度技术&#xff0c;能让老旧硬件焕发新生核心技术原理‌采用「内核级隔离」方案&#xff0c;通过&#xff1a;系统进…