

 適用於 .NET 的 AWS SDK V3 已進入維護模式。

我們建議您遷移至 [適用於 .NET 的 AWS SDK V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html)。如需如何遷移的其他詳細資訊和資訊，請參閱我們的[維護模式公告](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)。

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

# 將應用程式部署到 AWS
<a name="deploying"></a>

在開發機器上開發雲端原生 .NET Core 應用程式或服務之後，您會想要將其部署到 AWS。您可以使用 AWS 管理主控台 或 等特定服務來執行此操作 CloudFormation AWS Cloud Development Kit (AWS CDK)。您也可以使用為部署目的而建立 AWS 的工具。透過使用這些工具，您可以執行下列動作。

## 從 .NET CLI 部署
<a name="deploying-from-net-cli"></a>

您可以使用下列適用於 .NET CLI AWS 的工具，將您的應用程式部署到 AWS：
+ [AWS 部署適用於 .NET CLI 的工具](https://aws.github.io/aws-dotnet-deploy/) - 支援部署至 [AWS App Runner](https://aws.amazon.com/apprunner/)、[Amazon Elastic Container Service (Amazon ECS)](https://aws.amazon.com/ecs/) 和 [AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)。
+ [AWS Lambda 適用於 .NET CLI 的工具](https://www.nuget.org/packages/Amazon.Lambda.Tools) - 支援部署 AWS Lambda 專案。

## 從 IDE 工具組部署
<a name="deploying-from-toolkits"></a>

您可以使用 AWS 工具組直接從您選擇的 IDE 部署應用程式：
+ **[AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-chapt.html)**
**注意**  
工具組中的「發佈至 AWS」功能會公開與適用於 .NET CLI 的 AWS 部署工具相同的功能。若要進一步了解，請前往*AWS Toolkit for Visual Studio 《 使用者指南*》中的[發佈至 AWS](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/publish-experience.html) 。
+ **[AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)**

  請參閱[使用無 AWS 伺服器應用程式](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-sam)和[使用 AWS App Runner](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-app-runner) 。
+ **[AWS 適用於 VS 程式碼的工具組](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html)**

  請參閱[使用無伺服器應用程式](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html)和[使用 AWS App Runner](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/using-apprunner.html)。
+ **[AWS Toolkit for Azure DevOps](https://docs.aws.amazon.com/vsts/latest/userguide/tutorial-eb.html)**

## 使用案例
<a name="w2aac15b9"></a>

下列各節包含特定應用程式類型的使用案例，包括有關如何使用 .NET CLI 部署這些應用程式的資訊。
+ [ASP.NET Core 應用程式](deploying-asp-net.md)
+ [.NET 主控台應用程式](deploying-console.md)
+ [Blazor WebAssembly 應用程式](deploying-blazor.md)
+ [AWS Lambda 專案](deploying-lambda.md)

# ASP.NET Core 應用程式
<a name="deploying-asp-net"></a>

.NET CLI 的[AWS 部署工具](https://aws.github.io/aws-dotnet-deploy/)可協助您部署 ASP.NET 應用程式，並引導您完成部署程序。這是 .NET CLI 的互動式工具，可協助部署最低 AWS 知識的 .NET 應用程式。

部署工具具有下列功能：
+ **應用程式的運算建議** - 取得運算建議，並了解哪個 AWS 運算最適合您的應用程式。
+ 產生 **Dockerfile** - 工具會視需要產生 Dockerfile，或使用現有的 Dockerfile。
+ **自動封裝和部署** – 此工具會建置部署成品、使用產生的 AWS CDK 部署專案佈建基礎設施，並將您的應用程式部署到所選的 AWS 運算。
+ **可重複且可共用的部署** – 您可以產生和修改 AWS CDK 部署專案，以符合您的特定使用案例。您也可以控制專案的版本，並與您的團隊共用，以進行可重複的部署。
+ **協助學習 AWS CDK .NET** - 此工具可協助您逐步學習其建置的基礎 AWS 工具，例如 AWS CDK。

[AWS 部署工具](https://aws.github.io/aws-dotnet-deploy/)支援將 ASP.NET Core 應用程式部署至下列 AWS 服務：
+ **使用 的 [Amazon ECS Service](https://aws.amazon.com/ecs/) [AWS Fargate](https://aws.amazon.com/fargate/)** - 支援使用無 AWS Fargate 伺服器運算引擎管理的運算能力，將 Web 應用程式部署至 Amazon Elastic Container Service (Amazon ECS)。
+ **[AWS App Runner](https://aws.amazon.com/apprunner/)** - 支援部署至全受管服務，可讓開發人員輕鬆大規模部署容器化 Web 應用程式和 APIs。不需要先前的基礎設施體驗。
+ **[AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)** - 支援部署至 服務，可讓開發人員輕鬆大規模將 Web 應用程式和 APIs 部署至全受管環境。不需要先前的基礎設施體驗。

若要進一步了解，請參閱[工具概觀](https://aws.github.io/aws-dotnet-deploy/)。若要從那裡開始，請導覽至**文件**、**入門**，然後選擇**[如何安裝](https://aws.github.io/aws-dotnet-deploy/docs/getting-started/installation/)** 以取得安裝指示。

# .NET 主控台應用程式
<a name="deploying-console"></a>

.NET CLI 的[AWS 部署工具](https://aws.github.io/aws-dotnet-deploy/)可協助您將 .NET 主控台應用程式部署為服務或排程任務部署為 Linux 上的容器映像，並引導您完成部署程序。如果您的應用程式沒有 Dockerfile，工具會自動產生它。否則，會使用現有的 Dockerfile。

部署工具具有下列功能：
+ **應用程式的運算建議** - 取得運算建議，並了解哪個 AWS 運算最適合您的應用程式。
+ 產生 **Dockerfile** - 工具會視需要產生 Dockerfile，或使用現有的 Dockerfile。
+ **自動封裝和部署** – 此工具會建置部署成品、使用產生的 AWS CDK 部署專案佈建基礎設施，並將您的應用程式部署到所選的 AWS 運算。
+ **可重複且可共用的部署** – 您可以產生和修改 AWS CDK 部署專案，以符合您的特定使用案例。您也可以控制專案的版本，並與您的團隊共用，以進行可重複的部署。
+ **協助學習 AWS CDK .NET** - 此工具可協助您逐步學習其建置的基礎 AWS 工具，例如 AWS CDK。

[AWS 部署工具](https://aws.github.io/aws-dotnet-deploy/)支援將 .NET 主控台應用程式部署至下列 AWS 服務：
+ **使用 的 [Amazon ECS Service](https://aws.amazon.com/ecs/) [AWS Fargate](https://aws.amazon.com/fargate/)** - 支援將 .NET 應用程式部署為服務 （例如背景處理器） 到 Amazon Elastic Container Service (Amazon ECS)，其運算能力由無 AWS Fargate 伺服器運算引擎管理。
+ **使用 的 [Amazon ECS 排程任務](https://aws.amazon.com/ecs/) [AWS Fargate](https://aws.amazon.com/fargate/)** - 支援使用無 AWS Fargate 伺服器運算引擎管理的運算能力，將 .NET 應用程式部署為排程任務 （例如end-of-day程序） 到 Amazon ECS。

若要進一步了解，請參閱[工具概觀](https://aws.github.io/aws-dotnet-deploy/)。若要從那裡開始，請導覽至**文件**、**入門**，然後選擇**[如何安裝](https://aws.github.io/aws-dotnet-deploy/docs/getting-started/installation/)** 以取得安裝指示。

# Blazor WebAssembly 應用程式
<a name="deploying-blazor"></a>

.NET CLI 的[AWS 部署工具](https://aws.github.io/aws-dotnet-deploy/)可協助您使用 Amazon CloudFront 在 Amazon S3 中託管 Blazor WebAssembly 應用程式，以進行內容網路交付。您的應用程式會部署到 S3 儲存貯體以進行 Web 託管。此工具會建立和設定 S3 儲存貯體，然後將您的 Blazor 應用程式上傳至儲存貯體。

部署工具具有下列功能：
+ **自動封裝和部署** – 此工具會建置部署成品、使用產生的 AWS CDK 部署專案佈建基礎設施，並將您的應用程式部署到所選的 AWS 運算。
+ **可重複且可共用的部署** – 您可以產生和修改 AWS CDK 部署專案，以符合您的特定使用案例。您也可以控制專案的版本，並與您的團隊共用，以進行可重複的部署。
+ **協助學習 AWS CDK .NET** - 此工具可協助您逐步學習其建置的基礎 AWS 工具，例如 AWS CDK。

若要進一步了解，請參閱[工具概觀](https://aws.github.io/aws-dotnet-deploy/)。若要從那裡開始，請導覽至**文件**、**入門**，然後選擇**[如何安裝](https://aws.github.io/aws-dotnet-deploy/docs/getting-started/installation/)** 以取得安裝指示。

# AWS Lambda 專案
<a name="deploying-lambda"></a>

AWS Lambda 是一種運算服務，可讓您執行程式碼，而無需佈建或管理伺服器。它會在高可用性運算基礎設施上執行程式碼，並執行運算資源的所有管理。如需 Lambda 的詳細資訊，請參閱《 *AWS Lambda 開發人員指南*》中的[什麼是 AWS Lambda？](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)。

您可以使用 .NET 命令列界面 (CLI) 部署 Lambda 函數。

**Topics**
+ [

## 先決條件
](#lambda-cli-prereqs)
+ [

## 可用的 Lambda 命令
](#listing-the-lam-commands-available-through-the-cli)
+ [

## 部署步驟
](#publishing-a-net-core-lam-project-from-the-net-core-cli)

## 先決條件
<a name="lambda-cli-prereqs"></a>

開始使用 .NET CLI 部署 Lambda 函數之前，您必須符合下列先決條件：
+ 確認您已安裝 .NET CLI。例如：`dotnet --version`。如有需要，請前往 https：//[https://dotnet.microsoft.com/download](https://dotnet.microsoft.com/download) 進行安裝。
+ 設定 .NET CLI 以使用 Lambda。如需如何執行此操作的描述，請參閱《 *AWS Lambda 開發人員指南*》中的 .[NET Core CLI](https://docs.aws.amazon.com//lambda/latest/dg/csharp-package-cli.html)。在該程序中，以下是 部署命令：

  ```
  dotnet lambda deploy-function MyFunction --function-role role
  ```

  如果您不確定如何為此練習建立 IAM 角色，請不要包含 `--function-role role`部分。此工具將協助您建立新的角色。

## 可用的 Lambda 命令
<a name="listing-the-lam-commands-available-through-the-cli"></a>

若要列出可透過 .NET CLI 使用的 Lambda 命令，請開啟命令提示字元或終端機，然後輸入 `dotnet lambda --help`。命令輸出將類似於以下內容：

```
Amazon Lambda Tools for .NET applications
Project Home: https://github.com/aws/aws-extensions-for-dotnet-cli, https://github.com/aws/aws-lambda-dotnet

Commands to deploy and manage AWS Lambda functions:

        deploy-function         Command to deploy the project to AWS Lambda
        ...
        (etc.)

To get help on individual commands execute:
        dotnet lambda help <command>
```

輸出會列出目前可用的所有命令。

## 部署步驟
<a name="publishing-a-net-core-lam-project-from-the-net-core-cli"></a>

下列指示假設您已建立 AWS Lambda .NET 專案。基於此程序的目的，專案名為 `DotNetCoreLambdaTest`。

1. 開啟命令提示字元或終端機，然後導覽至包含 .NET Lambda 專案檔案的資料夾。

1. 輸入 `dotnet lambda deploy-function`。

1. 如果出現提示，請輸入 AWS 區域 （將部署 Lambda 函數的區域）。

1. 出現提示時，輸入要部署的函數名稱，例如 `DotNetCoreLambdaTest`。它可以是 中已存在的函數名稱， AWS 帳戶 或尚未部署的函數名稱。

1. 出現提示時，選取或建立 Lambda 在執行函數時將擔任的 IAM 角色。

成功完成後，會顯示**建立的新 Lambda 函數**訊息。

```
Executing publish command
...
(etc.)
New Lambda function created
```

如果您部署的函數已存在於您的帳戶中，則部署函數只會要求 AWS 區域 （如有必要）。在此情況下，命令輸出結尾為 `Updating code for existing function`。

部署 Lambda 函數之後，即可開始使用。如需詳細資訊，請參閱[如何使用 AWS Lambda 的範例](https://docs.aws.amazon.com/lambda/latest/dg/use-cases.html)。

Lambda 會自動為您監控 Lambda 函數，並透過 Amazon CloudWatch 報告指標。若要監控 Lambda 函數並進行疑難排解，請參閱[監控 Lambda 應用程式並進行疑難排解](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html)。