升级Cloud9上的SAM CLI
简要概述
如果你以前创建的Cloud9环境中的SAM CLI版本已经过时,你可能想要更新到新版本。 在本文中,我们将介绍更新的步骤。
(虽然实际步骤与下面的官方信息一致)
SAM CLI的升级步骤
下载SAM CLI的zip文件到任意目录,然后解压到”sam-installation”目录。
wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
unzip aws-sam-cli-linux-x86_64.zip -d sam-installation
执行更新命令
sudo ./sam-installation/install --update
版本确认
sam --version
截至2022年3月22日,已升级至1.41.0版。
(附录-1)为什么我决定写这篇文章
我之前在Cloud9环境中创建的项目中,尝试使用以下命令创建了一个基于nodejs14.x运行时的SAM模板。然而,由于nodejs14.x不受支持,所以出现了一个错误,我希望进行更新。
sam init --runtime nodejs14.x --name sample-nodejs
如果执行”pip install –upgrade aws-sam-cli”之类的命令,我本以为会轻松更新,但实际上并没有按照预期进行更新(虽然没有错误,但”sum –version”命令的结果没有改变)。
我在Google上搜索”cloud9 sam cli upgrade”之类的内容,却意外地很难找到上述简单的更新步骤。因此,我决定久违地在Qiita上发布一篇文章,也当作练习。
(附录-2)首先,Cloud9是什么?
AWS Cloud9是一种可以在浏览器中使用的集成开发环境(IDE)服务,为我们提供了一个能够立即开始进行AWS无服务器应用开发等的环境。
我很喜欢AWS CLI、SAM CLI和Docker等工具,因为它们已经预装好了,并且可以设置断点进行代码调试。
由于无需准备本地开发环境,因此当我想稍微写些使用python或nodejs的脚本代码,比如AWS Lambda时,它非常实用。
Cloud9的使用是免费的,只需要支付与其基础设施EC2相关的费用(例如实例、EBS存储等),因此在创建环境时选择t2.micro的EC2实例类型,也可以在免费配额内使用。
在我个人的经验中,使用t2.micro实例类型进行Python或Node.js开发的Lambda时,并没有遇到任何不便之处。
Cloud9环境中对各个AWS资源的访问权限是通过一种临时认证机制来实现的,该机制被称为”AWS Managed Temporary Credentials”。通过这种机制,与创建Cloud9环境的环境所有者的IAM用户几乎具有相同的权限(对IAM相关操作等的一些操作受到限制),默认情况下可以使用。通常情况下,如果要将EC2实例的访问权限设置为其他服务,需要将IAM角色附加到实例上,但是对于用作Cloud9环境的EC2实例,不需要通过该机制附加角色。
可以通过”首选项 > AWS设置 > 凭证”的设置来切换”AWS托管临时凭证”的使用,可以将其设置为关闭,也可以利用自己附加到EC2实例的IAM角色权限来使用。
Cloud9具有一项功能,可以通过多个用户共享一个环境进行协作。然而,“AWS Managed Temporary Credentials”可以实施几乎与环境拥有者的IAM用户相同的权限,因此如果拥有管理员权限的用户创建了一个环境并将其与权限受限的其他IAM用户共享,那么被共享的一方在Cloud9环境中将获得本来不具备的强大访问权限。
如果要共享环境,则最好限定在具有相同权限的IAM组成员之间进行操作。
附录部分的信息量比主题更多。