本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Serverless Application Model (AWS SAM) 是一个用于构建无服务器应用程序的开源框架。有关更多信息,请参阅上的AWS Serverless Application Model 存储库
设置您的 AWS SAM 存储库
使用 AWS SAM CLI 创建 AWS SAM Hello 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 权限时,会需要角色名称。
-
-
选择 Create build project(创建构建项目)。
-
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择角色,然后选择与项目关联的服务角色。您可以 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": "*" } ] }
设置项目 buildspec
为了构建、测试和部署您的 Lambda 函数,请从构建规范中 CodeBuild 读取和执行构建命令。
设置项目 buildspec
-
在 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 端点 URL,测试您的 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 项目来删除您的项目。