本文将探索如何在 Visual Studio Code 这个开发者常用的一种集成编程环境(IDE)中,使用 Amazon Q Developer 列出指定区域的 Amazon S3 存储桶的示例代码实现。我们将从在 Amazon Q Developer Agent 的协助下,从生成新代码开始,到将生成的新代码与现有的低效“遗留”旧代码进行性能对比;然后借助 Amazon Q Developer 的指导,来优化这段遗留代码,从而减少代码执行时间和提升代码效率。
原英文博客文章链接如下,供参考:
概览
如您所知,亚马逊云科技最近宣布了 Amazon Q Developer 的正式公开可用,这是一款由生成式 AI 驱动的编程助手,可重塑开发者在整个软件开发生命周期(SDLC: Software Development Lifecycle)的开发体验。
官方博客参考如下:
Amazon Q Developer 可帮助开发者更好地理解、构建、扩展和操作 Amazon Web Services 应用程序。您可以询问有关基础设施架构、服务资源、行业最佳实践、参考文档、技术支持等多方面的问题。Amazon Q 还在不断地更新其更广泛的功能,以支持开发者的问题持续获得最新相关且可操作的解答和建议。
在这篇文章中,我们将探讨如何在 Visual Studio Code IDE 环境中使用 Amazon Q Developer 来处理真实世界的编码需求。我们将以编写一段完整有效且高质量的 Python 代码,实现列出某个指定区域中的所有 Amazon S3 存储桶作为演示示例。
在继续阅读之前,建议开发者先参考以下技术文档,了解如何在 Visual Studio Code 中设置 Amazon Q Developer:
docs.aws.amazon.com/amazonq/lat…
生成新代码
首先,让我们使用 Amazon Q Developer Agent 来编写初始代码。您可以参考以下文档,了解 Amazon Q Developer Agent 的详细信息:
docs.aws.amazon.com/amazonq/lat…
在 Amazon Q Developer Agent 的帮助下编写代码其实比较简单,如下截图所示:
在 Amazon Q Developer 聊天面板中,我使用的提示如下:
css
复制代码/dev Write code to list all the Amazon S3 buckets in the `ap-east-1` region and output their names, along with the total execution time of the script.
翻译成中文,我在提示中对 Amazon Q Developer 的要求是:
“编写代码列出‘ap-east-1’区域中所有的 S3 存储桶的名称,以及计算代码脚本的总执行时间。”
为方便读者参考,我将以上截图中 Amazon Q Developer Agent 生成的代码段复制如下:
python复制代码import time
import boto3
def list_s3_buckets_in_region(region_name):
"""
Lists all the Amazon S3 buckets in the specified region.
Args:
region_name (str): The AWS region name.
Returns:
list: A list of bucket names.
"""
s3_client = boto3.client('s3', region_name=region_name)
response = s3_client.list_buckets()
buckets = []
for bucket in response['Buckets']:
bucket_region = s3_client.get_bucket_location(Bucket=bucket['Name'])['LocationConstraint']
if bucket_region == region_name:
buckets.append(bucket['Name'])
return buckets
def main():
start_time = time.time()
region_name = 'ap-east-1'
buckets = list_s3_buckets_in_region(region_name)
print(f"Number of buckets found in {
region_name}