使用 Lambda Java 來部署 AWS SAM L CodeBuild ambda 函數 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Lambda Java 來部署 AWS SAM L CodeBuild ambda 函數

AWS Serverless Application Model(AWS SAM) 是用來建置無伺服器應用程式的開放原始碼架構。如需詳細資訊,請參閱(詳見)的AWS Serverless Application Model存放庫 GitHub。下面的 Java 示例使用搖籃來構建和測試AWS Lambda函數。之後,AWS SAMCLI 將用於部署AWS CloudFormation範本和部署服務包。透過使用 CodeBuild Lambda,所有建置、測試和部署步驟都會自動處理,讓基礎設施快速更新,無需在單一組建中進行手動介入。

設定您的儲AWS SAM存庫

使用 AWS SAM CLI 建立AWS SAMHello World專案。

若要建立您的AWS SAM專案
  1. 請遵循在本機電腦上安裝 AWS SAM CLI 的AWS Serverless Application Model開發人員指南中的指示。

  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 專案,並設定組建所需的身分與存取權管理權限。

若要建立您 CodeBuild Lambda Java 專案
  1. 請在以下位置開啟AWS CodeBuild主控台。 https://console.aws.amazon.com/codesuite/codebuild/home

  2. 如果顯示 CodeBuild 資訊頁,請選擇 [建立組建專案]。否則,在瀏覽窗格中,展開 [組建],選擇 [建置專案],然後選擇 [建立組建專案]。

  3. Project name (專案名稱) 中,輸入此建置專案的名稱。組建專案名稱在每個 AWS 帳戶中都必須是唯一的。您還可以包括構建項目的可選描述,以幫助其他用戶了解該項目的用途。

  4. 來源中,選取AWS SAM專案所在的來源儲存庫。

  5. Environment (環境) 中:

    • 對於運算,選取 Lambda

    • 對於執行階段,請選取 Java

    • 對於圖像,請選擇 AWS/ 代碼生成器/亞馬遜鏈-x86_64-羔羊標準:確定 21。

    • 對於服務角色,請保持選取 [新增服務角色]。記下「角色」名稱。當您稍後在本範例中更新專案的 IAM 許可時,將需要執行此操作。

  6. 選擇 Create build project (建立建置專案)

  7. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  8. 在導覽窗格中,選擇 [角色],然後選取與專案相關聯的服務角色。您可以在 CodeBuild 中找到您的專案角色,方法是選取您的組建專案,然後選擇 [編輯]、[環境],然後選取 [服務

  9. 選擇 Trust Relationships (信任關係) 標籤,然後選擇 Edit Trust Relationship (編輯信任政策)。

  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 主控台中,選取您的建置專案,然後選擇 [編輯] 和 [建置規格]。

  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 (更新 buildspec)

部署您的基 AWS SAM Lambda 架構

使用 CodeBuild Lambda 自動部署您的基礎架構

部署您的 Lambda 基礎架構
  1. 選擇 Start build (開始組建)。這將自動構建,測試和部署您的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 項目刪除項目