本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Lambda Java 部署 Lam AWS SAM b CodeBuild da 函数
AWS Serverless Application Model (AWS SAM) 是一个开源框架,用于构建无服务器应用程序。有关更多信息,请参阅上的AWS Serverless Application Model存储库
设置您的AWS SAM存储库
使用 AWS SAM CLI 创建AWS SAMHello World
项目。
创建您的AWS SAM项目
-
按照《AWS Serverless Application Model开发者指南》中的说明在本地计算机上安装 AWS SAM CLI。
-
运行
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>
-
将AWS SAM项目文件夹上传到支持的源存储库。有关支持的源类型的列表,请参阅ProjectSource。
创建一个 CodeBuild Lambda Java 项目
创建 AWS CodeBuild Lambda Java 项目并设置构建所需的 IAM 权限。
创建你的 CodeBuild Lambda Java 项目
-
从 https://console.aws.amazon.com/codesuite/codebuild/home
打开 AWS CodeBuild 控制台。 -
如果显示 CodeBuild 信息页面,请选择 “创建构建项目”。否则,请在导航窗格中,展开构建,选择构建项目,然后选择创建构建项目。
在项目名称中,输入此构建项目的名称。构建项目名称在您的各个 AWS 账户内必须是唯一的。您还可以包含构建项目的可选描述,以帮助其他用户了解此项目的用途。
-
在源代码中,选择AWS SAM项目所在的源存储库。
-
在环境中:
-
对于计算,选择 Lambda。
-
对于 “运行时”,选择 Java。
-
对于图片,选择 aws/codebuild/amazonlinux-x86_64-lambda-standard: corretto21。
-
对于服务角色,将新服务角色保留为选中状态。记下角色名称。在本示例稍后更新项目的 IAM 权限时,这将是必需的。
-
-
选择创建构建项目。
-
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Roles,然后选择与您的项目关联的服务角色。您可以 CodeBuild 通过选择构建项目、选择 “编辑”、“环境” 和 “服务角色” 来找到自己的项目角色。
-
选择 Trust relationships(信任关系)选项卡,然后选择 Edit trust policy(编辑信任策略)。
-
将以下内联策略添加到您的 IAM 角色。这将在以后用于部署您的AWS SAM基础架构。有关更多信息,请参阅《 IAM 用户指南》中的添加和删除 IAM 身份权限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "cloudformation:*", "lambda:*", "iam:*", "apigateway:*", "s3:*" ], "Resource": [ "*" ] } ] }
设置项目构建规范
为了构建、测试和部署您的 Lambda 函数,请从构建规范中 CodeBuild 读取和执行构建命令。
要设置您的项目构建规范
-
在 CodeBuild 控制台中,选择您的构建项目,然后选择 “编辑” 和 “Buildspec”。
-
在 Buildspec 中,选择 “插入生成命令”,然后选择 “切换到编辑器”。
-
删除预先填充的构建命令并粘贴到以下 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
-
选择 Update buildspec (更新构建规范)。
部署您的 AWS SAM Lambda 基础架构
使用 CodeBuild Lambda 自动部署您的 Lambda 基础架构
部署您的 Lambda 基础架构
-
选择启动构建。这将自动构建、测试您的AWS SAM应用程序并将其部署到AWS Lambda使用AWS CloudFormation。
-
构建完成后,导航到AWS Lambda控制台并在AWS SAM项目名称下搜索您的新 Lambda 函数。
-
在函数概述下选择 API Gateway,然后单击 API 终端节点网址,测试您的 Lambda 函数。您应该会看到一个包含该消息的页面已打开
"message": "hello world"
。
清理您的基础架构
为避免对您在本教程中使用的资源收取额外费用,请删除由您的AWS SAM模板创建的资源,然后 CodeBuild。
清理您的基础架构
-
导航到AWS CloudFormation控制台并选择
aws-sam-cli-managed-default
。 -
在资源中,清空部署存储桶
SamCliSourceBucket
。 -
删除
aws-sam-cli-managed-default
堆栈。 -
删除与您的AWS SAM项目关联的AWS CloudFormation堆栈。此堆栈的名称应与您的AWS SAM项目相同。
-
导航到 CloudWatch 控制台并删除与您的 CodeBuild 项目关联的 CloudWatch 日志组。
-
导航到 CodeBuild 控制台并通过选择删除构建 CodeBuild 项目来删除您的项目。