使用 Lambda Java 部署 Lam AWS SAM b CodeBuild da 函数 - AWS CodeBuild

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Lambda Java 部署 Lam AWS SAM b CodeBuild da 函数

AWS Serverless Application Model (AWS SAM) 是一个开源框架,用于构建无服务器应用程序。有关更多信息,请参阅上的AWS Serverless Application Model存储库 GitHub。以下 Java 示例使用 Gradle 来构建和测试 AWS Lambda 函数。之后,使用 AWS SAM CLI 来部署AWS CloudFormation模板和部署包。通过使用 CodeBuild Lambda,构建、测试和部署步骤均可自动处理,从而无需手动干预单个构建即可快速更新基础架构。

设置您的AWS SAM存储库

使用 AWS SAM CLI 创建AWS SAMHello World项目。

创建您的AWS SAM项目
  1. 按照《AWS Serverless Application Model开发者指南》中的说明在本地计算机上安装 AWS SAM CLI

  2. 运行sam init并选择以下项目配置。

    Which template source would you like to use?: 1 - AWS Quick Start Templates Choose an AWS Quick Start application template: 1 - Hello World Example Use the most popular runtime and package type? (Python and zip) [y/N]: N Which runtime would you like to use?: 8 - java21 What package type would you like to use?: 1 - Zip Which dependency manager would you like to use?: 1 - gradle Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]: N Project name [sam-app]: <insert project name>
  3. 将AWS SAM项目文件夹上传到支持的源存储库。有关支持的源类型的列表,请参阅ProjectSource

创建一个 CodeBuild Lambda Java 项目

创建 AWS CodeBuild Lambda Java 项目并设置构建所需的 IAM 权限。

创建你的 CodeBuild Lambda Java 项目
  1. https://console.aws.amazon.com/codesuite/codebuild/home 打开 AWS CodeBuild 控制台。

  2. 如果显示 CodeBuild 信息页面,请选择 “创建构建项目”。否则,请在导航窗格中,展开构建,选择构建项目,然后选择创建构建项目

  3. 项目名称中,输入此构建项目的名称。构建项目名称在您的各个 AWS 账户内必须是唯一的。您还可以包含构建项目的可选描述,以帮助其他用户了解此项目的用途。

  4. 源代码中,选择AWS SAM项目所在的源存储库。

  5. 环境中:

    • 对于计算,选择 Lambda

    • 对于 “运行时”,选择 Java

    • 对于图片,选择 aws/codebuild/amazonlinux-x86_64-lambda-standard: corretto21。

    • 对于服务角色,将新服务角色保留为选中状态。记下角色名称。在本示例稍后更新项目的 IAM 权限时,这将是必需的。

  6. 选择创建构建项目

  7. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  8. 在导航窗格中,选择 Roles,然后选择与您的项目关联的服务角色。您可以 CodeBuild 通过选择构建项目、选择 “编辑”、“环境” 和 “服务角色” 来找到自己的项目角色

  9. 选择 Trust relationships(信任关系)选项卡,然后选择 Edit trust policy(编辑信任策略)。

  10. 将以下内联策略添加到您的 IAM 角色。这将在以后用于部署您的AWS SAM基础架构。有关更多信息,请参阅《 IAM 用户指南》中的添加和删​​除 IAM 身份权限

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "cloudformation:*", "lambda:*", "iam:*", "apigateway:*", "s3:*" ], "Resource": [ "*" ] } ] }

设置项目构建规范

为了构建、测试和部署您的 Lambda 函数,请从构建规范中 CodeBuild 读取和执行构建命令。

要设置您的项目构建规范
  1. 在 CodeBuild 控制台中,选择您的构建项目,然后选择 “编辑” 和 “Buildspec”。

  2. Buildspec 中,选择 “插入生成命令”,然后选择 “切换到编辑器”。

  3. 删除预先填充的构建命令并粘贴到以下 buildspec 中。

    version: 0.2 env: variables: GRADLE_DIR: "HelloWorldFunction" phases: build: commands: - echo "Running unit tests..." - cd $GRADLE_DIR; gradle test; cd .. - echo "Running build..." - sam build --template-file template.yaml - echo "Running deploy..." - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml - yes | sam deploy
  4. 选择 Update buildspec (更新构建规范)

部署您的 AWS SAM Lambda 基础架构

使用 CodeBuild Lambda 自动部署您的 Lambda 基础架构

部署您的 Lambda 基础架构
  1. 选择启动构建。这将自动构建、测试您的AWS SAM应用程序并将其部署到AWS Lambda使用AWS CloudFormation。

  2. 构建完成后,导航到AWS Lambda控制台并在AWS SAM项目名称下搜索您的新 Lambda 函数。

  3. 在函数概述下选择 API Gateway,然后单击 API 终端节点址,测试您的 Lambda 函数。您应该会看到一个包含该消息的页面已打开"message": "hello world"

清理您的基础架构

为避免对您在本教程中使用的资源收取额外费用,请删除由您的AWS SAM模板创建的资源,然后 CodeBuild。

清理您的基础架构
  1. 导航到AWS CloudFormation控制台并选择aws-sam-cli-managed-default

  2. 资源中,清空部署存储桶SamCliSourceBucket

  3. 删除 aws-sam-cli-managed-default 堆栈。

  4. 删除与您的AWS SAM项目关联的AWS CloudFormation堆栈。此堆栈的名称应与您的AWS SAM项目相同。

  5. 导航到 CloudWatch 控制台并删除与您的 CodeBuild 项目关联的 CloudWatch 日志组。

  6. 导航到 CodeBuild 控制台并通过选择删除构建 CodeBuild 项目来删除您的项目