

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

# 如何部署應用程式
<a name="serverlessrepo-how-to-consume"></a>

本節提供您 AWS Serverless Application Repository 使用 AWS 管理主控台 或 從 部署無伺服器應用程式的程序 AWS CLI。

## 部署新的應用程式 (主控台)
<a name="consuming-applications-console"></a>

本節說明如何 AWS Serverless Application Repository 使用 從 部署新的應用程式 AWS 管理主控台。如需部署現有應用程式新版本的指示，請參閱[更新應用程式](serverlessrepo-how-to-consume-new-version.md)。

### 瀏覽、搜尋和部署應用程式
<a name="browse-and-search-applications"></a>

 AWS Serverless Application Repository 使用下列程序在 中尋找、設定和部署應用程式。

**在 中尋找和設定應用程式 AWS Serverless Application Repository**

1. 開啟 [AWS Serverless Application Repository 公有首頁](https://aws.amazon.com/serverless/serverlessrepo)，或開啟 [AWS Lambda 主控台](https://console.aws.amazon.com/lambda/)。選擇 **Create function (建立函數)**，然後選擇 **Browse serverless app repository (瀏覽無伺服器應用程式儲存庫)**。

1. 瀏覽或搜尋應用程式。
**注意**  
若要顯示含有自訂 IAM 角色或資源政策的應用程式，請選取 **Show apps that create custom IAM roles or resource policies (顯示建立自訂 IAM 角色或資源政策的應用程式)** 核取方塊。如需自訂 IAM 角色和資源政策的詳細資訊，請參閱[認可應用程式功能](acknowledging-application-capabilities.md)。

1. 選擇應用程式以檢視詳細資訊，例如其許可、功能，以及 AWS 客戶已部署的次數。

   部署計數會針對您嘗試部署應用程式的 AWS 區域顯示。

1. 在應用程式詳細資訊頁面上，檢視 AWS SAM 範本、授權和讀我檔案，以檢視應用程式的許可和應用程式資源。您也可以在此頁面上找到公開共用的應用程式 **Source code URL (原始碼 URL)** 連結。如果應用程式包含任何巢狀應用程式，您也可以由此頁面上檢視巢狀應用程式的詳細資訊。

1. 在 **Application settings (應用程式設定)** 區段設定應用程式。如需設定特定應用程式的指導方針，請參閱該應用程式的 readme 檔案。

   例如，設定需求可能包括指定您希望應用程式有權存取之資源的名稱。這類資源可能是 Amazon DynamoDB 資料表、Amazon S3 儲存貯體或 Amazon API Gateway API。

1. 選擇**部署**。這樣做會帶您前往 **Deployment status** (部署狀態) 頁面。
**注意**  
如果應用程式具有需要認可的功能，您必須在部署應用程式之前選取 **I acknowledge this application creates custom IAM roles or resource polices (我認可此應用程式會建立自訂 IAM 角色或資源政策)** 核取方塊。否則將會發生錯誤。如需自訂 IAM 角色和資源政策的詳細資訊，請參閱[認可應用程式功能](acknowledging-application-capabilities.md)。

1. 在 **Deployment status (部署狀態)** 頁面上，您可以檢視部署的進度。在等待部署完成時，您可以搜尋和瀏覽其他應用程式，並透過 Lambda 主控台返回此頁面。

成功部署應用程式後，您可以使用現有的 AWS 工具來檢閱和管理已建立的資源。

## 部署新的應用程式 (AWS CLI)
<a name="consuming-applications-cli"></a>

本節說明如何 AWS Serverless Application Repository 使用 從 部署新的應用程式 AWS CLI。如需部署現有應用程式新版本的指示，請參閱[更新應用程式](serverlessrepo-how-to-consume-new-version.md)。

### 尋找並認可應用程式功能 (AWS CLI)
<a name="acknowledging-application-capabilities-api"></a>

若要使用 確認應用程式的功能 AWS CLI，請遵循下列步驟：

1. **檢閱應用程式的功能。 **使用下列 AWS CLI 命令來檢閱應用程式的功能：

   ```
   aws serverlessrepo get-application \
   --application-id application-arn
   ```

   [requiredCapabilities 回應屬性](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid.html#applications-applicationid-prop-version-requiredcapabilities)包含了您必須認可後才能部署應用程式的應用程式各項功能的清單。您也可以使用 AWS SDKs中的 [GetApplication API](https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/GetApplication) 來取得此資料。

1. **建立變更集。 **建立 CloudFormation 變更集時，您必須提供一組必要[功能](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid-changesets.html#applications-applicationid-changesets-createcloudformationchangesetinput-capabilities)。例如，使用以下 AWS CLI 命令透過確認應用程式的功能來部署應用程式：

   ```
   aws serverlessrepo create-cloud-formation-change-set \
   --application-id application-arn \
   --stack-name unique-name-for-cloud-formation-stack \
   --capabilities list-of-capabilities
   ```

   成功執行此命令時，會傳回變更集 ID。下一步需要變更集 ID。您也可以在 AWS SDKs 中使用 [CreateCloudFormationChangeSet API](https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateCloudFormationChangeSet) 來建立變更集。

   例如，下列 AWS CLI 命令會認可包含自訂名稱和一或多個巢狀應用程式的 [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) 資源的應用程式：

   ```
   aws serverlessrepo create-cloud-formation-change-set \
   --application-id application-arn \
   --stack-name unique-name-for-cloud-formation-stack \
   --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND
   ```

1. **執行變更集。 **執行變更集實際上會執行部署。提供您在上一步中建立變更集時傳回的變更集 ID。

   下列範例 AWS CLI 命令會執行應用程式變更集來部署應用程式：

   ```
   aws cloudformation execute-change-set \
   --change-set-name changeset-id-arn
   ```

   您也可以在 AWS SDKs中使用 [ExecuteChangeSet API](https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet) 來執行變更集。

## 刪除應用程式堆疊
<a name="delete-application-stack"></a>

若要刪除您先前使用 部署的應用程式 AWS Serverless Application Repository，請遵循與刪除 CloudFormation 堆疊相同的程序：
+ **AWS 管理主控台**：若要使用 刪除應用程式 AWS 管理主控台，請參閱《 使用者指南》中的[在 CloudFormation 主控台上刪除堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)。 *AWS CloudFormation *
+ **AWS CLI**：若要使用 刪除應用程式 AWS CLI，請參閱《 使用者指南》中的[刪除堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-deleting-stack.html)。 *AWS CloudFormation *

# 更新應用程式
<a name="serverlessrepo-how-to-consume-new-version"></a>

從 部署應用程式之後 AWS Serverless Application Repository，建議您進行更新。例如，您可能會想要變更應用程式設定，或是想要將應用程式更新為已發佈的最新版本。

下列各節說明如何使用 AWS 管理主控台 或 部署應用程式的新版本 AWS CLI。

## 更新應用程式 (主控台)
<a name="update-applications"></a>

若要更新先前部署的應用程式，請使用與部署新應用程式相同的程序，並*提供與最初部署時相同的應用程式名稱*。特別是， AWS Serverless Application Repository 會附加`serverlessrepo-`於您的應用程式名稱。不過，若要部署應用程式的新版本，請提供原始應用程式名稱但不要加上前置的 `serverlessrepo-`。

例如，如果您部署了名稱為 `MyApplication` 的應用程式，則堆疊名稱會是 `serverlessrepo-MyApplication`。若要更新該應用程式，您會`MyApplication`再次提供名稱，*請勿*指定 的完整堆疊名稱`serverlessrepo-MyApplication`。

對於所有其他應用程式設定，您可以保持與先前部署相同的值，或是提供新值。

## 更新應用程式 (AWS CLI)
<a name="update-applications-cli"></a>

若要更新先前部署的應用程式，請使用與部署新應用程式相同的程序，並*提供與最初部署時相同的 `--stack-name`*。特別是在`serverlessrepo-`堆疊名稱 AWS Serverless Application Repository 前面。不過，若要部署應用程式的新版本，請提供原始堆疊名稱但不要加上前置的 `serverlessrepo-`。

例如，如果您部署了堆疊名稱為 `MyApplication` 的應用程式，則建立的堆疊名稱會是 `serverlessrepo-MyApplication`。若要更新該應用程式，您會`MyApplication`再次提供名稱，*請勿*指定 的完整堆疊名稱`serverlessrepo-MyApplication`。