sam build - AWS Serverless Application Model

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

sam build

此頁面提供 AWS Serverless Application Model 命令列介面的參考資訊 (AWS SAM CLI) sam build命令。

sam build 命令會準備應用程式,以進行開發人員工作流程中的後續步驟,例如本機測試或部署至 AWS 雲端。

用量

$ sam build <arguments> <options>

引數

資源 ID

選用。指示 AWS SAM 在AWS SAM 範本 中建立宣告的單一資源。指定資源的建置成品將是唯一可用於工作流程中後續命令的成品,即 sam package和 。 sam deploy

選項

--base-dir, -s DIRECTORY

解決與本目錄相關的函數或層原始程式碼的相對路徑。如果您想要變更原始程式碼資料夾的相對路徑解決方式,請使用此選項。根據預設,相對路徑會針對 AWS SAM 範本的位置進行解析。

除了您要建置的根應用程式或堆疊中的資源之外,此選項也會套用巢狀應用程式或堆疊。

此選項適用於下列資源類型和屬性:

  • 資源類型:AWS::Serverless::Function屬性: CodeUri

  • 資源類型:AWS::Serverless::Function資源屬性:Metadata項目: DockerContext

  • 資源類型:AWS::Serverless::LayerVersion屬性: ContentUri

  • 資源類型:AWS::Lambda::Function屬性: Code

  • 資源類型:AWS::Lambda::LayerVersion屬性: Content

--beta-features | --no-beta-features

允許或拒絕 Beta 功能。

--build-dir, -b DIRECTORY

儲存建置成品的目錄路徑。此選項會移除此目錄及其所有內容。

--build-image TEXT

您要為建置提取URI的容器映像的 。根據預設, 會從 Amazon ECR Public AWS SAM 提取容器映像。使用此選項從另一個位置提取映像。

您可以多次指定此選項。此選項的每個執行個體都可以使用字串或鍵值對。如果您指定字串,則容器映像URI的 會用於應用程式中的所有資源。例如:sam build --use-container --build-image amazon/aws-sam-cli-build-image-python3.8。如果您指定金鑰值對,則金鑰是資源名稱,而值是用於該資源URI的容器映像的 。例如 sam build --use-container --build-image Function1=amazon/aws-sam-cli-build-image-python3.8。使用鍵值對,您可以為不同的資源指定不同的容器映像。

此選項僅適用於已指定 --use-container選項,否則將產生錯誤。

--build-in-source | --no-build-in-source

提供 --build-in-source以直接在來源資料夾中建置專案。

--build-in-source 選項支援下列執行期和建置方法:

  • 執行期 – 任何 Node.js sam init --runtime 選項支援的執行期。

  • 建置方法Makefileesbuild

--build-in-source 選項與下列選項不相容:

  • --hook-name

  • --use-container

預設--no-build-in-source

--cached | --no-cached

啟用或停用快取建置。使用此選項可重複使用未從先前 builds 變更的建置成品。 AWS SAM 評估您是否變更了專案目錄中的任何檔案。根據預設,組建不會快取。如果叫用 --no-cached選項,它會覆寫 samcofig.toml 中的cached = true設定。

注意

AWS SAM 不會評估您是否變更了專案所依賴的第三方模組,而您尚未提供特定版本。例如,如果您的 Python 函數包含具有 項目 requirements.txt的檔案requests=1.x,且最新的請求模組版本從 變更為 1.1 1.2,則在您執行非快取建置之前, AWS SAM 不會提取最新版本。

--cache-dir

--cached 指定 時存放快取成品的目錄。預設快取目錄為 .aws-sam/cache

--config-env TEXT

在要使用的組態檔案中指定預設參數值的環境名稱。預設值為「預設值」。如需關於組態檔案的詳細資訊,請參閱 AWS SAM CLI 組態檔案

--config-file PATH

包含要使用之預設參數值的組態檔案的路徑和檔案名稱。專案目錄根中的預設值為 "samconfig.toml"。如需關於組態檔案的詳細資訊,請參閱 AWS SAM CLI 組態檔案

--container-env-var, -e TEXT

要傳遞至建置容器的環境變數。您可以多次指定此選項。此選項的每個執行個體都需要一個索引鍵值對,其中索引鍵是資源和環境變數,而 值是環境變數的值。例如:--container-env-var Function1.GITHUB_TOKEN=TOKEN1 --container-env-var Function2.GITHUB_TOKEN=TOKEN2

此選項僅適用於已指定 --use-container選項,否則將產生錯誤。

--container-env-var-file, -ef PATH

包含容器環境變數值的JSON檔案名稱路徑和檔案名稱。如需容器環境變數檔案的詳細資訊,請參閱 容器環境變量文件

此選項僅適用於已指定 --use-container選項,否則將產生錯誤。

--debug

開啟偵錯記錄以列印偵錯訊息, AWS SAM CLI 會產生 和 以顯示時間戳記。

--docker-network TEXT

指定現有 的名稱或 ID Docker Lambda 的網路 Docker 容器應連接至 ,以及預設的橋接網路。如果未指定,Lambda 容器只會連接至預設橋接器 Docker 網路。

--exclude, -x

要從 中排除的資源名稱 (s)sam build。例如,如果您的範本包含 Function1、 和 Function2Function3而且您執行 sam build --exclude Function2Function3則只會建置 Function1和 。

--help

顯示此訊息並結束。

--hook-name TEXT

用於延伸的掛鉤名稱 AWS SAM CLI 功能。

接受的值:terraform

--manifest , -m PATH

要使用的自訂相依性清單檔案 (例如 package.json) 的路徑,而非預設值。

--parallel

已啟用平行建置。使用此選項來平行建置 AWS SAM 範本的函數和圖層。依預設,函數和圖層會依序內建。

--parameter-overrides

(選用) 包含參數 AWS CloudFormation 覆寫編碼為鍵值對的字串。使用與 AWS Command Line Interface () 相同的格式AWS CLI。例如:'ParameterKey=KeyPairNameParameterValue=MyKey ParameterKey=InstanceTypeParameterValue=t1.micro'。此選項與 不相容--hook-name

--profile TEXT

取得 AWS 憑證之憑證檔案的特定設定檔。

--region TEXT

AWS 區域 要部署到的 。例如 us-east-1。

--save-params

將您在命令列提供的參數儲存至 AWS SAM 組態檔案。

--skip-prepare-infra

如果未進行任何基礎設施變更,請略過準備階段。使用 搭配 --hook-name選項。

--skip-pull-image

指定命令是否應該略過拉下 Lambda 執行時間的最新 Docker 映像。

--template-file, --template, -t PATH

AWS SAM 範本檔案 的路徑和檔案名稱[default: template.[yaml|yml]]。此選項與 不相容--hook-name

--terraform-project-root-path

包含 的頂層目錄的相對或絕對路徑 Terraform 組態檔案或函數原始程式碼。如果這些檔案位於包含您 的目錄之外 Terraform 根模組,請使用此選項指定其絕對或相對路徑。此選項需要--hook-name將 設定為 terraform

--use-container, -u

如果您的函數依賴於原生編譯相依性的套件,請使用此選項在類似 Lambda 的 Docker 容器內建置函數。

範例

如需使用sam build子命令的詳細範例和深入演練,請參閱 建築簡介 AWS SAM