当前位置: 首页 > backend >正文

用Amazon Q Developer助力Python快捷软件开发

用Amazon Q Developer助力Python快捷软件开发

Assist and Advance Python Software Development with Amazon Q Developer

By Jackson@ML

1. 注册AWS账户

打开Chrome浏览器,访问AWS亚马逊云科技官网链接:https://aws.amazon.com/cn/, 主页面如下图所示。

在这里插入图片描述

使用AWS任何产品服务,均需要先行一步注册AWS账户。

关于AWS账户注册过程,请参看文章:2025AWS亚马逊云科技账户注册指南,, 本文不再赘述。

2. 注册IAM用户并分配权限

AWS官网注册完账户即产生了管理员权限,该账户称作根用户(Root User)。为了控制访问资源和安全保障,强烈建议创建IAM用户来分配可访问资源到用户。

关于访问权限管理,请参看文章:AWS身份验证和访问管理(IAM) 。本文不再赘述。

3. 安装VS Code最新版

访问微软开发的Visual Studio Code官网链接:https://code.visualstudio.com/,打开Web主页面如下图。

在这里插入图片描述
点击页面中央Download for macOS即可下载该软件。

关于安装使用最新版Visual Studio Code,请参看文章:2025最新版Visual Studio Code for Mac安装使用指南, 本文不再赘述。

4. 安装Extensions

打开VS Code的Marketplace,在搜索栏中,输入关键字查找Amazon Q, AWS以便安装以下Extensions:

  • AWS Toolkit
  • Amazon Q Developer

搜索到并且安装完毕这些Extensions(扩展)后,可以看到它们具备卸载(uninstall)和重新启动功能,如下图。

4.1 AWS Toolkit安装

在这里插入图片描述

4.2 Amazon Q Developer安装

在这里插入图片描述

5. 登录Amazon Q Developer

  • 使用AWS账户登录VS Code中的Q Developer;
  • 长期不使用,再次使用须重新登录并重新鉴权(re-authentication),于是重定向到AWS验证Web页面。
    在这里插入图片描述

6. 用Amazon Q Developer快速开发应用程序

已经安装好的VS Code集成开发环境,需要手动启动Amazon Q Developer。

在这里插入图片描述
我们注意到,在VS Code下方状态栏里,已经出现 Amazon Q的图标字样,证明该程序的Extension已安装并且已启动。

由于Amazon Q位于VS Code左侧,用鼠标点击选择Q的prompt选项,并将Turn ON Agentic Coding开关打开,如下图。

在这里插入图片描述

示例一:创建Python函数已返回两个数字除法结果

在该对话框输入编程求助提示词,

How can I create a Python function to calculate the result of multiplication between two numbers?

如下图。
在这里插入图片描述
按Enter键,在2-3秒思考后,Amazon Q立刻做出反应。

在这里插入图片描述
可以看到,Amazon Q对用户的诉求“创建两个数字的除法函数”简明扼要的返回结果,即如下所示:

def multiply(a, b):return a * b
示例二:用Amazon Q创建一个lambda函数来处理SQS队列

输入prompts:

How do I create a Python lambda function to process messages from an sqs queue?

于是,Q做出了快速响应,如下图。

在这里插入图片描述

示例三:创建一个类,用于管理学生的学习、报告和考试。
class Student:def __init__(self, name):self.name = nameself.knowledge = 0self.exams_passed = 0def learn(self, subject):self.knowledge += 1print(f"{self.name} learned {subject}")def report(self):return f"{self.name}: Knowledge={self.knowledge}, Exams passed={self.exams_passed}"def pass_exam(self, exam_name):self.exams_passed += 1print(f"{self.name} passed {exam_name}")

在下方Usage(用例)中,增加代码:

student = Student("Alice")
student.learn("Math")
student.pass_exam("Algebra Test")
print(student.report())  # Alice: Knowledge=1, Exams passed=1

7. 使用Amazon Q Developer的开发代理

在prompt对话框中,输入/弹出选项菜单,选择/dev即可增加开发代理,来协助产生复杂代码,满足用户需求。

在这里插入图片描述

8. 大模型过载警告

⚠️ 一旦输入的prompt使得大模型(例如:Claude Sonnet 4)无法进行处理,则弹出警告,如下图。

在这里插入图片描述

证明该模型不可用(Model Unavailable)!此时不要惊慌,可以调整变换到可用的大模型,例如:启用Claude Sonnet 3.7即可。

同样输入prompt,则会得到如下结果。

  • 创建了一个名为hotel-manager.py的代码文件;
  • 回答了用户基本问题,如下图:

9. 示例代码

产生了hotel_manager.py程序文件,可以从VS Code打开查看代码是否正确,如下所示。

class HotelManager:def __init__(self):self.rooms = {}  # room_number: {"guest": name, "checked_in": datetime}self.available_rooms = set(range(100, 120))  # Rooms 100-119def check_in(self, guest_name, room_number=None):"""Check in a guest to a specific room or any available room"""if room_number and room_number not in self.available_rooms:return f"Room {room_number} is not available"# Assign first available room if none specifiedif not room_number:if not self.available_rooms:return "No rooms available"room_number = min(self.available_rooms)# Process check-inself.rooms[room_number] = {"guest": guest_name}self.available_rooms.remove(room_number)return f"{guest_name} checked into room {room_number}"def check_out(self, room_number):"""Check out a guest from a room"""if room_number not in self.rooms:return f"Room {room_number} is not occupied"guest = self.rooms[room_number]["guest"]del self.rooms[room_number]self.available_rooms.add(room_number)return f"{guest} checked out from room {room_number}"def get_guest_info(self, room_number):"""Get information about who is in a specific room"""if room_number in self.rooms:return f"Room {room_number} is occupied by {self.rooms[room_number]['guest']}"return f"Room {room_number} is vacant"def list_available_rooms(self):"""List all available rooms"""return sorted(list(self.available_rooms))# Example usage
if __name__ == "__main__":hotel = HotelManager()print(hotel.check_in("John Smith"))print(hotel.check_in("Jane Doe", 105))print(hotel.get_guest_info(100))print(hotel.get_guest_info(105))print(hotel.check_out(100))print(hotel.list_available_rooms())

成功完成了低代码开发!

接下来要根据客户需求,认真进行测试并且发现代码错误甚至是不完善的地方进行修改完善。

最后,程序代码才能够交付使用。


AWS开发技术好文陆续推出。敬请关注、收藏和点赞👍!

您的认可,我的动力!😃

推荐阅读:

  1. 【AWS入门】IAM多重身份验证(MFA)简介
  2. 【AWS入门】身份验证和访问管理(IAM)
  3. 【AWS入门】Amazon SageMaker简介
  4. 【AWS入门】Amazon Bedrock简介
  5. 【AWS入门】Amazon Q Developer简介
  6. 【AWS入门】AWS Lambda应用简介
  7. 【AWS入门】Amazon Nova简介
  8. 【AWS入门】Amazon S3简介
  9. 【AWS入门】Amazon EC2简介
  10. 【AWS入门】AWS云计算简介
  11. 【AWS入门】创建并使用AWS Builder ID
  12. 【AWS入门】AWS亚马逊云科技账户注册指南
  13. 【AWS入门】获取并安装AWS CLI应用程序
http://www.xdnf.cn/news/15568.html

相关文章:

  • 创建SprngBoot项目的四种方式
  • 网络编程(数据库)
  • oracle服务器定时备份Windows Server
  • 服务攻防-Java组件安全数据处理FastJsonJackSonXStream自动BP插件CVE漏洞
  • vue中后端返回数据流,前端实现导出下载
  • Flutter基础(前端教程①①-底部导航栏)
  • 【动归解题套路框架】【带备忘录的递归】【最优子结构】【自下而上DP table】
  • FunASR Paraformer-zh:高效中文端到端语音识别方案全解
  • Linux运维新手的修炼手扎之第19天
  • 【从零开始学习大模型】什么是MCP协议
  • PostGres超过最大连接数报错
  • 多级缓存架构与热点探测系统核心技术解析
  • AI时代基础入门
  • 测试学习之——Pytest Day2
  • 深入理解 Kafka 核心:主题、分区与副本的协同机制
  • Scalefusion 与 EasyControl 对比:轻量级方案与全功能 IoT MDM 的深度碰撞
  • spring容器的bean是单例还是多例的?线程安全吗?
  • AI编程神器 Claude Code 安装及使用体验
  • SQLSERVER清理日志
  • 【28】MFC入门到精通——MFC串口 Combobox 控件实现串口号
  • Python面向对象编程(OOP)详解:通俗易懂的全面指南
  • HTTP vs HTTPS
  • Linux驱动基础:阻塞、休眠、poll、异步通知
  • 探究Netty 4.2.x版本
  • 增程式汽车底盘设计cad【9张】三维图+设计说明书
  • 单列集合顶层接口Collection
  • 医疗AI“全栈原生态“系统设计路径分析
  • 【游戏引擎之路】登神长阶(十八):3天制作Galgame引擎《Galplayer》——无敌之道心
  • 用AI做带货视频评论分析进阶提分【Datawhale AI 夏令营】
  • LLM大语言模型不适合统计算数,可以让大模型根据数据自己建表、插入数据、编写查询sql统计