![AWS Toolkits for PyCharm、IntelliJ(预览版)和 Visual Studio Code(预览版)](https://static001.infoq.cn/resource/image/bb/33/bb8609468e52d1b39b791cee4c696333.jpg)
软件开发人员都有自己偏爱的工具。有些使用功能强大的编辑器,还有的使用针对特定语言和平台定制的集成开发环境 (IDE)。2014 年,我使用 Lambda 控制台中的编辑器创建了我的第一个 AWS Lambda 函数。现在,您可以从一组丰富的工具中进行选择,以构建和部署无服务器应用程序。例如,去年 AWS Cloud9 发布时,Lambda 控制台中的编辑器得到了极大的改进。 对于 .NET 应用程序,您可以使用 AWS Toolkit for Visual Studio 和 AWS Tools for Visual Studio Team Services。
AWS Toolkits for PyCharm、IntelliJ 和 Visual Studio Code
今天,我们宣布正式发布 AWS Toolkit for PyCharm。我们还宣布推出 AWS Toolkits for IntelliJ 和 AWS Toolkits Visual Studio Code 开发人员预览版,这些工具套件目前在 GitHub 中处于积极开发阶段。这些开源工具套件将使您能够轻松开发无服务器应用程序,包括使用 IDE 和您选择的语言(Python、Java、Node.js 或 .NET)完整创建、逐步调试和部署。
例如,使用 AWS Toolkit for PyCharm,您可以:
在您的首选运行时中创建一个新的、可随时部署的无服务器应用程序。
在 Lambda 类执行环境中通过逐步调试在本地测试代码。
将应用程序部署到您选择的 AWS 区域。
在本地或远程调用 Lambda 函数。
使用和自定义来自不同事件源的样本负载,例如 Amazon Simple Storage Service (S3)、Amazon API Gateway 和 Amazon Simple Notification Service (SNS)。
这些工具套件根据开源 Apache 许可证版本 2.0 发行。
安装
某些功能使用 AWS 无服务器应用程序模型 (SAM) CLI。您可以在此处找到适用于您系统的安装说明。
AWS Toolkit for PyCharm 可通过 IDEA 插件库获取。要安装它,请在“设置/首选项”对话框中单击“插件”,搜索“AWS Toolkit”,使用复选框启用它,然后单击“安装”按钮。您需要重新启动 IDE 才能使更改生效。
AWS Toolkit for IntelliJ 和 AWS Toolkit Visual Studio Code 目前提供开发人员预览版,尚处于积极开发阶段。欢迎您从 GitHub 存储库构建和安装:
https://github.com/aws/aws-toolkit-jetbrains(IntelliJ 和 PyCharm)
使用 PyCharm 构建无服务器应用程序
安装 AWS SAM CLI 和 AWS Toolkit 后,我在 PyCharm 中创建了一个新项目,并在左侧选择 SAM 以使用 AWS 无服务器应用程序模型创建无服务器应用程序。我在“位置”字段中调用我的项目 hello-world。展开更多设置,我选择作为项目起点的 SAM 模板。在本次分步演示中,我选择“AWS SAM Hello World”。
在 PyCharm 中,您可以使用 AWS 命令行界面 (CLI) 配置中的凭据和配置文件。 如果您有多个环境,则可以快速更改 AWS 区域。
AWS Explorer 在选定的 AWS 区域中显示 Lambda 函数和 AWS CloudFormation 堆栈。从 CloudFormation 堆栈开始,您可以看到哪些 Lambda 函数是其中的一部分。
![](https://static001.infoq.cn/resource/image/03/f8/0302844c32d80ffc4d04fab12920d5f8.png)
函数处理程序位于 app.py 文件中。打开文件后,单击函数声明左侧的 Lambda 图标,选择在本地运行该函数或启动本地分步调试会话。
![](https://static001.infoq.cn/resource/image/e2/af/e24b0f8293b2e687c0c43d69f25d82af.png)
首先,我在本地运行该函数。我可以从为大多数服务(例如 Amazon API Gateway、Amazon Simple Notification Service (SNS)、Amazon Simple Queue Service (SQS) 等)提供的事件模板开始,配置本地调用的输入中提供的事件负载。您可以使用文件作为负载,或选择共享复选框向其他团队成员提供。函数在本地执行,但是如果函数调用其他 AWS 服务,例如 Amazon Simple Storage Service (S3) 或 Amazon DynamoDB,您可以在此处选择要使用的凭据和区域。
![](https://static001.infoq.cn/resource/image/71/a9/71141e02e1791d5ea987bf0fe4a949a9.png)
本地容器用于模拟 Lambda 执行环境。此函数实施基本 Web API,我可以检查结果是否为 API Gateway 所期望的格式。
![](https://static001.infoq.cn/resource/image/c6/1f/c6c02ed726ac584f494f571d19f9cc1f.png)
然后,我想获得有关我的代码运行状况的更多信息。我设置了一个断点并启动了一个本地调试会话。我使用与以前相同的输入事件。同样,您可以选择该函数使用的 AWS 服务的凭据和区域。
![](https://static001.infoq.cn/resource/image/27/29/27812534fcef1785406a7b4230567029.png)
我在代码中跳过 HTTP 请求以检查“变量”选项卡中的响应。在这里,您可以访问所有本地变量,包括事件和函数输入中提供的上下文。
![](https://static001.infoq.cn/resource/image/c2/0e/c228051a5af7022ee30022b9d26ab80e.png)
之后,我恢复程序以结束调试会话。
现在我有足够的信心通过右键单击项目(或 SAM 模板文件)部署无服务器应用程序。我可以创建一个新的 CloudFormation 堆栈,或者更新现有的堆栈。现在,我创建了一个名为 hello-world-prod 的新堆栈。例如,您可以拥有一个用于生产的堆栈和一个用于测试的堆栈。我在区域中选择一个 S3 存储桶来存储用于部署的包。如果您的模板具有参数,则可以在此处设置此部署使用的值。
![](https://static001.infoq.cn/resource/image/d8/60/d839f1a35b4ca9767ab56a6aa9a9f760.png)
几分钟后,堆栈创建完成,我可以在 AWS Explorer 中右键单击,在云中运行该函数。这里还提供了跳转到函数源代码的选项。
![](https://static001.infoq.cn/resource/image/da/31/dabb2ab7c9c8d568a5ed6bb4feccc131.png)
正如所料,远程调用的结果与本地执行的结果相同。我的无服务器应用程序在生产环境中运行了!
![](https://static001.infoq.cn/resource/image/c9/50/c9a492d8b9d2ac4e09246dbde7dc6450.png)
使用这些工具套件,开发人员可以在本地进行测试,以便在部署之前发现问题,更改其应用程序的代码或 SAM 模板中所需的资源,并更新现有堆栈,快速迭代直到达到目标。例如,他们可以添加 S3 存储桶来存储图像或文档,或者添加 DynamoDB 表来存储用户,或者更改其函数使用的权限。
我很高兴看到您在 AWS 上将创意变为现实的速度得到大幅提升,过程也大大简化了。现在,您可以使用首选环境进一步提升速度。我期待看到您使用这些新工具的构建成果
作者介绍:
Jeff Barr
AWS 首席布道师; 2004 年开始发布博客,此后便笔耕不辍。
本文转载自 AWS 技术博客。
原文链接:
评论