AWS CodeWhisper概述
Amazon CodeWhisperer 是一种采用机器学习(ML)的服务,可以根据开发人员用自然语言编写的注释和集成式开发环境(IDE)中的代码生成代码建议,帮助开发人员提高工作效率,可以为您的应用程序提供代码审查、安全扫描和性能优化。
Amazon CodeWhisperer 为多种编程语言提供基于人工智能(AI)的代码建议,包括 Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和 Scala。您可以使用来自多个 IDE 的服务,包括 JetBrains IDE(IntelliJ IDEA、PyCharm、WebStorm 和 Rider)、Visual Studio(VS)Code、AWS Cloud9 和 AWS Lambda 控制台。
内置代码安全扫描功能:(这是 copilot暂时还不支持的功能)
使用 CodeWhisperer,您可以扫描 Java、JavaScript 和 Python 项目以检测难以发现的漏洞,例如开放全球应用程序安全项目(OWASP)中排名前十的漏洞,或者不符合加密库最佳实践及其他类似安全最佳实践的漏洞。该服务分析 IDE 中的现有代码(无论是由 CodeWhisperer 生成还是由您编写),高度精确地识别有问题的代码,并对如何修复代码提供明智的建议。
开始使用AWS CodeWhisper
以visual studio code studio为例
- 安装 AWS Toolkit插件

- 安装好后,点击链接AWS。选择使用:
Use a personal to sign in with AWS Builder ID

- 复制 code,并跳转指定网址,粘贴对应code


- 根据指引,创建AWS Builder ID后,选择允许 VSCode 访问你的数据

- 然后就可以正常使用了!

AWS CodeWhisper的特性
代码自动生成
- 通过注释生成代码

- CodeWhisper会扫描上下文,自动生成对应代码:输入 method 的定义: def bubble_sort(nums),后续内容就可以自动生成

- 协助生成对应的测试用例:

- 还可以指定不同类型的测试用例:

代码安全扫描

以如下代码为例:
# write a function to query data from mysql
import mysql.connector
def query_data(conditoin):
db = mysql.connector.connect(
host="localhost",
user="XXXX",
password="XXXX",
database="XXXX"
)
query = "Select * from user where name = '" + conditoin+"'"
cursor = db.cursor()
cursor.execute(query)
result = cursor.fetchall()
return result
看一下 CodeWhisper的代码扫描的结果吧!

它扫描到了如下问题:
- mysql.connector的包没有安装
- CWE-400,664 – 资源泄漏:分配的资源未正确释放。这可能会使您的系统变慢或崩溃。必须在所有路径上关闭它们以防止资源泄漏。
- CWE-798 – 硬编码凭证:访问凭证(如密码和访问密钥)不应该在源代码中进行硬编码。硬编码凭证可能会在删除后仍然导致泄漏。这是因为版本控制系统可能会保留旧版本的代码。凭证应安全地存储并从运行时环境中获取。
- CWE-89 – SQL 注入:必须在使用用户提供的输入生成 SQL 数据库查询之前对其进行净化。攻击者可以创建和使用不受信任的输入来运行查询语句,从而读取、修改或删除数据库内容。
上述内容,虽然对与一个高级工程师来说,都是小意思。但多少可以解决一些小白工程师的基本问题!
很棒吧,赶紧试试,最重要的是,AWS CodeWhisper 是宣布对个人开发者永久免费哦!
留言