

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

# AWS SAM CLI
<a name="using-sam-cli"></a>

AWS Serverless Application Model 命令列界面 (AWS SAM CLI) 是一種命令列工具，用於本機開發和測試無伺服器應用程式。 AWS SAM CLI 可讓您在本機建置、轉換、部署、除錯、封裝、初始化和同步無伺服器應用程式，然後再部署到雲端。

AWS SAM CLI 適用於使用不同架構和基礎設施做為程式碼 (IaC) 工具定義的無伺服器應用程式，支援程度不盡相同：
+ **AWS SAM 範本** – 透過完整的功能集提供原生支援，包括本機測試、偵錯、封裝和部署功能。
+ **AWS CDK 應用程式** – 在您使用 cdk synth 命令將 AWS CDK 應用程式合成至 CloudFormation 範本後，支援 Lambda 函數的本機測試。
+ **CloudFormation 範本** – 提供直接相容性，因為 AWS SAM 延伸 CloudFormation支援標準 CloudFormation 範本中定義的無伺服器資源。
+ **Terraform 應用程式** – 為 Lambda 函數的建置和本機測試提供有限的支援。要求您產生代表 Terraform 定義 Lambda 函數的 AWS SAM 範本成品。

如需最全面的功能支援和簡化的開發人員體驗，建議使用原生 AWS SAM 範本。

**Topics**
+ [如何 AWS SAM CLI記錄命令](#using-sam-cli-documentation)
+ [設定 AWS SAM CLI](using-sam-cli-configure.md)
+ [AWS SAM CLI 核心命令](using-sam-cli-corecommands.md)
+ [使用 進行本機測試 AWS SAM CLI](using-sam-cli-local-testing.md)

## 如何 AWS SAM CLI記錄命令
<a name="using-sam-cli-documentation"></a>

AWS SAM CLI 命令會以下列格式記錄：
+ **提示** – 預設會記錄Linux提示，並顯示為 (`$ `)。對於Windows特定命令，會使用 (`> `) 做為提示。鍵入命令時，請不要包含該提示。
+ **目錄** – 命令必須從特定的目錄執行時，該目錄名稱會顯示在提示符號的前方。
+ **使用者輸入** – 於命令列輸入的命令文字採用 **user input** 格式。
+ **可取代的文字** – 變數文字，例如檔案名稱和參數，會格式化為{{可取代的文字}}。在需要特定鍵盤輸入的多行命令或命令中，鍵盤輸入也可以顯示為可取代的文字。例如， {{ENTER}}。
+ **輸出** – 傳回做為命令回應的輸出格式為 `computer output`。

下列`sam deploy`命令和輸出為範例：

```
$ sam deploy --guided --template {{template.yaml}}

Configuring SAM deploy
======================

    Looking for config file [samconfig.toml] :  Found
    Reading default arguments  :  Success

    Setting default arguments for 'sam deploy'
    =========================================
    Stack Name [sam-app]: {{ENTER}}
    AWS Region [us-west-2]: {{ENTER}}
    #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
    Confirm changes before deploy [y/N]: {{ENTER}}
    #SAM needs permission to be able to create roles to connect to the resources in your template
    Allow SAM CLI IAM role creation [Y/n]: {{ENTER}}
    #Preserves the state of previously provisioned resources when an operation fails
    Disable rollback [y/N]: {{ENTER}}
    HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: {{y}}
    Save arguments to configuration file [Y/n]: {{ENTER}}
    SAM configuration file [samconfig.toml]: {{ENTER}}
    SAM configuration environment [default]: {{ENTER}}
```

1. `sam deploy --guided --template template.yaml` 是您在命令列輸入的命令。

1. **sam deploy --guided --template** 應照原樣提供。

1. {{template.yaml}} 可以取代為您的特定檔案名稱。

1. 輸出從 開始`Configuring SAM deploy`。

1. 在輸出中， {{ENTER}} 和 {{y}} 表示您提供的可取代值。