本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
sam build
本頁提供「 AWS Serverless Application Model 指令行介面」(AWS SAMCLI) sam build
指令的參考資訊。
-
如需「」的簡介 AWS SAMCLI,請參閱什麼是 AWS SAMCLI?。
-
如需使用 AWS SAMCLI
sam build
指令的文件,請參閱使用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
-
允許或拒絕測試版功能。
--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執行階段。 -
建置方法 —
Makefile
、esbuild
.
此選
--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.1
為1.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
。例如,如果您的範本包含Function1
Function2
、和Function3
且您執行sam build --exclude Function2
,則只會建置Function1
且Function3
將會建置。 --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
=KeyPairName
,ParameterValue
=MyKey
ParameterKey
=InstanceType
,ParameterValue
=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 容器中構建函數。