AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同

这篇具有很好参考价值的文章主要介绍了AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同,AWS SAP认证,aws,云计算,aws认证,saa,sap,lambda

Hello大家好,我们今天继续讨论AWS Lambda的内容。

Lambda函数的版本
AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同,AWS SAP认证,aws,云计算,aws认证,saa,sap,lambda

Lambda函数的版本和别名是辅助资源,我们可以通过创建这些资源管理函数的部署和调用。

首先,让我们来看一下Lambda 函数版本的概念。您可以使用版本来管理函数的部署。例如,您现在生产环境上运行了一个函数,假设是V1版本,您可以发布一个这个函数的新版本,比如发布V2版本,以用于新版本测试,而不会影响生产环境V1版本的用户。

这里有一个** L A T E S T 的概念, LATEST的概念, LATEST的概念,LATEST您可以理解成它是最新的“未发布版本”**,当您创建和使用Lambda函数时,您就是在处理$ LATEST版本,您可以一直修改$LATEST直到您满意为止。这是一个可变函数,因为您可以对其进行修改。

然后当修改完成后,您需要发布来使用Lambda函数,这个时候您就需要创建一个版本,比如V1版本。您每次发布函数时,Lambda 都会为函数创建一个新版本。

在您发布版本后,函数的代码和大多数设置都会被锁定,也就是不可改变的了,这也是为了给该版本的用户维持一致的体验,您无法在进行修改。比如一旦发布V1版本,V1版本就无法在修改了。

修改函数后可以通过将其发布为新的版本以投入使用,比如V2、V3等。每一个版本都有各自的ARN,所以您可以单独调用V1版本,也可以单独调用V2版本,或者$LATEST。

那函数版本都包括什么呢?**它包括您的代码以及所有关联的依赖项,调用函数的运行环境,函数的设置以及环境变量等等。**发布函数版本之后,这些都是不可变的,比如如果您想调整内存,您需要创建一个新版本如V2,然后进行发布。

您可以访问每个版本的Lambda函数,当您进行金丝雀测试时会非常有帮助。

Lambda 函数别名
AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同,AWS SAP认证,aws,云计算,aws认证,saa,sap,lambda

接下来我们来讨论Lambda 函数别名,aliases。

Lambda 别名类似于指向特定函数版本的指针,您可以定义任何您想要使用的别名,比如一些比较常见的别名例子为:开发、测试、生成环境的别名。您可以定义这些别名然后分别将其指向不同的Lambda版本。

每个别名都有唯一的 ARN,而且别名是可以更改指向的,可以更新别名以便指向函数的新的或其他版本。

我们举个的例子,组织一般都会分为开发、生产、测试环境,比如对应我们的3个函数版本,LATEST、V1和V2。然后:

我们可以创建一个DEV的别名,将其指向LATEST版本;

在创建一个TEST别名,将其指向V2版本;

以及创建一个PROD别名,将其指向V1版本。

以上三个别名的ARN都是不同的,这样如果有用户访问DEV别名的ARN时,就会被重定向到LATEST函数版本;访问TEST别名时,就会重定向到V2版本,PROD别名同理。

对于用户的角度,可以访问DEV,TEST和PROD三个别名,重定向到对应的函数版本;然后我们可以更改这三个别名指向我们希望的其他的函数版本。

使用别名可以支持蓝绿部署,可以为Lambda函数分配权重,这样的话访问别名之后就不只是对应一个函数版本了。

比如访问PROD别名时,可以配置将访问的95%的流量指向V1,也就是生成环境的稳定版本;然后将5%的访问流量切到V2版本,用于测试新版本。这是通过配置权重来实现的。

函数别名与API网关
AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同,AWS SAP认证,aws,云计算,aws认证,saa,sap,lambda

我们继续。

一般情况下,新版本发布都会遵循三个阶段,开发阶段、测试阶段及发布至生产环境。新版本会在开发环境做测试,如果测试确认没问题之后,会先发布到测试环境,通常测试环境会导入生成环境的部分访问流量做测试,如果测试确认没问题,在慢慢将更多的流量导入测试环境的新版本,最终完成新版本的发布。

接下来我们拿一个API网关的环境,来说明下针对不同的阶段函数别名的运用:

这里有一个开发Stage(开发阶段),指向DEV的别名,然后向$LATEST的Lambda函数路由100%的流量。还有一个测试Stage(测试阶段),指向TEST别名,向Lambda函数的V2版本路由100%的流量。生产Stage(生产阶段),指向PROD别名,向Lambda函数的V1版本路由100%的流量。

V2是我们的新版本,假设目前内部已经测试确认了,我们需要将V2版本发布到生产环境,也就是PROD别名。可以通过配置权重将生产的访问量慢慢切换到V2版本。比如配置PROD别名,将95%的流量指向V1,然后将5%的流量指向V2版本。

我们在这个例子中要注意的是,上面这个切换版本的步骤,是发生在Lambda别名级别,我们调整的是PROD别名;

在API网关这一侧,指向的别名一直没有改变,我们不必修改API网关配置。

所以,在上面这种或者类似的场景中,如果我们需要部署和切换不同的函数版本,使用函数别名来进行配置的话就会非常的方便;当有新的函数版本时,我们只需要通过别名配置将流量慢慢切换到新的函数版本,而不需要每次发布时调整API网关的配置。

通过这个例子,希望大家对于函数别名的功能和使用场景有所了解,发布新版本时,使用别名只需要调整别名的指向,而不需要调整其前面的,对于上面这个例子的API网关的配置。

Lambda与CodeDeploy
AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同,AWS SAP认证,aws,云计算,aws认证,saa,sap,lambda

最后,我们来看一下 Lambda和CodeDeploy。

CodeDeploy可以帮助您实现自动化的Lambda别名的流量转移功能,也就是Traffic shifting功能,如果您使用SAM无服务器应用程序模型来创建,这个功能是直接内置的。

我们来看一下整个的流程:这里有一个PROD别名,以及两个函数版本,V1和V2。V1是当前线上的版本,V2是您刚刚发布的新版本。

假设目前线上都是在访问函数的V1版本,而V2版本0%没有访问量,您希望将V1的访问量慢慢转移到新版本V2,这样完成新版本的上线使用。

注意这里说的不是手动一下切到V2版本,而是通过配置,自动将当前V1版本的100%的访问量,慢慢的按一定百分比转移到新版本V2上。逐步将访问量切换到新版本而不是立刻切换,也是为了当新版本有问题时将影响降到最低。

CodeDeploy就可以帮您实现这个过程。

那多久且每次转移多少百分比的访问量到新的版本呢?这就需要定义部署策略,我们来看一下都有哪些策略: 第一种部署策略为线性的方式,也就是您可以定义每隔N分钟,增加10%的流量,直到100%。比如,Linear10PercentEvery1Minute,定义每1分钟转移10%的访问量到V2版本直到100% 。以及 Linear10PercentEvery2Minutes,定义每2分钟转移10%的访问量到V2版本直到100%, 或者配置为每3分钟以及每10分钟转移10%流量直到100%,以上这些就是线性的方式。

第二种部署的策略为金丝雀方式,您可以选择:Canary10Percent5Minutes ,5分钟切换10%的流量,然后如果没有收到任何错误,切换剩下的所有流量到新版本V2。Canary10Percent10Minutes,或者10分钟切换10%的流量,然后如果没有收到任何错误,切换剩下的所有流量到新版本V2。以及定义15、30分钟,切换10%的流量,然后在切换剩下的所有流量到新版本V2。

第三种部署的策略为All-at-once,这种方式就不会在按照一定的百分比切换访问量了,而是将所有的流量从原来的版本一次性切换到新的版本。

最后我们可以配置Hooks挂钩,在流量转换开始到新版本之前 和 流量转换完成后运行健康检查。

比如我们如果配置了转移前的hook,在部署V2版本时测试此版本函数是否正常;然后当流量转移到新版本V2之后,还会运行一个流量转移后的Hook,确保一切正常,当测试时发现问题时,自动对版本进行回滚,所以这个Hooks挂钩的作用是非常大的。

好的,以上就是我们今天课时的内容,我们讨论了AWS Lambda – 第四部分的内容,希望能够给大家带来帮助。文章来源地址https://www.toymoban.com/news/detail-722951.html

到了这里,关于AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • azure-cognitiveservices-speech api error while using with AWS Lambda

    1.在mac上安装 正常运行没有问题,服务部署到docker 容器中后调用Azure语音评估服务报错 Cancellation Reason 初始化平台失败 2.解决方案,变更 azure-cognitiveservices-speech 版本为 1.18 再次调用服务,完美解决

    2024年02月15日
    浏览(36)
  • 【Terraform学习】使用 Terraform创建Lambda函数启动EC2(Terraform-AWS最佳实战学习)

     本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月11日
    浏览(51)
  • aws lambda入门之基础

    文档:AWS Lambda foundations - AWS Lambda Lambda 函数是 Lambda 的基本。 可以使用 Lambda 控制台、Lambda API、AWS CloudFormation 或 AWS SAM 配置函数。 Lambda 在事件发生时调用该函数。 Lambda 并行运行您的函数的多个实例,并受并发和扩展限制的约束。 Lambda 运行函数实例来处理事件。 可以使用

    2024年02月01日
    浏览(54)
  • AWS中Lambda集成SNS

    在Lambda中,创建名为AWSSNSDemo的函数 创建名为:SNSTopicTest的主题        发布消息后,在DynamoDB中, 如果检测到发布的消息数据,则说明集成成功。  

    2024年02月13日
    浏览(48)
  • 【SERVERLESS】AWS Lambda上实操

    通过Serverless的发展历程及带给我们的挑战,引出我们改如何改变思路,化繁为简,趋利避害,更好的利用其优势,来释放企业效能,为创造带来无限可能。 无服务器计算近年来与云原生计算都是在互联网背景下产生,其顾名思义是指开发者在构建和运行应用时无需管理服务

    2024年04月15日
    浏览(41)
  • AWS Lambda 操作 RDS 示例

    创建一个 Lambda 接收调用时传入的数据, 写入 RDS 数据库 Post 表存储文章信息. 表结构如下: id title content create_date 1 我是标题 我是正文内容 2023-10-21 15:20:00 RDS 控制台创建 MySQL 实例, 不允许 Public access (后面 Lambda 需要通过 VPC 访问) Secrets Manager 控制台创建 Credentials for Amazon RDS da

    2024年02月08日
    浏览(45)
  • 如何使用 AWS Lambda 运行 selenium

    借助 AWS Lambda 运行 selenium 来爬取网络数据。 与手动从网站收集数据相比,爬虫可以为我们节省很多时间,对于爬虫的每次请求而言,这相当于 AWS Lambda 的每次函数的运行。 AWS Lambda 是一种将脚本部署到云的简单且价格低廉的服务,如果我们要实现在 AWS Lambda 上运行 selenium 实

    2024年02月03日
    浏览(40)
  • SaaS 与 AWS 云:协同创新的崭新时代

    在云计算的潮流下,SaaS(Software as a Service)模型和AWS(Amazon Web Services)云平台的结合为企业带来了前所未有的灵活性、可扩展性和效率。这两者的协同作用开启了一场数字化时代的创新浪潮,重新定义着企业软件交付和基础设施管理的方式。 SaaS作为一种服务交付模型,为用

    2024年01月20日
    浏览(54)
  • AWS中lambda与DynamoDB的集成

    前言:我在整个集成过程中,存在最大的问题有两个, 1. 没有考虑到lambda函数的权限,即对DynamoDB或者其他如Kinesis的权限授权,导致无法写入或者读取。 2.最初使用了异步方式调用,导致无法写数据到DynamoDB,把代码改成同步调用即可  创建好之后保存,然后进行部署(deplo

    2024年02月13日
    浏览(74)
  • AWS Lambda - 同步/异步调用,事件源,目标

    Hello大家好,我们今天继续讨论AWS Lambda的内容。 Lambda函数有三种调用方式。 第一种方式是同步调用。 当我们使用API、CLI以及API网关等调用函数时,就是同步调用。 当您同步调用函数时,Lambda会运行该函数并等待响应,当函数完成时将结果同步返回,所以您的代码将等待这个

    2024年02月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包