正如我在之前的博客文章中详细介绍的那样,我将继续更新Linux Academy AWS DevOps Pro 认证课程。该课程有三个新部分(Lambda 版本控制和别名在 Lambda 部分中起着重要作用): 部署管道 AWS Lambda,以及 AWS API 网关 以及六个新的动手交互式实验室。AWS Lambda 和无服务器概念在 AWS 中,我们大量使用基础设施:VPC、EC2 实例、Auto Scaling 组、负载均衡器(弹性、应用程序或网络)。当然,使用 CloudFormation,我们将该基础设施作为代码处理。那些 json 或YAML模板实际上是代码。AWS Lambda 通常用于与CloudFormation紧密协作,作为一种实用工具,可用于执行 CloudFormation 无法开箱即用的任务。现在要明确的是,Lambda 的唯一目的并不是与 CloudFormation 协同工作,但它肯定是一个常见的用例。如果您在 AWS 工作足够长的时间,您可能会遇到需要实现 Lambda 函数的用例。并且您可能会遇到完全无服务器的环境。在这些情况下,您将 Lambda 函数提供给 AWS,他们会担心其余的事情。您可以确定在云中的某个地方有服务器在运行您的 Lambda 函数,但它们实际上与您无关。您无需为该基础设施付费。您只需为 Lambda 函数的运行时间付费。因此,在无服务器环境中,基础设施完全从您的等式中移除。同样,CloudFormation 的口号是基础设施即代码。那么使用 Lambda,无论出于何种目的,基础设施都被移除,您只剩下代码。软件部署工作流和版本控制作为 DevOps 工程师,我们需要扮演几个不同的角色。如果我们使用 Lambda,我们需要在戴上软件开发和部署帽子时熟练掌握。因此,您将遵循软件最佳实践,典型的开发/部署工作流将拥有开发、测试和生产环境。对此没有硬性规定。例如,您也可以拥有一个测试环境。但主要的一点是,在不同的环境中,您将拥有部署到这些环境中的不同版本的 Lambda 函数。我们能轻松地对 Lambda 函数进行版本控制吗?当然可以(用 Rocky Balboa 的声音说)。Lambda版本控制通过使用版本控制,我们可以更好地管理 AWS Lambda 中的生产函数代码。在 AWS Lambda 中使用版本控制时,您可以发布一个或多个版本的 Lambda 函数。所有这些的关键点是,每个版本的 Lambda 函数都有自己的 ARN,最重要的是,已发布的 Lambda 函数版本是不可变的。用外行人的话来说,您无法更改已发布的 Lambda 函数!从表面上看,这似乎非常严格。如果我无法更改已发布的版本,那么我必须经历哪些麻烦才能想出另一个与已发布的版本略有不同的版本?不要害怕。您可以更改一个现成的 Lambda 函数版本,它名为版本 $Latest。这是函数的最新版本,您可以对其进行更改并根据所做的更改发布新版本。当您首次创建 Lambda 函数时,这是您拥有的唯一版本:上面的屏幕截图显示了 Lambda 管理控制台和新创建的 Lambda 函数。通过单击“限定符”下拉菜单,我们将看到 Lambda 函数的版本和别名(我们将在稍后讨论)。现在,如果我们想要发布 Lambda 函数的新版本,我们只需对函数进行所需的更改,转到“操作”下拉菜单并选择“发布新版本”:现在,您可能会认为 $Latest 版本和您的新版本(版本 1)是相同的。您是对的。但请记住,只有 $Latest 版本可以更改。因此,当您决定需要第二个版本时,您将对 $Latest 进行更改,然后发布该新版本(版本 2)。您的最新版本将与版本 2 匹配,直到您决定对 $Latest 版本进行进一步更改。通过这种方式,您可以创建任意数量的版本,并且所有编号版本都将彼此不同。假设版本 3 是我们的生产版本。我们已经确定了需要在我们的代码中进行的更改。然后,我们将更新 $Latest 并发布新版本。这个新版本最初可能在我们的开发环境中。我们不想直接将其转储到生产环境中并希望获得最佳效果。我们可以在开发环境中对其进行一些测试,将其移至测试版,再进行一些测试,然后最终将其移至我们的生产环境。Lambda别名现在我们还在 Lambda 控制台中看到了对别名的支持。我们可以用别名做什么?AWS Lambda 支持为每个 Lambda 函数版本创建别名。别名只是指向特定 Lambda 函数版本的指针。每个别名还具有唯一的 ARN。别名和函数之间的一个主要区别是您可以更改别名。您可以更改别名以指向函数的不同版本。想想拥有这种能力后您能拥有的力量!例如,如果您有一个 prod 别名,则可以将该别名更改为指向函数的不同版本。只需将 prod 别名指向该函数,该函数就会神奇地成为您的 prod 函数。它比这稍微复杂一些,但也不是太复杂。请记住,所有 Lambda 函数都需要一个事件源,无论是 S3 存储桶、API、DynamoDB 表还是任何其他事件源。假设我们直接使用 Lambda 函数。因此,在我们的事件源(例如 S3 存储桶)中,您可以识别 S3 可以调用的 Lambda 函数 ARN(示例调用是将文件上传到S3 触发 Lambda函数)。问题是我们的 Lambda 函数版本是不可变的!因此,每次我们将版本提升到 prod 时,我们都必须转到 S3 并输入新的 ARN。那么我们如何抽象提升 Lambda 函数的过程,以便我们不必每次都更改 S3 中的调用设置?我们可以使用别名!在 S3 中,我们可以输入 prod 别名的别名 ARN。如果我们有 Lambda 函数的新版本,我们希望将其作为我们的 prod 版本,那又怎样!我们可以将 Lambda 中的 prod 别名更改为指向新版本。S3 中的配置永远不需要改变。Prod 永远是 prod。我们将 prod 别名指向的任何函数都将是我们的 prod 函数。因此,这就是我们如何使用 Lambda 函数版本和别名来简化和精简函数部署过程的一个例子。这个过程越简单、越灵活,出错的可能性就越小。我一直在更新我的 AWS DevOps 专业认证课程,而 Lambda 版本控制和别名是新的重点领域之一。但还有更多内容被添加和更新,因此请在此处查看更新的 AWS 认证 DevOps 工程师 - 专业级课程! 免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持! 查看原文
正如我在之前的博客文章中详细介绍的那样,我将继续更新Linux Academy AWS DevOps Pro 认证课程。该课程有三个新部分(Lambda 版本控制和别名在 Lambda 部分中起着重要作用): 部署管道 AWS Lambda,以及 AWS API 网关 以及六个新的动手交互式实验室。AWS Lambda 和无服务器概念在 AWS 中,我们大量使用基础设施:VPC、EC2 实例、Auto Scaling 组、负载均衡器(弹性、应用程序或网络)。当然,使用 CloudFormation,我们将该基础设施作为代码处理。那些 json 或YAML模板实际上是代码。AWS Lambda 通常用于与CloudFormation紧密协作,作为一种实用工具,可用于执行 CloudFormation 无法开箱即用的任务。现在要明确的是,Lambda 的唯一目的并不是与 CloudFormation 协同工作,但它肯定是一个常见的用例。如果您在 AWS 工作足够长的时间,您可能会遇到需要实现 Lambda 函数的用例。并且您可能会遇到完全无服务器的环境。在这些情况下,您将 Lambda 函数提供给 AWS,他们会担心其余的事情。您可以确定在云中的某个地方有服务器在运行您的 Lambda 函数,但它们实际上与您无关。您无需为该基础设施付费。您只需为 Lambda 函数的运行时间付费。因此,在无服务器环境中,基础设施完全从您的等式中移除。同样,CloudFormation 的口号是基础设施即代码。那么使用 Lambda,无论出于何种目的,基础设施都被移除,您只剩下代码。软件部署工作流和版本控制作为 DevOps 工程师,我们需要扮演几个不同的角色。如果我们使用 Lambda,我们需要在戴上软件开发和部署帽子时熟练掌握。因此,您将遵循软件最佳实践,典型的开发/部署工作流将拥有开发、测试和生产环境。对此没有硬性规定。例如,您也可以拥有一个测试环境。但主要的一点是,在不同的环境中,您将拥有部署到这些环境中的不同版本的 Lambda 函数。我们能轻松地对 Lambda 函数进行版本控制吗?当然可以(用 Rocky Balboa 的声音说)。Lambda版本控制通过使用版本控制,我们可以更好地管理 AWS Lambda 中的生产函数代码。在 AWS Lambda 中使用版本控制时,您可以发布一个或多个版本的 Lambda 函数。所有这些的关键点是,每个版本的 Lambda 函数都有自己的 ARN,最重要的是,已发布的 Lambda 函数版本是不可变的。用外行人的话来说,您无法更改已发布的 Lambda 函数!从表面上看,这似乎非常严格。如果我无法更改已发布的版本,那么我必须经历哪些麻烦才能想出另一个与已发布的版本略有不同的版本?不要害怕。您可以更改一个现成的 Lambda 函数版本,它名为版本 $Latest。这是函数的最新版本,您可以对其进行更改并根据所做的更改发布新版本。当您首次创建 Lambda 函数时,这是您拥有的唯一版本:上面的屏幕截图显示了 Lambda 管理控制台和新创建的 Lambda 函数。通过单击“限定符”下拉菜单,我们将看到 Lambda 函数的版本和别名(我们将在稍后讨论)。现在,如果我们想要发布 Lambda 函数的新版本,我们只需对函数进行所需的更改,转到“操作”下拉菜单并选择“发布新版本”:现在,您可能会认为 $Latest 版本和您的新版本(版本 1)是相同的。您是对的。但请记住,只有 $Latest 版本可以更改。因此,当您决定需要第二个版本时,您将对 $Latest 进行更改,然后发布该新版本(版本 2)。您的最新版本将与版本 2 匹配,直到您决定对 $Latest 版本进行进一步更改。通过这种方式,您可以创建任意数量的版本,并且所有编号版本都将彼此不同。假设版本 3 是我们的生产版本。我们已经确定了需要在我们的代码中进行的更改。然后,我们将更新 $Latest 并发布新版本。这个新版本最初可能在我们的开发环境中。我们不想直接将其转储到生产环境中并希望获得最佳效果。我们可以在开发环境中对其进行一些测试,将其移至测试版,再进行一些测试,然后最终将其移至我们的生产环境。Lambda别名现在我们还在 Lambda 控制台中看到了对别名的支持。我们可以用别名做什么?AWS Lambda 支持为每个 Lambda 函数版本创建别名。别名只是指向特定 Lambda 函数版本的指针。每个别名还具有唯一的 ARN。别名和函数之间的一个主要区别是您可以更改别名。您可以更改别名以指向函数的不同版本。想想拥有这种能力后您能拥有的力量!例如,如果您有一个 prod 别名,则可以将该别名更改为指向函数的不同版本。只需将 prod 别名指向该函数,该函数就会神奇地成为您的 prod 函数。它比这稍微复杂一些,但也不是太复杂。请记住,所有 Lambda 函数都需要一个事件源,无论是 S3 存储桶、API、DynamoDB 表还是任何其他事件源。假设我们直接使用 Lambda 函数。因此,在我们的事件源(例如 S3 存储桶)中,您可以识别 S3 可以调用的 Lambda 函数 ARN(示例调用是将文件上传到S3 触发 Lambda函数)。问题是我们的 Lambda 函数版本是不可变的!因此,每次我们将版本提升到 prod 时,我们都必须转到 S3 并输入新的 ARN。那么我们如何抽象提升 Lambda 函数的过程,以便我们不必每次都更改 S3 中的调用设置?我们可以使用别名!在 S3 中,我们可以输入 prod 别名的别名 ARN。如果我们有 Lambda 函数的新版本,我们希望将其作为我们的 prod 版本,那又怎样!我们可以将 Lambda 中的 prod 别名更改为指向新版本。S3 中的配置永远不需要改变。Prod 永远是 prod。我们将 prod 别名指向的任何函数都将是我们的 prod 函数。因此,这就是我们如何使用 Lambda 函数版本和别名来简化和精简函数部署过程的一个例子。这个过程越简单、越灵活,出错的可能性就越小。我一直在更新我的 AWS DevOps 专业认证课程,而 Lambda 版本控制和别名是新的重点领域之一。但还有更多内容被添加和更新,因此请在此处查看更新的 AWS 认证 DevOps 工程师 - 专业级课程! 免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持! 查看原文 云计算 软件开发 AWS
请先 登录后发表评论 ~