为Lambda增加新功能
作者:Sergio De Simone
译者:张卫滨
AWS最近为AWS Lambda增加了一项功能,允许定义变量来实现代码运行环境的个性化。按照AWS首席布道师Jeff Barr的说法,能够让我们编写出整洁和可重用的代码,无需进行重新部署。
借助环境变量,能够让我们的函数在不同的环境中所执行的行为有所差异,这个过程中不需要改变它的实现。典型的使用场景就是为特定的生命周期阶段采用不同的函数行为,比如开发阶段、测试阶段或生产阶段,每个阶段可能会使用各自的数据库或使用不同的连接凭证。
AWS Lambda环境变量可以使用AWS Console、CLI或SDK来进行定义。如下展现了如何使用AWS CLI定义AWS Lambda,在这个过程中用到了一个LD_LIBRARY_PATH环境变量:
aws lambda create-function --region us-east-1 --function-name myTestFunction --zip-file fileb://path/package.zip --role role-arn --environment Variables={LD_LIBRARY_PATH=/usr/bin/test/lib64} --handler index.handler --runtime nodejs4.3 --profile default
环境变量在创建之后,就可以使用编程语言所支持的方式来访问环境信息,比如在Node.js中使用process.env。当使用Python的时候,我们需要导入os库,如下面的样例所示:
...import os...print("environment variable: " + os.environ['variable'])
环境变量就是一些键/值对,如果需要的话,可以进行加密和解密。它们会关联到所属的Lambda的一个给定版本上,在Lambda发布之前,它们可以自由地进行修改。但是一旦lambda版本发布,那么它的环境变量就变成不可变的了。将Lambda回滚至任意版本的时候,它的环境变量也会恢复。在数量上,Lambda函数可以关联多少环境变量并没有限制,只要它们的总大小不超过4KB就可以。
发布基于Docker的Linux系统映像
译者:于航
近期,AWS为其Amazon Linux操作系统发布了一个基于Docker容器的Linux系统映像。AWS根据自定义云和内部部署环境的多功能部署选项来为EC2提供特定的Amazon Linux AMI,即Linux映像。该映像可通过Amazon EC2的Docker容器注册表(Amazon ECR)来获得,同时该映像也成为Docker Hub上的一个官方存储库。
Amazon Linux AMI是“由Amazon Web Services提供的受支持和维护的Linux映像”,它旨在“为在Amazon EC2上运行的应用程序提供稳定,安全和高性能的执行环境”。它一直是大多数AWS基于Linux的产品的基础映像,例如AWS Elastic Beanstalk平台,Amazon Elastic MapReduce发行版和Amazon EC2容器服务实例。
虽然Amazon Linux也是在EC2上定制Linux工作环境时的一种常用选择,但是由于缺乏对开发/生产平等原则的支持,Amazon Linux没有被广泛的使用。该原则主张“尽可能对开发、准生产和生产一视同仁”。 AWS现在通过在AmazonEC2容器注册表(AWS自己完全托管的Docker容器注册表)来发布Amazon Linux容器映像,AWS通过这一方式解决了上述问题。Amazon EC2容器注册表现在也作为Docker Hub上的一个官方存储库。 这些镜像可以通过如下方式进行提取:
# Pull Amazon Linux container image from Amazon ECRregion=$(aws ecr get-login --region $region --registry-ids 137112412989)docker pull 137112412989.dkr.ecr.$region.amazonaws.com/amazonlinux# Pull Amazon Linux container image from Docker Hubdocker pull amazonlinux
Amazon Linux AMI和容器映像之间的一个显著区别是,AMI附带预先安装的常用AWS相关包,例如AWS命令行界面(AWS CLI)。相比之下,根据AWS团队的描述,他们使“容器映像的体积尽可能的减小(可以以最小的体积保证容器的可移植性)”(目前大小为292.3MB),因此他们“鼓励客户根据自己的需求来自定义配置容器”。 这些容器映像都是“从相同的源代码和软件包构建的”,用户可以在这些容器上安装所有可用的Amazon Linux AMI软件包。
你可以通过最新的Amazon Linux论坛来获得关于Amazon Linux容器映像相关内容的帮助和支持,该论坛现在还提供对Amazon Linux AMI(以前可以通过Amazon EC2论坛得到帮助和支持,现在该论坛内的帮助信息仍然有效)相关内容的帮助和支持。 Amazon ECR用户指南详细介绍了如何提取Amazon Linux容器映像,Amazon Linux AMI用户指南还介绍了关于容器映像应用方面的一些主题,例如存储库配置,如何添加包等等。你可以通过Amazon Linux AMI中心来查看发布说明。
细说云计算
ID:CloudNote
▲长按二维码识别关注
探讨云计算的一切,
有干货,也有闲聊。
我来说两句排行榜