

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

# sam package
<a name="sam-cli-command-reference-sam-package"></a>

 AWS Serverless Application Model 命令列界面 (AWS SAM CLI) 會封裝 AWS SAM 應用程式。

此命令會建立程式碼和相依性`.zip`的檔案，並將檔案上傳到 Amazon Simple Storage Service (Amazon S3)。 會針對存放在 Amazon S3 中的所有檔案 AWS SAM 啟用加密。然後，它會傳回 AWS SAM 範本的副本，將本機成品的參考取代為命令上傳成品的 Amazon S3 位置。

根據預設，當您使用此命令時， AWS SAM CLI會假設您目前的工作目錄是專案的根目錄。 AWS SAM CLI 第一個嘗試尋找使用 [sam build](sam-cli-command-reference-sam-build.md)命令建置的範本檔案，位於 `.aws-sam` 子資料夾中，並命名為 `template.yaml`。接著， AWS SAM CLI會嘗試`template.yml`在目前的工作目錄中尋找名為 `template.yaml`或 的範本檔案。如果您指定 `--template`選項，則會覆寫 AWS SAM CLI的預設行為，並將僅封裝該 AWS SAM 範本及其指向的本機資源。

**注意**  
[sam deploy](sam-cli-command-reference-sam-deploy.md) 現在會隱含執行 的功能`sam package`。您可以直接使用 [sam deploy](sam-cli-command-reference-sam-deploy.md)命令來封裝和部署您的應用程式。

## Usage
<a name="sam-cli-command-reference-sam-package-usage"></a>

```
$ sam package <arguments> <options>
```

## 引數
<a name="sam-cli-command-reference-sam-package-args"></a>

**Resource ID (資源 ID)**  <a name="sam-cli-command-reference-sam-package-args-resource-id"></a>
要封裝的 Lambda 函數 ID。  
此為選用引數。如果您的應用程式包含單一 Lambda 函數，CLI AWS SAM 會封裝它。如果您的應用程式包含多個函數，請提供函數的 ID 來封裝單一函數。  
*有效值*：資源的邏輯 ID 或資源 ARN。

## 選項
<a name="sam-cli-command-reference-sam-package-options"></a>

`--config-env TEXT`  <a name="sam-cli-command-reference-sam-package-options-config-env"></a>
在要使用的組態檔案中指定預設參數值的環境名稱。預設值為「預設值」。如需關於組態檔案的詳細資訊，請參閱 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)。

`--config-file PATH`  <a name="sam-cli-command-reference-sam-package-options-config-file"></a>
組態檔案的路徑和檔案名稱，其中包含要使用的預設參數值。預設值為專案目錄根目錄中的 "samconfig.toml"。如需關於組態檔案的詳細資訊，請參閱 [AWS SAM CLI 組態檔案](serverless-sam-cli-config.md)。

`--debug`  <a name="sam-cli-command-reference-sam-package-options-debug"></a>
開啟偵錯記錄以列印 AWS SAM CLI產生的偵錯訊息，並顯示時間戳記。

`--force-upload`  <a name="sam-cli-command-reference-sam-package-options-force-upload"></a>
覆寫 Amazon S3 儲存貯體中的現有檔案。指定此旗標以上傳成品，即使它們符合 Amazon S3 儲存貯體中的現有成品。

`--help`  <a name="sam-cli-command-reference-sam-package-options-help"></a>
顯示此訊息並結束。

`--image-repository TEXT`  <a name="sam-cli-command-reference-sam-package-options-image-repository"></a>
Amazon Elastic Container Registry (Amazon ECR) 儲存庫的 URI，此命令會上傳函數的映像。使用 `Image`套件類型宣告的函數需要。

`--kms-key-id TEXT`  <a name="sam-cli-command-reference-sam-package-options-kms-key-id"></a>
用來加密 Amazon S3 儲存貯體中靜態成品的 AWS Key Management Service (AWS KMS) 金鑰 ID。如果未指定此選項，則 AWS SAM 會使用 Amazon S3-managed加密金鑰。

`--metadata`  <a name="sam-cli-command-reference-sam-package-options-metadata"></a>
（選用） 要連接到範本中參考之所有成品的中繼資料映射。

`--no-progressbar`  <a name="sam-cli-command-reference-sam-package-options-no-progressbar"></a>
將成品上傳至 Amazon S3 時，請勿顯示進度列。

`--output-template-file PATH`  <a name="sam-cli-command-reference-sam-package-options-output-template-file"></a>
命令寫入封裝範本的檔案路徑。如果您未指定路徑，命令會將範本寫入標準輸出。

`--profile TEXT`  <a name="sam-cli-command-reference-sam-package-options-profile"></a>
從您的登入資料檔案中取得 AWS 登入資料的特定設定檔。

`--region TEXT`  <a name="sam-cli-command-reference-sam-package-options-region"></a>
 AWS 要部署的區域。例如 us-east-1。

`--resolve-s3`  <a name="sam-cli-command-reference-sam-package-options-resolve-s3"></a>
自動建立 Amazon S3 儲存貯體以用於封裝。如果您同時指定 `--s3-bucket`和 `--resolve-s3`選項，則會產生錯誤。

`--s3-bucket TEXT`  <a name="sam-cli-command-reference-sam-package-options-s3-bucket"></a>
此命令上傳成品的 Amazon S3 儲存貯體名稱。如果您的成品大於 51，200 個位元組，則需要 `--s3-bucket`或 `--resolve-s3`選項。如果您同時指定 `--s3-bucket`和 `--resolve-s3`選項，則會產生錯誤。

`--s3-prefix TEXT`  <a name="sam-cli-command-reference-sam-package-options-s3-prefix"></a>
新增至上傳到 Amazon S3 儲存貯體之成品名稱的字首。字首名稱是 Amazon S3 儲存貯體的路徑名稱 （資料夾名稱）。這僅適用於使用`Zip`套件類型宣告的函數。

`--save-params`  <a name="sam-cli-command-reference-sam-package-options-save-params"></a>
將您在命令列提供的參數儲存至 AWS SAM 組態檔案。

`--signing-profiles LIST`  <a name="sam-cli-command-reference-sam-package-options-signing-profiles"></a>
（選用） 用來簽署部署套件的簽署設定檔清單。此參數會取得索引鍵/值對的清單，其中索引鍵是要簽署的函數或 layer 的名稱，而值是簽署描述檔，選用的描述檔擁有者以 分隔`:`。例如 `FunctionNameToSign=SigningProfileName1 LayerNameToSign=SigningProfileName2:SigningProfileOwner`。

`--template-file, --template, -t PATH`  <a name="sam-cli-command-reference-sam-package-options-template-file"></a>
範本 AWS SAM 所在的路徑和檔案名稱。  
如果您指定此選項， 只會 AWS SAM 封裝範本及其指向的本機資源。

`--use-json`  <a name="sam-cli-command-reference-sam-package-options-use-json"></a>
 CloudFormation 範本的輸出 JSON。預設會使用 YAML。

## 範例
<a name="sam-cli-command-reference-sam-package-examples"></a>

下列範例會為 Lambda 函數和 CodeDeploy 應用程式建立並封裝成品。成品會上傳至 Amazon S3 儲存貯體。命令的輸出是名為 `package.yml` 的新檔案。

```
$ sam package \
  --template-file template.yml \
  --output-template-file package.yml \
  --s3-bucket amzn-s3-demo-bucket
```