本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Lambda Java 來部署 AWS SAM L CodeBuild ambda 函數
AWS Serverless Application Model(AWS SAM) 是用來建置無伺服器應用程式的開放原始碼架構。如需詳細資訊,請參閱(詳見)的AWS Serverless Application Model存放庫
設定您的儲AWS SAM存庫
使用 AWS SAM CLI 建立AWS SAMHello World
專案。
若要建立您的AWS SAM專案
-
請遵循在本機電腦上安裝 AWS SAM CLI 的AWS Serverless Application Model開發人員指南中的指示。
-
運行
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 專案,並設定組建所需的身分與存取權管理權限。
若要建立您 CodeBuild Lambda Java 專案
-
請在以下位置開啟AWS CodeBuild主控台。
https://console.aws.amazon.com/codesuite/codebuild/home -
如果顯示 CodeBuild 資訊頁,請選擇 [建立組建專案]。否則,在瀏覽窗格中,展開 [組建],選擇 [建置專案],然後選擇 [建立組建專案]。
在 Project name (專案名稱) 中,輸入此建置專案的名稱。組建專案名稱在每個 AWS 帳戶中都必須是唯一的。您還可以包括構建項目的可選描述,以幫助其他用戶了解該項目的用途。
-
在來源中,選取AWS SAM專案所在的來源儲存庫。
-
在 Environment (環境) 中:
-
對於運算,選取 Lambda。
-
對於執行階段,請選取 Java。
-
對於圖像,請選擇 AWS/ 代碼生成器/亞馬遜鏈-x86_64-羔羊標準:確定 21。
-
對於服務角色,請保持選取 [新增服務角色]。記下「角色」名稱。當您稍後在本範例中更新專案的 IAM 許可時,將需要執行此操作。
-
-
選擇 Create build project (建立建置專案)。
-
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在導覽窗格中,選擇 [角色],然後選取與專案相關聯的服務角色。您可以在 CodeBuild 中找到您的專案角色,方法是選取您的組建專案,然後選擇 [編輯]、[環境],然後選取 [服務
-
選擇 Trust Relationships (信任關係) 標籤,然後選擇 Edit Trust Relationship (編輯信任政策)。
-
將下列內嵌政策新增至您的 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 中。
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 (更新 buildspec)。
部署您的基 AWS SAM Lambda 架構
使用 CodeBuild Lambda 自動部署您的基礎架構
部署您的 Lambda 基礎架構
-
選擇 Start build (開始組建)。這將自動構建,測試和部署您的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 項目刪除項目。