本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
sam build
此頁面提供 AWS Serverless Application Model 命令列介面的參考資訊 (AWS SAM CLI) sam build
命令。
-
如需 的簡介 AWS SAM CLI,請參閱 什麼是 AWS SAM CLI?
-
有關使用 的文件 AWS SAM CLI
sam build
命令,請參閱 建築簡介 AWS SAM。
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
選項支援的執行期。 -
建置方法 –
Makefile
、esbuild
。
--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
、 和Function2
,Function3
而且您執行sam build --exclude Function2
,Function3
則只會建置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
=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 容器內建置函數。
範例
如需使用sam build
子命令的詳細範例和深入演練,請參閱 建築簡介 AWS SAM。