

AWS App Runner 不再開放給新客戶。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[AWS App Runner 可用性變更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)。

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

# 將新的應用程式版本部署至 App Runner
<a name="manage-deploy"></a>

當您在 中[建立服務](manage-create.md)時 AWS App Runner，您可以設定應用程式來源 - 容器映像或來源儲存庫。App Runner 會佈建資源來執行您的服務，並將您的應用程式部署到這些服務。

本主題說明如何在有新版本可用時，將應用程式來源重新部署至 App Runner 服務。這可以是映像儲存庫中的新映像版本，或程式碼儲存庫中的新遞交。App Runner 提供兩種方法來部署至服務：*自動*和*手動*。

## 部署方法
<a name="manage-deploy.methods"></a>

App Runner 提供下列方法來讓您控制啟動應用程式部署的方式。

**自動部署**  
當您希望服務的持續整合和部署 (CI/CD) 行為時，請使用自動部署。App Runner 會監控您的映像或程式碼儲存庫是否有變更。  
**映像儲存庫 ** – 每當您將新的映像版本推送至映像儲存庫，或將新的遞交推送至程式碼儲存庫時，App Runner 會自動將其部署至您的服務，而無需對您採取進一步動作。  
**程式碼儲存庫** – 每當您將新的遞交推送到在[來源目錄中](service-source-code.md#service-source-code.source-directory)進行變更的程式碼儲存庫時，App Runner 都會部署整個儲存庫。由於*只有來源目錄中的變更*會觸發自動部署，因此請務必了解來源目錄位置如何影響自動部署的範圍。  
+ *頂層目錄 （儲存庫根目錄）* – 這是您建立服務時為來源目錄設定的預設值。如果您的來源目錄設定為此值，這表示整個儲存庫位於來源目錄中。因此，您推送到來源儲存庫*的所有遞交*都會在此情況下觸發部署。
+ *任何不是儲存庫根目錄的目錄路徑 （非預設）* – 因為*只有在來源目錄中推送的變更*才會觸發自動部署，因此任何推送到*不在*來源目錄中的儲存庫的變更都不會觸發自動部署。因此，您必須使用手動部署來部署您在來源目錄外推送的變更。
App Runner 不支援 Amazon ECR 公有映像的自動部署，以及 Amazon ECR 儲存庫中屬於您服務所在帳戶以外之 AWS 帳戶的映像的自動部署。

**手動部署**  
當您想要明確啟動服務的每個部署時，請使用手動部署。如果您為服務設定的儲存庫有您要部署的新版本，您可以啟動部署。如需詳細資訊，請參閱[手動部署](#manage-deploy.manual)。  
當您執行手動部署時，App Runner 會從完整的儲存庫部署來源。

您可以透過下列方式設定 服務的部署方法：
+ *主控台* – 對於您正在建立的新服務或現有服務，請在**來源和部署**組態頁面的部署**設定**區段中，選擇**手動**或**自動**。  
![App Runner 部署方法組態](http://docs.aws.amazon.com/zh_tw/apprunner/latest/dg/images/manage-deploy.methods.config.png)
+ *API 或 AWS CLI* – 在呼叫 [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) 或 [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html) 動作時，將 [SourceConfiguration](https://docs.aws.amazon.com/apprunner/latest/api/API_SourceConfiguration.html) 參數`AutoDeploymentsEnabled`的成員設定為 `False` 以進行手動部署或`True`自動部署。

**比較自動和手動部署**  
自動和手動部署都會產生相同的結果：這兩種方法都會部署完整的儲存庫。  
這兩種方法之間的差異是觸發機制：  
從主控台部署、呼叫 或呼叫 App Runner API AWS CLI會觸發手動部署。以下[手動部署](#manage-deploy.manual)章節提供這些程序。
自動部署是由[來源目錄](service-source-code.md#service-source-code.source-directory)內容內的變更所觸發。

## 手動部署
<a name="manage-deploy.manual"></a>

使用手動部署時，您需要明確地啟動服務的每個部署。當您準備好要部署的新版本應用程式映像或程式碼時，您可以參閱以下章節，了解如何使用 主控台和 API 執行部署。

**注意**  
當您執行手動部署時，App Runner 會從完整的儲存庫部署來源。

使用下列其中一種方法部署應用程式的版本：

------
#### [ App Runner console ]

**使用 App Runner 主控台部署**

1. 開啟 [App Runner 主控台](https://console.aws.amazon.com/apprunner)，然後在**區域**清單中選取您的 AWS 區域。

1. 在導覽窗格中，選擇**服務**，然後選擇您的 App Runner 服務。

   主控台會顯示服務儀表板，其中包含**服務概觀**。  
![App Runner 服務儀表板頁面，顯示活動清單](http://docs.aws.amazon.com/zh_tw/apprunner/latest/dg/images/console-dashboard.png)

1. 選擇**部署**。

   結果：新版本的部署開始。在服務儀表板頁面上，服務**狀態**會變更為**進行中的操作**。

1. 等待部署結束。在服務儀表板頁面上，服務**狀態**應變更回**執行**中。

1. 若要驗證部署是否成功，請在服務儀表板頁面上選擇**預設網域**值，這是服務網站的 URL。檢查您的 Web 應用程式或與之互動，並驗證您的版本變更。
**注意**  
為了增強 App Runner 應用程式的安全性，在[公有尾碼清單 (PSL) 中註冊](https://publicsuffix.org/) *\*.awsapprunner.com *網域。為了進一步提高安全性，如果您需要在 App Runner 應用程式的預設網域名稱中設定敏感 Cookie，建議您使用具有`__Host-`字首的 Cookie。此做法將有助於保護您的網域免受跨站請求偽造 (CSRF) 攻擊。如需更多資訊，請參閱 Mozilla 開發人員網路中的[設定 Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) 頁面。

------
#### [ App Runner API or AWS CLI ]

若要使用 App Runner API 或 部署 AWS CLI，請呼叫 [StartDeployment](https://docs.aws.amazon.com/apprunner/latest/api/API_StartDeployment.html) API 動作。要傳遞的唯一參數是您的服務 ARN。您已在建立服務時設定應用程式來源位置，而 App Runner 可以找到新版本。如果呼叫傳回成功回應，您的部署就會開始。

------