sam build - AWS Serverless Application Model

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

sam build

本頁提供「 AWS Serverless Application Model 指令行介面」(AWS SAMCLI) sam build 指令的參考資訊。

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

用量

$ sam build <arguments> <options>

引數

資源 ID

選用。指示建 AWS SAM 立在AWS SAM 範本中宣告的單一資源。指定資源的構建工件將是唯一可用於工作流程中後續命令的構建工件,即sam packagesam 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

允許或拒絕測試版功能。

--build-dir, -b DIRECTORY

儲存已建構成品之目錄的路徑。此目錄及其所有內容都會使用此選項移除。

--build-image TEXT

您要為組建提取的容器映像檔的 URI。默認情況下, AWS SAM 從 Amazon ECR 公共提取容器映像。使用此選項可從其他位置提取影像。

您可以多次指定此選項。此選項的每個執行個體都可以使用字串或索引鍵值配對。如果您指定字串,它就是應用程式中所有資源使用的容器映像檔的 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此選項支援下列執行階段和建置方法:

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

  • 建置方法Makefileesbuild.

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

  • --hook-name

  • --use-container

預設--no-build-in-source

--cached | --no-cached

啟用或停用快取的組建。使用此選項可重複使用先前組建未變更的組建成品。 AWS SAM 評估您是否已更改項目目錄中的任何文件。根據預設,不會快取組建。如果調用該--no-cached選項,它將覆蓋 samcofig.toml 中的cached = true設置。

注意

AWS SAM 不會評估您是否已更改項目所依賴的第三方模塊,以及尚未提供特定版本的地方。例如,如果您的 Python 函數包含一個帶有條目的requirements.txt文件requests=1.x,並且最新的請求模塊版本從更改1.11.2,那麼在運行非緩存構建之前 AWS SAM 不會提取最新版本。

--cache-dir

指定快取人工因素的儲存--cached目錄。預設快取目錄為.aws-sam/cache

--config-env TEXT

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

--config-file PATH

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

--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 SAMCLI產生的偵錯訊息,並顯示時間戳記。

--docker-network TEXT

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

--exclude, -x

要從中排除的資源名稱sam build。例如,如果您的範本包含Function1Function2、和Function3且您執行sam build --exclude Function2,則只會建置Function1Function3將會建置。

--help

顯示此訊息並結束。

--hook-name TEXT

用來擴充 AWS SAMCLI功能的掛接名稱。

接受的值:terraform

--manifest , -m PATH

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

--parallel

啟用 parallel 組建。使用此選項可 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 容器中構建函數。