用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开发技术好文陆续推出。敬请关注、收藏和点赞👍!
您的认可,我的动力!😃
推荐阅读:
- 【AWS入门】IAM多重身份验证(MFA)简介
- 【AWS入门】身份验证和访问管理(IAM)
- 【AWS入门】Amazon SageMaker简介
- 【AWS入门】Amazon Bedrock简介
- 【AWS入门】Amazon Q Developer简介
- 【AWS入门】AWS Lambda应用简介
- 【AWS入门】Amazon Nova简介
- 【AWS入门】Amazon S3简介
- 【AWS入门】Amazon EC2简介
- 【AWS入门】AWS云计算简介
- 【AWS入门】创建并使用AWS Builder ID
- 【AWS入门】AWS亚马逊云科技账户注册指南
- 【AWS入门】获取并安装AWS CLI应用程序