

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

# 使用 AWS 服務
<a name="working-with-services"></a>

下列主題說明如何開始使用 AWS Toolkit for Visual Studio 搭配 Amazon Q AWS 的服務。

**Topics**
+ [Amazon CodeCatalyst](codecatalyst.md)
+ [CloudWatch Logs 整合](cloudwatch-log.md)
+ [

# 管理 Amazon EC2 執行個體
](tkv-ec2-ami.md)
+ [

# 管理 Amazon ECS 執行個體
](tkv-ecs.md)
+ [

# 從 AWS Explorer 管理安全群組
](tkv-sg-create.md)
+ [

# 從 Amazon EC2 執行個體建立 AMI
](tkv-create-ami-from-instance.md)
+ [

# 在 Amazon Machine Image 上設定啟動許可
](tkv-set-ami-launch-perms.md)
+ [

# Amazon Virtual Private Cloud (VPC)
](vpc-tkv.md)
+ [

# 使用 Visual Studio 的 CloudFormation 範本編輯器
](tkv-cfn-editor.md)
+ [

# 從 AWS Explorer 使用 Amazon S3
](tkv-s3.md)
+ [

# 從 AWS Explorer 使用 DynamoDB
](dynamodb-tkv.md)
+ [

# AWS CodeCommit 搭配 Visual Studio Team Explorer 使用
](using-aws-codecommit-with-team-explorer.md)
+ [

# 在 Visual Studio 中使用 CodeArtifact
](using-aws-codeartifact.md)
+ [

# AWS Explorer 的 Amazon RDS
](rds-tkv.md)
+ [

# 從 AWS Explorer 使用 Amazon SimpleDB
](tkv-simpleDB.md)
+ [

# 從 AWS Explorer 使用 Amazon SQS
](tkv-sqs.md)
+ [

# 身分和存取權管理
](tkv-iam.md)
+ [

# AWS Lambda
](lambda-index.md)

# Amazon CodeCatalyst for AWS Toolkit for Visual Studio with Amazon Q
<a name="codecatalyst"></a>

## 什麼是 Amazon CodeCatalyst？
<a name="codecatalyst-intro"></a>

Amazon CodeCatalyst 是提供給軟體開發團隊的雲端協作空間。使用 AWS Toolkit for Visual Studio 搭配 Amazon Q，您可以直接從 AWS Toolkit for Visual Studio 搭配 Amazon Q 檢視和管理 CodeCatalyst 資源。如需 CodeCatalyst 的詳細資訊，請參閱 [Amazon CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/welcome.html) 使用者指南。

下列主題說明如何透過 Amazon Q with CodeCatalyst 連接 AWS Toolkit for Visual Studio，以及如何透過 Toolkit for Visual Studio with Amazon Q 使用 AWS CodeCatalyst。

**Topics**
+ [

## 什麼是 Amazon CodeCatalyst？
](#codecatalyst-intro)
+ [開始使用 CodeCatalyst](codecatalyst-setup.md)
+ [使用 CodeCatalyst](codecatalyst-overview.md)
+ [疑難排解](codecatalyst-troubleshoot.md)

# Amazon CodeCatalyst 和 AWS Toolkit for Visual Studio with Amazon Q 入門
<a name="codecatalyst-setup"></a>

若要從 AWS Toolkit for Visual Studio 搭配 Amazon Q 開始使用 Amazon CodeCatalyst，請完成下列步驟。

**Topics**
+ [

## 使用 Amazon Q 安裝 AWS Toolkit for Visual Studio
](#codecatalyst-setup-jbgateway)
+ [

## 建立 CodeCatalyst 帳戶和 AWS 建置器 ID
](#codecatalyst-setup-id)
+ [

## 使用 CodeCatalyst 將 AWS Toolkit for Visual Studio 與 Amazon Q 連線
](#codecatalyst-setup-connect)

## 使用 Amazon Q 安裝 AWS Toolkit for Visual Studio
<a name="codecatalyst-setup-jbgateway"></a>

將 AWS Toolkit for Visual Studio 與 CodeCatalyst 帳戶整合之前，請確定您使用的是最新版本的 AWS Toolkit for Visual Studio 與 Amazon Q。如需如何安裝和設定最新版本的 AWS Toolkit for Visual Studio 與 Amazon Q 的詳細資訊，請參閱本使用者指南中的[設定 AWS Toolkit for Visual Studio 與 Amazon Q](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/getting-set-up.html) 一節。

## 建立 CodeCatalyst 帳戶和 AWS 建置器 ID
<a name="codecatalyst-setup-id"></a>

除了安裝最新版本的 AWS Toolkit for Visual Studio 搭配 Amazon Q 之外，您還必須擁有作用中的 AWS 建置器 ID 和 CodeCatalyst 帳戶，才能透過 Amazon Q 與 AWS Toolkit for Visual Studio 連線。如果您沒有作用中的 AWS 建置器 ID 或 CodeCatalyst 帳戶，請參閱 [ CodeCatalyst 使用者指南中的使用 CodeCatalyst 設定](https://docs.aws.amazon.com/codecatalyst/latest/userguide/setting-up-topnode.html)一節。 *CodeCatalyst* 

**注意**  
 AWS Builder ID 與您的 AWS 登入資料不同。如需如何使用 AWS 建置器 ID 註冊和驗證的說明，請參閱本使用者指南中的[身分驗證和存取： AWS 建置器 ID](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/builder-id.html) 主題。  
如需 AWS 建置器 IDs的詳細資訊，請參閱《 *AWS 一般參考*使用者指南》中的[AWS 建置器 ID](https://docs.aws.amazon.com/general/latest/gr/aws_builder_id.html) 主題。

## 使用 CodeCatalyst 將 AWS Toolkit for Visual Studio 與 Amazon Q 連線
<a name="codecatalyst-setup-connect"></a>

若要將 AWS Toolkit for Visual Studio 與 Amazon Q 與您的 CodeCatalyst 帳戶連線，請完成下列步驟。

1. 從 Visual Studio 中的 **Git** 功能表項目中，選擇**複製儲存庫...**。

1. 在**瀏覽儲存庫**區段中，選取 **Amazon CodeCatalyst** 做為供應商。

1. 從**連線**區段中，選擇**使用 AWS 建置器 ID 連線**，在偏好的 Web 瀏覽器中開啟 CodeCatalyst 主控台。

1. 從您的瀏覽器，在提供的欄位中輸入您的 AWS 建置器 ID，然後依照指示繼續。

1. 出現提示時，選擇**允許** 以確認 AWS Toolkit for Visual Studio 與 Amazon Q 和 CodeCatalyst 帳戶之間的連線。連線程序完成後，CodeCatalyst 會顯示確認訊息，說明您可以安全關閉瀏覽器。

# 使用 Toolkit AWS for Visual Studio 中的 Amazon CodeCatalyst 資源搭配 Amazon Q
<a name="codecatalyst-overview"></a>

下列各節提供適用於 AWS Toolkit for Visual Studio with Amazon Q 的 Amazon CodeCatalyst 資源管理功能的概觀。

**Topics**
+ [

## 複製儲存庫
](#codecatalyst-overview-clone)

## 複製儲存庫
<a name="codecatalyst-overview-clone"></a>

CodeCatalyst 是以雲端為基礎的服務，需要您連線到雲端才能處理 CodeCatalyst 專案。若要在本機處理專案，您可以將 CodeCatalyst 儲存庫複製到本機機器，並在下次連線至雲端時與 CodeCatalyst 專案同步。

若要將儲存庫複製到本機電腦，請完成下列步驟。

1. 從 Visual Studio 中的 **Git** 功能表項目中，選擇**複製儲存庫...**。

1. 在**瀏覽儲存庫**區段中，選取 **Amazon CodeCatalyst** 做為供應商。
**注意**  
如果**連線**區段顯示`Not Connected`訊息，請完成本使用者指南的[身分驗證和存取： AWS Builder ID](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/builder-id.html) 區段中的步驟，然後再繼續。

1. 選擇您要從中複製儲存庫**的空間**和**專案**。

1. 從**儲存庫**區段中，選擇您要複製的儲存庫。

1. 從**路徑**區段中，選擇您要複製儲存庫的資料夾。
**注意**  
此資料夾一開始必須是空的，才能成功複製。

1. 選取**複製**以開始複製儲存庫。

1. 複製儲存庫之後，Visual Studio 會載入您複製的解決方案
**注意**  
如果 Visual Studio 未在複製的儲存庫中開啟解決方案，您可以從**來源控制**選單的 Git **全域設定**中**開啟 Git 儲存庫設定時自動載入解決方案**來調整 Visual Studio 選項。

# 疑難排解
<a name="codecatalyst-troubleshoot"></a>

以下是使用 AWS Toolkit for Visual Studio 搭配 Amazon Q 來處理 Amazon CodeCatalyst 時已知問題的疑難排解主題。

**Topics**
+ [

## 憑證
](#codecatalyst-troubleshoot-credentials)

## 憑證
<a name="codecatalyst-troubleshoot-credentials"></a>

如果您在嘗試從 CodeCatalyst 複製 git 型儲存庫時遇到要求登入資料的對話方塊，您的 **AWS CodeCommit 登入資料協助程式**可能會全域設定，進而干擾 CodeCatalyst。如需 AWS CodeCommit 登入資料協助程式的詳細資訊，請參閱《[AWS CodeCommit 使用者指南》中的在 Windows 上使用 AWS CLI 登入資料協助程式設定 HTTPS 連線的 CodeCommit 儲存庫步驟](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-windows.html)一節。 *AWS CodeCommit* 

若要限制 **AWS CodeCommit 登入資料協助程式**僅處理 CodeCommit URLs，請完成下列步驟。

1. 在 中開啟全域 git 組態檔案： `%userprofile%\.gitconfig`

1. 在 檔案中找到下列區段：

   ```
                           [credential]
                               helper = !aws codecommit credential-helper $@
                               UseHttpPath = true
   ```

1. 將該區段變更為以下內容：

   ```
                           [credential "https://git-codecommit.*.amazonaws.com"]
                               helper = !aws codecommit credential-helper $@
                               UseHttpPath = true
   ```

1. 儲存變更，然後完成複製儲存庫的步驟。

# Visual Studio 的 Amazon CloudWatch Logs 整合
<a name="cloudwatch-log"></a>

來自 AWS Toolkit for Visual Studio 與 Amazon Q 的 Amazon CloudWatch Logs 整合可讓您監控、存放和存取 CloudWatch Logs 資源，而不必離開 IDE。若要進一步了解如何設定 CloudWatch 服務以及如何使用 CloudWatch Logs 功能，請從下列主題中選擇。

**Topics**
+ [設定 CloudWatch Logs](cloudwatch-log-setup.md)
+ [使用 CloudWatch Logs](cloudwatch-log-overview.md)

# 設定 Visual Studio 的 CloudWatch Logs 整合
<a name="cloudwatch-log-setup"></a>

您需要有 AWS 帳戶，才能使用 Amazon CloudWatch Logs 與 AWS Toolkit with Amazon Q 整合。您可以從[AWS 登入](https://console.aws.amazon.com/console/home)網站建立新 AWS 帳戶。大多數可從 AWS Toolkit with Amazon Q 取得的 CloudWatch Logs 功能都可以使用作用中的 AWS 登入資料存取。如果特定功能需要額外的組態，這些要求會包含在[使用 CloudWatch Logs](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/cloudwatch-log-overview.html) 指南的相關區段中。

如需設定 CloudWatch Logs 的其他資訊和選項，請參閱《Amazon CloudWatch Logs 指南》中的[開始設定](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/GettingSetup_cwl.html)一節。

# 在 Visual Studio 中使用 CloudWatch Logs
<a name="cloudwatch-log-overview"></a>

Amazon CloudWatch Logs 整合可讓您透過 Toolkit for Visual Studio 搭配 Amazon Q 監控、存放和存取 CloudWatch Logs。無需離開 IDE 即可存取 CloudWatch Logs 功能，透過簡化 CloudWatch Logs 開發程序並減少對工作流程的中斷來提高效率。 AWS 下列主題說明如何使用 CloudWatch Logs 整合的基本功能。

**Topics**
+ [

## CloudWatch 日誌群組
](#cloudwatch-log-overview-groups)
+ [

## CloudWatch Log Streams
](#cloudwatch-log-overview-logstream)
+ [

## CloudWatch Log Events
](#cloudwatch-log-overview-logevents)
+ [

## 對 CloudWatch Logs 的其他存取
](#cloudwatch-log-overview-additional)

## CloudWatch 日誌群組
<a name="cloudwatch-log-overview-groups"></a>

`log group` 是`log streams`共用相同保留、監控和存取控制設定的 群組。可以屬於一個日誌群組的日誌串流數量並沒有限制。

### 檢視日誌群組
<a name="cloudwatch-log-overview-groups-view"></a>

`View Log Groups` 此功能會顯示 CloudWatch Log Groups Explorer 中的日誌群組清單。

若要存取檢視日誌群組功能並開啟 CloudWatch Log Groups Explorer，請完成下列步驟。

1. 從 AWS Explorer 展開 **Amazon CloudWatch**。

1. 按兩下**日誌群組**或開啟內容功能表 （按一下滑鼠右鍵），然後選取**檢視**，以開啟 **CloudWatch Log Groups Explorer**。
**注意**  
CloudWatch Log Groups Explorer 會在與 Solutions Explorer 相同的視窗位置開啟。

### 篩選日誌群組
<a name="cloudwatch-log-overview-groups-filter"></a>

您的個別帳戶可以包含數千個不同的日誌群組。若要簡化特定群組的搜尋，請使用下列`filtering`功能。

1. 從 **CloudWatch Log Groups Explorer**，在視窗頂端的搜尋列中設定游標。

1. 開始輸入與您要尋找的日誌群組相關的字首。

1. **CloudWatch Log Groups Explorer** 會自動更新，以顯示符合您在上一個步驟中指定的搜尋詞彙的結果。

### 刪除日誌群組
<a name="cloudwatch-log-overview-groups-delete"></a>

若要刪除特定日誌群組，請參閱下列程序。

1. 從 **CloudWatch Log Groups Explorer**，在要刪除的日誌群組上按一下滑鼠右鍵。

1. 出現提示時，請確認您想要刪除目前選取的日誌群組。

1. 選擇**是**按鈕會刪除選取的日誌群組，然後重新整理 **CloudWatch Log Groups Explorer**。

### 重新整理日誌群組
<a name="cloudwatch-log-overview-groups-refresh"></a>

若要重新整理 **CloudWatch Log Groups Explorer 中顯示的目前日誌群組**清單，請選擇工具列中的**重新整理圖示**按鈕****。

### 複製日誌群組 ARN
<a name="cloudwatch-log-overview-groups-copyarn"></a>

若要複製特定日誌群組的 ARN，請完成下列步驟。

1. 從 **CloudWatch Log Groups Explorer**，在您要從中複製 ARN 的日誌群組上按一下滑鼠右鍵。

1. 從功能表中選擇**複製 ARN** 選項。

1. ARN 現在會複製到本機剪貼簿並準備好貼上。

## CloudWatch Log Streams
<a name="cloudwatch-log-overview-logstream"></a>

日誌串流是共享相同來源的一系列日誌事件。

**注意**  
檢視日誌串流時，請注意下列屬性：  
根據預設，日誌串流會依最新的事件時間戳記排序。
與日誌串流相關聯的資料欄可以依遞增或遞減順序排序，方法是切換位於資料欄標頭中的**插入。**
篩選的項目只能依**日誌串流名稱**排序。

### 檢視日誌串流
<a name="cloudwatch-log-overview-logstream-view"></a>

1. 從 **CloudWatch Log Groups Explorer** 按兩下日誌群組，或在日誌群組上按一下滑鼠右鍵，然後從內容功能表中選取**檢視日誌串流**。

1. 新的索引標籤會在**文件**視窗中開啟，其中包含與您的日誌群組相關聯的日誌串流清單。

### 篩選日誌串流
<a name="cloudwatch-log-overview-logstream-filter"></a>

1. 從**日誌串流**索引標籤**的文件**視窗中，在搜尋列中設定游標。

1. 開始輸入與您要尋找的日誌串流相關的字首。

1. 當您輸入 時，目前的顯示會自動更新，以依您的輸入篩選日誌串流。

### 重新整理日誌串流
<a name="cloudwatch-log-overview-logstream-refresh"></a>

若要重新整理**文件**視窗中顯示的目前日誌串流清單，請選擇**搜尋列**旁邊的**工具列**中的**重新整理圖示**按鈕。

### 複製日誌串流 ARN
<a name="cloudwatch-log-overview-logstream-copyarn"></a>

若要複製特定日誌串流的 ARN，請完成下列步驟。

1. 從**日誌串流**索引標籤**的文件**視窗中，在您要從中複製 ARN 的日誌串流上按一下滑鼠右鍵。

1. 從功能表中選擇**複製 ARN** 選項。

1. ARN 現在會複製到本機剪貼簿並準備好貼上。

### 下載日誌串流
<a name="cloudwatch-log-overview-logstream-delete"></a>

**匯出日誌串流**功能會在本機下載和存放選取的日誌串流，以供自訂工具和軟體存取以進行其他處理。

1. 從**日誌串流**索引標籤**的文件**視窗中，在您要下載的日誌串流上按一下滑鼠右鍵。

1. 選擇**匯出日誌串流**以開啟**匯出至文字檔案**對話方塊。

1. 選擇您要在本機存放檔案的位置，並在提供的文字欄位中指定名稱。

1. 選取**確定**以確認下載。下載的狀態會顯示在 **Visual Studio 任務狀態中心**

## CloudWatch Log Events
<a name="cloudwatch-log-overview-logevents"></a>

日誌事件是由 CloudWatch 監控的應用程式或資源記錄的活動記錄。

### 記錄事件動作
<a name="cloudwatch-log-overview-logevents-actions"></a>

日誌事件會顯示為資料表。根據預設，事件會從最舊的事件排序為最新的事件。

下列動作與 Visual Studio 中的日誌事件相關聯：
+ 包裝文字模式：您可以按一下事件來切換包裝文字。
+ 文字包裝按鈕：位於 中`document window toolbar`，此按鈕會切換所有項目的文字包裝開啟和關閉。
+ 將訊息複製到剪貼簿：選取您要複製的訊息，然後在選取項目上按一下滑鼠右鍵，然後選擇**複製** （鍵盤快速鍵 `Ctrl + C`)。

### 檢視日誌事件
<a name="cloudwatch-log-overview-logevents-view"></a>

1. 從**文件**視窗中，選擇包含日誌串流清單的標籤。

1. 按兩下日誌串流，或在日誌串流上按一下滑鼠右鍵，然後從功能表中選取**檢視日誌串流**。

1. 新的**日誌事件**索引標籤會在**文件**視窗中開啟，其中包含與所選日誌串流相關聯的日誌事件資料表。

### 篩選日誌事件
<a name="cloudwatch-log-overview-logevents-filter"></a>

您可以透過三種方式篩選日誌事件：依內容、時間範圍或兩者。若要依內容和時間範圍篩選日誌事件，請先依內容或時間範圍篩選您的訊息，然後依其他方法篩選這些結果。

若要依內容篩選日誌事件：

1. 從**日誌事件**索引標籤的文件****視窗中，在視窗頂端的搜尋列中設定游標。

1. 開始輸入與您正在搜尋的日誌事件相關的詞彙或片語。

1. 當您輸入 時，目前的顯示會自動開始篩選您的日誌事件。
**注意**  
篩選條件模式區分大小寫。您可以用雙引號 (\$1""\$1) 括住具有非英數字元的確切詞彙和片語，以改善搜尋結果。如需篩選模式的詳細資訊，請參閱《Amazon CloudWatch 指南》中的[篩選和模式語法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)主題。

若要檢視在特定時間範圍內產生的日誌事件：

1. 從**日誌事件**索引標籤**的文件**視窗中，選擇工具列中的**行事曆圖示**按鈕****。

1. 使用提供的欄位，指定您要搜尋的時間範圍。

1. 當您指定日期和時間限制時，篩選的結果會自動更新。
**注意**  
**清除篩選條件**選項會清除目前所有的date-and-time篩選條件選擇。

### 重新整理日誌事件
<a name="cloudwatch-log-overview-logevents-refresh"></a>

若要重新整理日誌事件索引標籤中顯示的目前**日誌事件**清單，請選擇工具列中的**重新整理圖示**按鈕****。

## 對 CloudWatch Logs 的其他存取
<a name="cloudwatch-log-overview-additional"></a>

您可以直接從 Visual Studio 中的 AWS Toolkit 存取與其他 AWS 服務和資源相關聯的 CloudWatch Logs。

### Lambda
<a name="cloudwatch-log-overview-additional-lambda"></a>

若要檢視與 Lambda 函數相關聯的日誌串流：

**注意**  
您的 Lambda 執行角色必須具有適當的許可，才能將日誌傳送至 CloudWatch Logs。如需 CloudWatch Logs 所需 Lambda 許可的詳細資訊，請參閱 [https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html#monitoring-cloudwatchlogs-prereqs](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html#monitoring-cloudwatchlogs-prereqs)

1. 從 AWS Toolkit Explorer 中，展開 **Lambda**。

1. 在您要檢視的函數上按一下滑鼠右鍵，然後選擇**檢視日誌**以在**文件**視窗中開啟相關聯的日誌串流。

若要使用 Lambda 整合 檢視日誌串流`function view`：

1. 從 AWS Toolkit Explorer 中，展開 **Lambda**。

1. 在您要檢視的函數上按一下滑鼠右鍵，然後選擇**檢視函數**以在**文件**視窗中開啟函數檢視。

1. 從 `function view`切換到**日誌**索引標籤，隨即顯示與所選 Lambda 函數相關聯的日誌串流。

### ECS
<a name="cloudwatch-log-overview-additional-ecs"></a>

若要檢視與 ECS 任務容器相關聯的日誌資源，請完成下列程序。

**注意**  
為了讓 Amazon ECS 服務將日誌傳送至 CloudWatch，特定 Amazon ECS 任務的每個容器必須符合必要的組態。如需所需設定和組態的詳細資訊，請參閱[使用 AWS 日誌日誌驅動程式](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)指南。

1. 從 AWS Toolkit Explorer 中，展開 **Amazon ECS**。

1. 選擇您要檢視的 Amazon ECS 叢集，以在**文件**視窗中開啟新的 **ECS 叢集**索引標籤。

1. 從位於 **ECS 叢集**標籤左側的導覽選單中，選擇**任務**以列出與叢集相關聯的所有任務。

1. 從**任務**顯示中，選取任務，然後選擇位於左下角**的檢視日誌**連結。
**注意**  
此顯示會列出叢集中包含的所有任務，只有符合所需日誌組態的每個任務才會顯示`View Logs`連結。  
如果任務僅與單一容器相關聯，則**檢視日誌**連結會開啟該容器的日誌串流。
如果任務與多個容器相關聯，**檢視日誌**連結會開啟**檢視 ECS 任務的 CloudWatch Logs** 對話方塊，使用**容器：**下拉式功能表選擇您要檢視日誌的容器，然後選擇**確定**。

1. 新的索引標籤會在**文件**視窗中開啟，顯示與您容器選擇相關聯的日誌串流。

# 管理 Amazon EC2 執行個體
<a name="tkv-ec2-ami"></a>

AWS Explorer 提供 Amazon Machine Image (AMI) 和 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的詳細檢視。您可以從這些檢視中，從 AMI 啟動 Amazon EC2 執行個體、連線至該執行個體，以及停止或終止執行個體，所有這些都是從 Visual Studio 開發環境內部執行。您可以使用執行個體檢視，從執行個體建立 AMIs。如需詳細資訊，請參閱[從 Amazon EC2 執行個體建立 AMI](tkv-create-ami-from-instance.md)。

## Amazon Machine Image 和 Amazon EC2 執行個體檢視
<a name="tkv-ami-and-instance-views"></a>

從 AWS Explorer 中，您可以顯示 Amazon Machine Image (AMIs) 和 Amazon EC2 執行個體的檢視。在 AWS Explorer 中，展開 **Amazon EC2** 節點。

若要顯示 AMIs 檢視，請在第一個子節點 **AMIs**上開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。

若要顯示 Amazon EC2 執行個體檢視，請在**執行個體**節點上開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。

您也可以按兩下適當的節點來顯示任一檢視。
+ 這些檢視的範圍是 Explorer 中指定的區域 AWS （例如美國西部 （加利佛尼亞北部） 區域）。
+ 您可以按一下並拖曳來重新排列資料欄。若要排序欄中的值，請按一下欄標題。
+ 您可以使用**檢視**中的下拉式清單和篩選條件方塊來設定檢視。初始檢視會顯示 AWS Explorer 中指定帳戶所擁有之任何平台類型的 AMIs (Windows 或 Linux)。

 *顯示/隱藏資料欄* 

您也可以選擇檢視頂端的**顯示/隱藏**下拉式清單，以設定要顯示哪些資料欄。如果您關閉檢視並重新開啟檢視，您選擇的資料欄將會持續存在。

![\[Interface showing Amazon Images list with AMI details and column configuration options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ami-instance-show-hide-columns.png)


 **顯示/隱藏 AMI 和執行個體檢視的資料欄** UI

 *標記 AMIs、執行個體和磁碟區* 

您也可以使用**顯示/隱藏**下拉式清單，為您擁有AMIs、Amazon EC2 執行個體或磁碟區新增標籤。標籤是名稱/值對，可讓您將中繼資料連接至 AMIs、執行個體和磁碟區。標籤名稱的範圍會同時限定在您的帳戶，也會分別限定在 AMIs 和執行個體。例如，如果您為 AMIs和執行個體使用相同的標籤名稱，則不會發生衝突。標籤名稱不區分大小寫。

如需標籤的詳細資訊，請參閱《*Amazon EC2 Linux 執行個體使用者指南*》中的[使用標籤](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)。

 *新增標籤* 

1. 在**新增**方塊中，輸入標籤的名稱。選擇帶有加號 (＋) 的綠色按鈕，然後選擇**套用**。  
![\[Dialog box for customizing column display with tag keys and image attributes options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-add-tag.png)

   將標籤新增至 AMI 或 Amazon EC2 執行個體

   新標籤會以斜體顯示，這表示尚未有與該標籤相關聯的值。

   在清單檢視中，標籤名稱會顯示為新的資料欄。當至少有一個值與標籤相關聯時，標籤會顯示在 中[AWS 管理主控台](https://console.aws.amazon.com/ec2/home)。

1. 若要為標籤新增值，請按兩下該標籤資料欄中的儲存格，然後輸入值。若要刪除標籤值，請按兩下儲存格並刪除文字。

   如果您清除**顯示/隱藏**下拉式清單中的標籤，對應的欄會從檢視中消失。標籤會保留，以及與 AMIs、執行個體或磁碟區相關聯的任何標籤值。
**注意**  
如果您在**顯示/隱藏**下拉式清單中清除沒有關聯值的標籤，工具 AWS 組會完全刪除該標籤。它不會再出現在清單檢視或**顯示/隱藏**下拉式清單中。若要再次使用該標籤，請使用**顯示/隱藏**對話方塊來重新建立該標籤。

## 啟動 Amazon EC2 執行個體
<a name="create-ec2"></a>

AWS Explorer 提供啟動 Amazon EC2 執行個體所需的所有功能。在本節中，我們將選取 Amazon Machine Image (AMI)、進行設定，然後將其啟動為 Amazon EC2 執行個體。

 *啟動 Windows Server Amazon EC2 執行個體* 

1. 在 AMIs的頂端，在左側的下拉式清單中，選擇 **Amazon Images**。在右側的下拉式清單中，選擇 **Windows**。在篩選條件方塊中，輸入彈性區塊儲存`ebs`的 。檢視重新整理可能需要一些時間。

1. 在清單中選擇 AMI，開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**啟動執行個體**。  
![\[Context menu for an AMI showing options including Launch Instance and Edit Permission.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/ami-launch-list.png)

   AMI 清單

1. 在**啟動新的 Amazon EC2 執行個體**對話方塊中，為您的應用程式設定 AMI。  
** *執行個體類型* **  
選擇要啟動的 EC2 執行個體類型。如需執行個體類型清單和定價資訊，請參閱 [EC2 定價](https://aws.amazon.com/ec2/pricing/)頁面。  
** *名稱* **  
輸入執行個體的名稱。此名稱不能超過 256 個字元。  
** *金鑰對* **  
金鑰對用於取得 Windows 密碼，您可以使用遠端桌面通訊協定 (RDP) 登入 EC2 執行個體。選擇您可以存取私有金鑰的金鑰對，或選擇建立金鑰對的選項。如果您在 Toolkit 中建立金鑰對， Toolkit 可以為您存放私有金鑰。  
存放在 Toolkit 中的金鑰對會加密。您可以在 `%LOCALAPPDATA%\AWSToolkit\keypairs`（通常為：`C:\Users\<user>\AppData\Local\AWSToolkit\keypairs`) 找到這些金鑰對。您可以將加密的金鑰對匯出至 `.pem` 檔案。  

   1. 在 Visual Studio 中，選取**檢視**並按一下 **AWS Explorer**。

   1. 按一下 **Amazon EC2** 並選取**金鑰對**。

   1. 系統會列出金鑰對，以及由標記為**存放在 AWSToolkit 中的** Toolkit 建立/管理的金鑰對。

   1. 用滑鼠右鍵按一下您建立的金鑰對，然後選取**匯出私有金鑰**。私有金鑰將未加密並存放在您指定的位置。  
** *安全群組* **  
安全群組控制 EC2 執行個體將接受的網路流量類型。選擇將允許連接埠 3389 上傳入流量的安全群組，這是 RDP 使用的連接埠，因此您可以連線至 EC2 執行個體。如需有關如何使用 Toolkit 建立安全群組的資訊，請參閱[從 AWS Explorer 管理安全群組](tkv-sg-create.md)。  
** *執行個體描述檔* **  
執行個體描述檔是 IAM 角色的邏輯容器。當您選擇執行個體描述檔時，您可以將對應的 IAM 角色與 EC2 執行個體建立關聯。IAM 角色設定的政策會指定對 Amazon Web Services 和帳戶資源的存取。一個 EC2 執行個體與 IAM 角色關聯時，在執行個體上執行的應用程式軟體將以 IAM 角色指定的許可執行。這可讓應用程式軟體執行，而不必指定自己的任何 AWS 登入資料，讓軟體更安全。如需 IAM 角色的詳細資訊，請參閱 [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html)。  
![\[Launch AMI window for Amazon EC2 instance with Windows Server 2016 and configuration options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/ami-launch-ui-new.png)

   EC2 **啟動 AMI** 對話方塊

1. 選擇**啟動**。

   在 AWS Explorer 中，在 **Amazon EC2 的執行個體**子節點上，開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。 **Amazon EC2** Toolkit AWS 會顯示與作用中帳戶相關聯的 Amazon EC2 執行個體清單。您可能需要選擇**重新整理**，才能查看您的新執行個體。當執行個體第一次出現時，它可能處於待定狀態，但在幾分鐘後，它就會轉換為執行中狀態。  
![\[AWS Explorer showing running EC2 instances with context menu options for management.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/ami-running-ec2-instancs.png)

## 連線至 Amazon EC2 執行個體
<a name="connect-ec2"></a>

您可以使用 Windows 遠端桌面連線到 Windows Server 執行個體。對於身分驗證， AWS Toolkit 可讓您擷取執行個體的管理員密碼，或者您可以直接使用與執行個體相關聯的預存金鑰對。在下列程序中，我們將使用儲存的金鑰對。

 *使用 Windows 遠端桌面連線至 Windows Server 執行個體* 

1. 在 EC2 執行個體清單中，在您要連線的 Windows Server 執行個體上按一下滑鼠右鍵。從內容功能表中，選擇**開啟遠端桌面**。

   如果您想要使用管理員密碼進行身分驗證，您可以選擇**取得 Windows 密碼**。  
![\[Context menu for EC2 instance with options like Open Remote Desktop and Get System Log.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-rdp-menu.png)

   EC2 執行個體內容選單

1. 在**開啟遠端桌面**對話方塊中，選擇**使用 EC2 金鑰對登入**，然後選擇**確定**。

   如果您沒有使用 AWS Toolkit 存放金鑰對，請指定包含私有金鑰的 PEM 檔案。  
![\[Remote Desktop connection dialog with EC2 keypair login option selected and highlighted.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-rdp-open.png)

    **開啟遠端桌面**對話方塊

1. **遠端桌面**視窗隨即開啟。您不需要登入，因為身分驗證是使用金鑰對進行。您將以 Amazon EC2 執行個體上的管理員身分執行 。

   如果 EC2 執行個體最近才啟動，您可能因為兩個可能的原因而無法連線：
   + 遠端桌面服務可能尚未啟動並執行。請等待幾分鐘後再試一次。
   + 密碼資訊可能尚未傳輸至執行個體。在這種情況下，您會看到類似以下內容的訊息方塊。  
![\[Error dialog indicating password generation and encryption may take over 30 minutes.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-rdp-no-joy.png)

   密碼尚無法使用

   下列螢幕擷取畫面顯示透過遠端桌面以管理員身分連線的使用者。  
![\[Remote Desktop session showing Windows interface with Command Prompt and Start menu open.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-rdt-desktop.png)

   遠端桌面

## 結束 Amazon EC2 執行個體
<a name="ec2-end"></a>

使用 AWS Toolkit，您可以從 Visual Studio 停止或終止執行中的 Amazon EC2 執行個體。若要停止執行個體，EC2 執行個體必須使用 Amazon EBS 磁碟區。如果 EC2 執行個體未使用 Amazon EBS 磁碟區，則您唯一的選項是終止執行個體。

如果您停止執行個體，儲存在 EBS 磁碟區上的資料會保留。如果您終止執行個體，存放在執行個體本機儲存裝置上的所有資料都會遺失。在任何一種情況下，停止或終止，您都不會繼續支付 EC2 執行個體的費用。不過，如果您停止執行個體，則會繼續向您收取執行個體停止後持續存在的 EBS 儲存體費用。

結束執行個體的另一種可能方法是使用遠端桌面連線至執行個體，然後從 Windows **開始**功能表使用**關機**。在這種情況下，您可以將執行個體設定為停止或終止。

 *停止 Amazon EC2 執行個體* 

1. 在 AWS Explorer 中，展開 **Amazon EC2** 節點，開啟**執行個體**的內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。在**執行個體**清單中，在您要停止的執行個體上按一下滑鼠右鍵，然後從內容功能表中選擇**停止**。選擇**是**，以確認您想要停止執行個體。  
![\[AWS Explorer interface showing context menu options for an EC2 instance, including Stop and Reboot.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-stop-menu.png)

1. 在**執行個體**清單頂端，選擇**重新整理**以查看 Amazon EC2 執行個體狀態的變更。由於我們停止而不是終止執行個體，因此與執行個體相關聯的 EBS 磁碟區仍處於作用中狀態。  
![\[EC2 Instances list showing a stopped instance and an attached EBS volume with details.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-stopped.png)

 *已終止的執行個體仍可見* 

如果您終止執行個體，它將繼續出現在**執行個體**清單中，以及執行中或已停止的執行個體。最後， AWS 會回收這些執行個體，它們會從清單中消失。您不需要為處於終止狀態的執行個體付費。

![\[EC2 instance list showing two instances, one running and one terminated, with volume details.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-instance-terminated-linger.png)


 *在關閉時指定 EC2 執行個體的行為* 

 AWS 工具組可讓您指定，如果從**開始**功能表選取**關機**，Amazon EC2 執行個體是否會停止或終止。

1. 在**執行個體**清單中，在 Amazon EC2 執行個體上按一下滑鼠右鍵，然後選擇**變更關閉行為**。  
![\[Context menu showing "變更 Shutdown Behavior" option highlighted among other instance actions.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-change-shutdown.png)

    **變更關閉行為**選單項目

1. 在**變更關閉行為**對話方塊中，從**關閉行為**下拉式清單中，選擇**停止**或終止****。  
![\[Dialog box for changing instance shutdown behavior with options to stop or terminate.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-change-shutdown-dlg.png)

# 管理 Amazon ECS 執行個體
<a name="tkv-ecs"></a>

AWS Explorer 提供 Amazon Elastic Container Service (Amazon ECS) 叢集和容器儲存庫的詳細檢視。您可以從 Visual Studio 開發環境中建立、刪除和管理叢集和容器詳細資訊。

## 修改服務屬性
<a name="tkv-ecs-clusters-service-props"></a>

您可以從叢集檢視檢視服務詳細資訊、服務事件和服務屬性。

1. 在 AWS Explorer 中，開啟要管理之叢集的內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。

1. 在 ECS 叢集檢視中，按一下左側**的服務**，然後按一下**詳細資訊**檢視中的詳細資訊索引標籤。您可以按一下**事件**來查看事件訊息和**部署**狀態。

1. 按一下 **Edit (編輯)**。您可以變更所需的任務計數，以及運作狀態百分比下限和上限。

1. 按一下**儲存**以接受變更，或按一下**取消**以還原現有值。

## 停止任務
<a name="tkv-ecs-clusters-tasks-stop"></a>

您可以在叢集檢視中查看任務的目前狀態，並停止一或多個任務。

 *停止任務* 

1. 在 AWS Explorer 中，開啟叢集的內容 （按一下滑鼠右鍵） 選單，其中包含您要停止的任務，然後選擇**檢視**。

1. 在 ECS 叢集檢視中，按一下左側**的任務**。

1. 確定**所需的任務狀態**設定為 `Running`。選擇要停止的個別任務，然後按一下**停止**或按一下**全部停止**以選取並停止所有執行中的任務。

1. 在**停止任務**對話方塊中，選擇**是**。

## 刪除服務
<a name="tkv-ecs-clusters-service-delete"></a>

您可以從叢集檢視中刪除叢集中的服務。

 *刪除叢集服務* 

1. 在 AWS Explorer 中，使用您要刪除的服務開啟叢集的內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。

1. 在 ECS 叢集檢視中，按一下左側**的服務**，然後按一下**刪除**。

1. 在**刪除叢集**對話方塊中，如果叢集中有負載平衡器和目標群組，您可以選擇使用叢集刪除它們。刪除服務時不會使用它們。

1. 在**刪除叢集**對話方塊中，選擇**確定**。刪除叢集時，會從 AWS Explorer 中移除叢集。

## 刪除叢集
<a name="tkv-ecs-cluster-view"></a>

您可以從 AWS Explorer 刪除 Amazon Elastic Container Service 叢集。

 *刪除叢集* 

1. 在 AWS Explorer 中，開啟您要在 **Amazon ECS** 叢集節點下刪除之**叢集**的內容 （按一下滑鼠右鍵） 選單，然後選擇**刪除**。

1. 在**刪除叢集**對話方塊中，選擇**確定**。刪除叢集時，會從 AWS Explorer 中移除叢集。

## 建立儲存庫
<a name="tkv-ecs-repository-create"></a>

您可以從 AWS Explorer 建立 Amazon Elastic Container Registry 儲存庫。

 *建立儲存庫* 

1. 在 AWS Explorer 中，開啟 **Amazon ECS** 下**儲存庫**節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立儲存庫**。

1. 在**建立儲存庫**對話方塊中，提供儲存庫名稱，然後選擇**確定**。

## 刪除儲存庫
<a name="id1"></a>

您可以從 AWS Explorer 刪除 Amazon Elastic Container Registry 儲存庫。

 *刪除儲存庫* 

1. 在 AWS Explorer 中，開啟 **Amazon ECS** 下**儲存庫**節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**刪除儲存庫**。

1. 在**刪除儲存庫**對話方塊中，您可以選擇刪除儲存庫，即使其包含映像。否則，只有在空白時才會將其刪除。按一下**是**。

# 從 AWS Explorer 管理安全群組
<a name="tkv-sg-create"></a>

Toolkit for Visual Studio 可讓您建立和設定安全群組，以搭配 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和 使用 CloudFormation。當您啟動 Amazon EC2 執行個體或部署應用程式時 CloudFormation，您可以指定要與 Amazon EC2 執行個體建立關聯的安全群組。（部署 以 CloudFormation 建立 Amazon EC2 執行個體。)

安全群組對於傳入網路流量的功能，就像防火牆一樣。安全群組會指定 Amazon EC2 執行個體上允許的網路流量類型。它也可以指定只接受來自特定 IP 地址的傳入流量，或只接受來自指定使用者或其他安全群組的傳入流量。

## 建立安全群組
<a name="tkv-sg-create-security"></a>

在本節中，我們將建立安全群組。建立之後，安全群組將不會設定任何許可。以額外操作處理設定許可。

 *建立安全群組* 

1. 在 AWS Explorer 的 **Amazon EC2** 節點下，開啟**安全群組**節點上的內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。

1. 在 **EC2 安全群組**索引標籤上，選擇**建立安全群組**。

1. 在**建立安全群組**對話方塊中，輸入安全群組的名稱和描述，然後選擇**確定**。  
![\[Dialog box for creating a security group with fields for name and description.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-sg-create.png)

## 為安全群組新增許可
<a name="tkv-permission-sg"></a>

在本節中，我們會將許可新增至安全群組，以允許透過 HTTP 和 HTTPS 通訊協定的 Web 流量。我們也會允許其他電腦使用 Windows 遠端桌面通訊協定 (RDP) 進行連線。

 *將許可新增至安全群組* 

1. 在 **EC2 安全群組**索引標籤上，選擇安全群組，然後選擇**新增許可**按鈕。

1. 在**新增 IP 許可**對話方塊中，選擇**通訊協定、連接埠和網路**選項按鈕，然後從**通訊協定**下拉式清單中選擇 **HTTP**。連接埠範圍會自動調整為連接埠 80，這是 HTTP 的預設連接埠。**來源 CIDR** 欄位預設為 0.0.0.0/0，指定將從任何外部 IP 地址接受 HTTP 網路流量。選擇**確定**。  
![\[Add IP Permission dialog box with Protocol, Port and Network options for HTTP configuration.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-sg-http.png)

   此安全群組的開放連接埠 80 (HTTP)

1. 針對 HTTPS 和 RDP 重複此程序。您的安全群組許可現在應該如下所示。  
![\[Security group settings showing HTTP, HTTPS, and RDP protocols with their respective ports and source CIDR.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-sg-display.png)

您也可以指定使用者 ID 和安全群組名稱，在安全群組中設定許可。在此情況下，此安全群組中的 Amazon EC2 執行個體將接受來自指定安全群組中 Amazon EC2 執行個體的所有傳入網路流量。您也必須指定使用者 ID 做為取消混淆安全群組名稱的方式；安全群組名稱在所有 中都不需要是唯一的 AWS。如需安全群組的詳細資訊，請前往 [EC2 文件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)。

# 從 Amazon EC2 執行個體建立 AMI
<a name="tkv-create-ami-from-instance"></a>

您可以使用 建立 Amazon Machine Image (AMI) AWS Toolkit for Visual Studio。如需 AMIs 的詳細資訊，請參閱《[Amazon Elastic Compute Cloud for Windows Instances 使用者指南》中的 Amazon Machine Image (AMI)](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/AMIs.html) 主題。 **

 若要從結束的 Amazon EC2 執行個體建立 AMI，請完成下列程序。

**從現有的 Amazon EC2 執行個體建立 AMI**

1. 從 AWS Toolkit Explorer 展開 **Amazon EC2**，然後選擇**執行個體**以檢視現有執行個體的清單。

1. 在您想要用作 AMI 基礎的執行個體上按一下滑鼠右鍵，然後選擇**建立映像 (ABS AMI)** 以開啟**建立映像**對話方塊視窗。

1. 從**建立映像**對話方塊中，將映像的名稱和描述新增至提供的欄位中，然後選擇**確定**按鈕以繼續。

1. 建立**映像時，映像建立**確認視窗會在 Visual Studio 中開啟，選擇**確定**按鈕以繼續。

若要使用 AWS Toolkit 檢視您的新 AMI，請展開 **Amazon EC2** 並按兩下 **AMIs**，以在 Visual Studio Editor payne 中開啟視窗，顯示現有 AMIs的清單。如果您在清單中看不到新的 AMI，請選擇 AMI 視窗頂端的**重新整理**按鈕。

# 在 Amazon Machine Image 上設定啟動許可
<a name="tkv-set-ami-launch-perms"></a>

您可以從 AWS Explorer 中的 AMIs**AMIs**啟動許可。您可以使用**設定 AMI 許可**對話方塊從 AMIs 複製許可。

 *在 AMI 上設定許可* 

1. 在 AWS Explorer 的 **AMIs**中，開啟 AMI 上的內容 （按一下滑鼠右鍵） 選單，然後選擇**編輯許可**。  
![\[Context menu for an AMI in AWS Explorer with "Edit Permission" option highlighted.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ami-edit-permissions-menu.png)

1. **設定 AMI 許可**對話方塊中有三個可用選項：
   + 若要提供啟動許可，請選擇**新增**，然後輸入您要為其授予啟動許可之 AWS 使用者的帳號。
   + 若要移除啟動許可，請選擇您要從中移除啟動許可之 AWS 使用者的帳戶號碼，然後選擇**移除**。
   + 若要將許可從一個 AMI 複製到另一個 AMI，請從清單中選擇 AMI，然後選擇**複製來源**。在您選擇的 AMI 上具有啟動許可的使用者，將會獲得目前 AMI 的啟動許可。您可以使用**複製來源**清單中的其他 AMIs 重複此程序，將多個 AMIs的許可複製到目標 AMI。

     從 **Explorer 顯示 AMI 檢視時，複製者**清單僅包含帳戶所擁有且處於作用中狀態**AMIs** AWS 。 AMIs 因此，如果作用中帳戶沒有其他 AMIs 擁有，**複製清單**可能不會顯示任何 AMIs。  
![\[AMI management interface showing launch permissions and public/private settings for Linux instances.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-ami-copy-permissions-dlg.png)

    **複製 AMI 許可**對話方塊

# Amazon Virtual Private Cloud (VPC)
<a name="vpc-tkv"></a>

Amazon Virtual Private Cloud (Amazon VPC) 可讓您在定義的虛擬網路中啟動 Amazon Web Services 資源。此虛擬網路與您在自己的資料中心中操作的傳統網路相似，且具備使用 AWS可擴展基礎設施的優勢。如需詳細資訊，請前往 [Amazon VPC 使用者指南](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/)。

Toolkit for Visual Studio 可讓開發人員存取類似於 公開，[AWS 管理主控台](https://console.aws.amazon.com/console/home)但來自 Visual Studio 開發環境的 VPC 功能。 AWS Explorer 的 **Amazon VPC** 節點包含下列區域的子節點。
+  [VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html) 
+  [子網路](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html) 
+  [彈性 IP](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-ip-addressing.html) 
+  [網際網路閘道 (Internet Gateway)](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html) 
+  [網路 ACL](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html) 
+  [路由表](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html) 
+  [安全群組](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) 

## 使用 建立用於部署的公有私有 VPC AWS Elastic Beanstalk
<a name="tkv-vpc-pub-pri"></a>

本節說明如何建立同時包含公有和私有子網路的 Amazon VPC。公有子網路包含執行網路位址轉譯 (NAT) 的 Amazon EC2 執行個體，可讓私有子網路中的執行個體與公有網際網路通訊。兩個子網路必須位於相同的可用區域 (AZ)。

這是在 VPC 中部署 AWS Elastic Beanstalk 環境所需的最低 VPC 組態。在此案例中，託管應用程式的 Amazon EC2 執行個體位於私有子網路中；將傳入流量路由至應用程式的 Elastic Load Balancing 負載平衡器位於公有子網路中。

如需網路位址轉譯 (NAT) 的詳細資訊，請參閱《*Amazon Virtual Private Cloud 使用者指南*》中的 [NAT 執行個體](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html)。如需如何設定部署以使用 VPC 的範例，請參閱[部署至 Elastic Beanstalk](deployment-beanstalk.md#tkv-deploy-beanstalk)。

 **建立公有/私有子網路 VPC** 

1. 在 AWS Explorer 的 **Amazon VPC** 節點中，開啟 **VPCs**子節點，然後選擇**建立 VPC**。  
![\[AWS Explorer showing Amazon VPC node expanded with VPCs subnode highlighted.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vpc-vpcs-aws-explorer.png)

1. 設定 VPC，如下所示：
   + 輸入 VPC 的名稱。
   + 選取**具有公有子網路**和**具有私有子網路**核取方塊。
   + 從每個子網路的**可用區域**下拉式清單方塊中，選擇可用區域。請務必對兩個子網路使用相同的可用區域。
   + 對於私有子網路，在 **NAT 金鑰對名稱**中，提供金鑰對。此金鑰對用於執行從私有子網路到公有網際網路之網路位址轉譯的 Amazon EC2 執行個體。
   + 選取**設定預設安全群組以允許 NAT 流量**核取方塊。

   輸入 VPC 的名稱。選取**具有公有子網路**和**具有私有子網路**核取方塊。從每個子網路的**可用區域**下拉式清單方塊中，選擇可用區域。請務必對兩個子網路使用相同的可用區域。對於私有子網路，在 **NAT 金鑰對名稱**中，提供金鑰對。此金鑰對用於執行從私有子網路到公有網際網路之網路位址轉譯的 Amazon EC2 執行個體。選取**設定預設安全群組以允許 NAT 流量**核取方塊。

   選擇**確定**。  
![\[VPC creation form with public and private subnet options, CIDR blocks, and NAT settings.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vpc-create.png)

您可以在 AWS Explorer 的 VPC 索引標籤中檢視新的 **VPCs**。

![\[VPC list showing a single VPC named myDeploymentVPC with its ID and other details.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vpc-created-display.png)


NAT 執行個體可能需要幾分鐘的時間才能啟動。當可用時，您可以在 AWS Explorer 中展開 **Amazon EC2** 節點，然後開啟**執行個體**子節點來檢視它。

Amazon Elastic Block Store (Amazon EBS) 磁碟區會自動為 NAT 執行個體建立。如需 Amazon EBS 的詳細資訊，請參閱《Amazon *Amazon EC2*[執行個體使用者指南》中的 Amazon Elastic Block Store (EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) 主題。

![\[EC2 instance details showing a running NAT instance with an attached EBS volume.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vpc-nat-instance.png)


如果您[將應用程式部署到 AWS Elastic Beanstalk 環境](deployment-beanstalk.md#tkv-deploy-beanstalk)，並選擇在 VPC 中啟動環境， Toolkit 會將 VPC 的組態資訊填入**發佈至 Amazon Web Services**對話方塊。

Toolkit 只會從 Toolkit 中建立VPCs 填入資訊，而不是從使用 建立VPCs 填入資訊 AWS 管理主控台。這是因為當 Toolkit 建立 VPC 時，它會標記 VPC 的元件，使其可以存取其資訊。

下列來自 部署精靈的螢幕擷取畫面顯示填入工具組中建立之 VPC 值的對話方塊範例。

![\[AWS Options dialog for EC2 deployment with container type, instance, VPC, and networking settings.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/deploy-pb-aeb-vpc-from-tkv.png)


 **刪除 VPC** 

若要刪除 VPC，您必須先終止 VPC 中的任何 Amazon EC2 執行個體。

1. 如果您已將應用程式部署到 VPC 中的 AWS Elastic Beanstalk 環境，請刪除環境。這將終止託管您應用程式的任何 Amazon EC2 執行個體以及 Elastic Load Balancing 負載平衡器。

   如果您嘗試直接終止託管應用程式的執行個體而不刪除環境，Auto Scaling 服務會自動建立新的執行個體以取代已刪除的執行個體。如需詳細資訊，請前往 [Auto Scaling 開發人員指南](https://docs.aws.amazon.com/autoscaling/latest/userguide/WhatIsAutoScaling.html)。

1. 刪除 VPC 的 NAT 執行個體。

   您不需要刪除與 NAT 執行個體相關聯的 Amazon EBS 磁碟區，即可刪除 VPC。不過，如果您未刪除磁碟區，即使您刪除 NAT 執行個體和 VPC，仍需支付該磁碟區的費用。

1. 在 **VPC** 索引標籤上，選擇**刪除**連結以刪除 VPC。  
![\[VPC management interface showing Delete option highlighted for a selected VPC.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vpc-delete-link.png)

1. 在**刪除 VPC** 對話方塊中，選擇**確定**。  
![\[Confirmation dialog for deleting a VPC, listing associated resources to be deleted.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vpc-delete.png)

# 使用 Visual Studio 的 CloudFormation 範本編輯器
<a name="tkv-cfn-editor"></a>

Toolkit for Visual Studio 包含 Visual Studio 的 CloudFormation 範本編輯器和 CloudFormation 範本專案。支援的功能包括：
+ 使用提供的範本專案類型建立新的 CloudFormation 範本 （空白或從現有堆疊或範本複製）。
+ 使用自動 JSON 驗證、自動完成、程式碼摺疊和語法反白來編輯範本。
+ 自動建議範本中欄位值的內部函數和資源參考參數。
+ 從 Visual Studio 為範本執行常見動作的選單項目。

**Topics**
+ [

# 在 Visual Studio 中建立 CloudFormation 範本專案
](tkv-cfn-editor-new-project.md)
+ [

# 在 Visual Studio 中部署 CloudFormation 範本
](tkv-cfn-editor-deploy-template.md)
+ [

# 在 Visual Studio 中格式化 CloudFormation 範本
](tkv-cfn-editor-format.md)

# 在 Visual Studio 中建立 CloudFormation 範本專案
<a name="tkv-cfn-editor-new-project"></a>

 **建立範本專案** 

1. 在 Visual Studio 中，選擇**檔案**，選擇**新增**，然後選擇**專案**。

1. **針對 Visual Studio 2017**：

   在**新增專案**對話方塊中，展開**已安裝**，然後選取 **AWS**。  
![\[New Project dialog box showing CloudFormation and Lambda Function project options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/CreateNewProject-04-CloudFormation-VS2017.png)

   **針對 Visual Studio 2019**：

   在**新增專案**對話方塊中，確保**語言**、**平台**和**專案類型**下拉式方塊設定為「全部...」，並在**搜尋**欄位中輸入 **aws**。  
![\[Project template options for AWS 服務, including Lambda, CloudFormation, and Serverless applications.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/CreateNewProject-04-CloudFormation-VS2019.png)

1. 選取 **AWS CloudFormation 專案**範本。

1. **針對 Visual Studio 2017**：

   輸入範本專案所需的**名稱**、**位置**等，然後按一下**確定**。

   **針對 Visual Studio 2019**：

   按一下 **Next (下一步)**。在下一個對話方塊中，輸入範本專案所需的**名稱**、**位置**等，然後按一下**建立**。

1. 在**選取專案來源**頁面上，選擇您將建立的範本來源：
   +  **使用空白範本建立** 會產生新的空白 CloudFormation 範本。
   +  **從現有 AWS \$1CFN\$1 堆疊建立** 會從您 AWS 帳戶中的現有堆疊產生範本。（堆疊不需要狀態為 `CREATE_COMPLETE`。)
   +  **選取範例範本**會從其中一個 CloudFormation 範例範本產生範本。  
![\[CloudFormation project creation window with options for template source selection.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-new-template-empty-2.png)

1. 若要完成 CloudFormation 範本專案的建立，請選擇**完成**。

# 在 Visual Studio 中部署 CloudFormation 範本
<a name="tkv-cfn-editor-deploy-template"></a>

 **部署 CFN 範本** 

1. 在 Solution Explorer 中，開啟您要部署之範本的內容 （按一下滑鼠右鍵） 選單，然後選擇**部署。 AWS CloudFormation**  
![\[Solution Explorer showing CloudFormation template with context menu options for deployment.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-solution-explorer-deploy.png)

   或者，若要部署目前正在編輯的範本，請從**範本**功能表中，選擇**部署至 AWS CloudFormation** 。  
![\[Template menu options including Deploy to CloudFormation and Estimate Cost.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-template-menu-deploy.png)

1. 在**部署範本**頁面上，選擇要 AWS 帳戶 用來啟動堆疊的 ，以及要啟動堆疊的區域。  
![\[Deploy Template interface showing options to create or update a stack with account and region selection.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-cfn-deploy.png)

1. 選擇**建立新堆疊**，然後輸入堆疊的名稱。

1. 選擇下列其中任何一個選項 (或不選擇)：
   + 若要接收有關堆疊進度的通知，請從 **SNS 主題**下拉式清單中選擇 SNS 主題。您也可以選擇**建立新主題並在方塊中輸入電子郵件地址，以建立 SNS 主題**。
   + 使用**建立逾時**來指定在宣告失敗之前 CloudFormation ，應允許建立堆疊的時間長度 （並復原，除非已清除**轉返失敗**選項）。
   + 如果您希望堆疊在**失敗時轉返** （也就是刪除本身），請在失敗時使用轉返。如果您希望堆疊保持作用中狀態以進行偵錯，即使堆疊無法完成啟動，也請保持清除此選項。

1. 選擇**完成**以啟動堆疊。

# 在 Visual Studio 中格式化 CloudFormation 範本
<a name="tkv-cfn-editor-format"></a>
+ 在 Solution Explorer 中，開啟範本的內容 （按一下滑鼠右鍵） 選單，然後選擇**格式範本**。

  或者，若要格式化目前正在編輯的範本，請從**範本**功能表中選擇**格式範本**。  
![\[Dropdown menu showing options to deploy to CloudFormation, estimate cost, and format template.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-template-menu-format.png)

  您的 JSON 程式碼將會格式化，以清楚顯示其結構。  
![\[JSON code structure for CloudFormation template with UserData and Properties sections.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-cfn-formatting.png)

# 從 AWS Explorer 使用 Amazon S3
<a name="tkv-s3"></a>

Amazon Simple Storage Service (Amazon S3) 可讓您從網際網路的任何連線存放和擷取資料。您存放在 Amazon S3 上的所有資料都與您的帳戶相關聯，預設情況下，只能由您存取。Toolkit for Visual Studio 可讓您將資料存放在 Amazon S3 上，並檢視、管理、擷取和分發該資料。

Amazon S3 使用儲存貯體的概念，您可以將其視為類似於檔案系統或邏輯磁碟機。儲存貯體可包含類似於目錄的資料夾，以及類似於檔案的物件。在本節中，我們將使用這些概念，逐步解說 Toolkit for Visual Studio 公開的 Amazon S3 功能。

**注意**  
若要使用此工具，您的 IAM 政策必須授予 `s3:GetBucketAcl`、 `s3:GetBucket`和 `s3:ListBucket`動作的許可。如需詳細資訊，請參閱 [IAM AWS 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)。

## 建立 Amazon S3 儲存貯體
<a name="create-s3-bucket"></a>

儲存貯體是 Amazon S3 中最基本的儲存單位。

 **建立 S3 儲存貯體** 

1. 在 AWS Explorer 中，開啟 **Amazon S3** 節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立儲存貯**體。

1. 在**建立儲存貯**體對話方塊中，輸入儲存貯體的名稱。儲存貯體名稱必須是唯一的 AWS。如需其他限制條件的資訊，請前往 [Amazon S3 文件](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)。

1. 選擇**確定**。

## 從 AWS Explorer 管理 Amazon S3 儲存貯體
<a name="managing-s3-buckets"></a>

在 AWS Explorer 中，當您開啟 Amazon S3 儲存貯體的內容 （按一下滑鼠右鍵） 選單時，可以使用下列操作。

 *瀏覽* 

顯示儲存貯體中包含的物件檢視。從這裡，您可以從本機電腦建立資料夾或上傳檔案或整個目錄和資料夾。下方窗格會顯示有關上傳程序的狀態訊息。若要清除這些訊息，請選擇**清除**圖示。您也可以在 AWS Explorer 中按兩下儲存貯體名稱來存取儲存貯體的此檢視。

![\[Empty S3 bucket interface with options to upload files, create folders, and view status.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-bucket-browse-empty.png)


 *屬性* 

顯示對話方塊，您可以在其中執行下列動作：
+ 將範圍為 的 Amazon S3 許可設定為：
  + 您作為儲存貯體擁有者。
  + 所有已通過身分驗證的使用者 AWS。
  + 具有網際網路存取的每個人。
+ 開啟儲存貯體的記錄。
+ 使用 Amazon Simple Notification Service (Amazon SNS) 設定通知，以便在您使用低冗餘儲存 (RRS) 時，發生資料遺失時會收到通知。RRS 是一種 Amazon S3 儲存選項，提供比標準儲存更低的耐用性，但成本較低。如需詳細資訊，請參閱 [S3 FAQs](https://aws.amazon.com/s3/faqs/#What_is_RRS)。
+ 使用儲存貯體中的資料建立靜態網站。

 *政策* 

可讓您為儲存貯體設定 AWS Identity and Access Management (IAM) 政策。如需詳細資訊，請前往 [IAM 文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Overview.html)和 [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UseCases.html) 和 [S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html) 的使用案例。

 *建立預先簽章的 URL* 

可讓您產生可分發的限時 URL，以提供儲存貯體內容的存取權。如需詳細資訊，請參閱[如何建立預先簽章的 URL](#s3-pre-sign-create)。

 *檢視分段上傳* 

可讓您檢視分段上傳。Amazon S3 支援將大型物件上傳分成數個部分，讓上傳程序更有效率。如需詳細資訊，請前往 [ S3 文件中的分段上傳](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html)討論。

 *刪除* 

可讓您刪除儲存貯體。您僅能刪除空的儲存貯體。

## 將檔案和資料夾上傳至 Amazon S3
<a name="upload-s3-files"></a>

您可以使用 AWS Explorer 將檔案或整個資料夾從本機電腦傳輸到任何儲存貯體。

**注意**  
如果您上傳與 Amazon S3 儲存貯體中已存在之檔案或資料夾名稱相同的檔案或資料夾，則上傳的檔案會覆寫現有的檔案，而不會出現警告。

 **將檔案上傳至 S3** 

1. 在 AWS Explorer 中，展開 **Amazon S3** 節點，按兩下儲存貯體或開啟儲存貯體的內容 （按一下滑鼠右鍵） 選單，然後選擇**瀏覽**。

1. 在儲存貯體的**瀏覽**檢視中，選擇**上傳檔案**或**上傳資料夾**。

1. 在**檔案開啟**對話方塊中，導覽至要上傳的檔案，選擇它們，然後選擇**開啟**。如果您要上傳資料夾，請導覽至 並選擇該資料夾，然後選擇**開啟**。

   **上傳設定**對話方塊可讓您設定所上傳檔案或資料夾的中繼資料和許可。選取**全部公開**核取方塊等同於將**開啟/下載**許可設定為**每個人**。您可以選取 選項，以針對上傳的檔案使用[降低備援儲存](https://aws.amazon.com/s3/faqs/#What_is_RRS)體。  
![\[Upload Settings dialog with options for storage, visibility, and permissions configuration.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-file-upload.png)  
![\[S3 bucket interface showing a single uploaded file with details and upload progress.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-file-upload-complete.png)

## 來自 AWS Toolkit for Visual Studio 的 Amazon S3 檔案操作
<a name="tkv-s3-file-ops"></a>

如果您在 Amazon S3 檢視中選擇檔案並開啟內容 （按一下滑鼠右鍵） 選單，您可以對檔案執行各種操作。

![\[Context menu for a file in Amazon S3 view, showing options like Upload, Download, and Delete.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-file-ops-menu.png)


 *建立資料夾* 

可讓您在目前的儲存貯體中建立資料夾。（等同於選擇**建立資料夾**連結。)

 *上傳* 

可讓您上傳檔案或資料夾。（等同於選擇**上傳檔案**或**上傳資料夾**連結。)

 *Open* 

嘗試在預設瀏覽器中開啟選取的檔案。根據檔案類型和預設瀏覽器的功能，可能不會顯示檔案。它可能只是由您的瀏覽器下載。

 *下載* 

開啟 **Folder-Tree** 對話方塊，讓您下載選取的檔案。

 *公開* 

將所選檔案的許可設定為**開啟/下載**和**所有人**。（等同於選取**「上傳設定**」對話方塊上的**「全部設為公**有」核取方塊。)

 *刪除* 

刪除選取的檔案或資料夾。您也可以選擇檔案或資料夾並按 來刪除這些檔案或資料夾`Delete`。

 *變更儲存體方案* 

將儲存類別設定為標準或降低備援儲存 (RRS)。若要檢視目前的儲存類別設定，請選擇**屬性**。

 *變更加密* 

可讓您在 檔案上設定伺服器端加密。若要檢視目前的加密設定，請選擇**屬性**。

 *Rename (重新命名)* 

可讓您重新命名檔案。您無法重新命名資料夾。

 *剪下 \$1 複製 \$1 貼上* 

可讓您在資料夾之間或儲存貯體之間剪下、複製和貼上檔案或資料夾。

 *屬性* 

顯示對話方塊，可讓您設定檔案的中繼資料和許可，以及在降低冗餘儲存 (RRS) 和標準之間切換檔案的儲存，以及設定檔案的伺服器端加密。此對話方塊也會顯示 檔案的 https 連結。如果您選擇此連結， Toolkit for Visual Studio 會在您的預設瀏覽器中開啟 檔案。如果您擁有將檔案設定為 **Open/Download** 和 **Everyone** 的許可，其他人將可以透過此連結存取檔案。我們建議您建立和分發預先簽章URLs，而不是分發此連結。

![\[Properties dialog for an S3 object showing metadata, permissions, and encryption options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-properties-file.png)


 *建立預先簽章的 URL* 

可讓您建立限時預先簽章的 URL，以便其他人存取您在 Amazon S3 上存放的內容。

### 如何建立預先簽章的 URL
<a name="s3-pre-sign-create"></a>

您可以為儲存貯體或儲存貯體中的檔案建立預先簽章的 URL。其他人接著可以使用此 URL 來存取儲存貯體或檔案。URL 會在您建立 URL 時指定的一段時間後過期。

 **建立預先簽章的 URL** 

1. 在**建立預先簽章的 URL** 對話方塊中，設定 URL 的過期日期和時間。預設設定是從目前時間起算一小時。

1. 選擇**產生**按鈕。

1. 若要複製剪貼簿連結，請選擇**複製**。  
![\[Dialog box for creating a pre-signed URL with options for expiration, S3 bucket, object key, and action.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-presigned-url.png)

# 從 AWS Explorer 使用 DynamoDB
<a name="dynamodb-tkv"></a>

Amazon DynamoDB 是一種快速、可輕鬆擴展、高度可用、經濟實惠、非關聯式資料庫服務。DynamoDB 會移除資料儲存體的傳統可擴展性限制，同時維持低延遲和可預測的效能。Toolkit for Visual Studio 提供在開發環境中使用 DynamoDB 的功能。如需 DynamoDB 的詳細資訊，請參閱 Amazon Web Services 網站上的 [DynamoDB](https://aws.amazon.com/dynamodb/)。

在 Toolkit for Visual Studio 中， AWS Explorer 會顯示與作用中 相關聯的所有 DynamoDB 資料表 AWS 帳戶。

![\[AWS Explorer window showing DynamoDB tables under the selected US East (Virginia) region.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-aws-explorer.png)


## 建立 DynamoDB 資料表
<a name="tkv-dynamodb-create-table"></a>

您可以使用 Toolkit for Visual Studio 來建立 DynamoDB 資料表。

 **在 AWS Explorer 中建立資料表** 

1. 在 AWS Explorer 中，開啟 **Amazon DynamoDB** 的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立資料表**。

1. 在**建立資料表**精靈的**資料表名稱**中，輸入資料表的名稱。

1. 在**雜湊金鑰名稱**欄位中，輸入主要雜湊金鑰屬性，然後從**雜湊金鑰類型**按鈕中選擇雜湊金鑰類型。DynamoDB 使用主索引鍵屬性建置未排序的雜湊索引，並使用範圍主索引鍵屬性建置選用的排序範圍索引。如需主要雜湊金鑰屬性的詳細資訊，請前往《*Amazon DynamoDB 開發人員指南*》中的[主金鑰](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey)一節。

1. （選用） 選取**啟用範圍金鑰**。在**範圍索引鍵名稱**欄位中，輸入範圍索引鍵屬性，然後從**範圍索引鍵類型**按鈕中選擇範圍索引鍵類型。

1. 在**讀取容量**欄位中，輸入讀取容量單位的數量。在**寫入容量**欄位中，輸入寫入容量單位的數量。您必須指定至少三個讀取容量單位和五個寫入容量單位。如需讀取和寫入容量單位的詳細資訊，請前往 [ DynamoDB 中的佈建輸送量](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html)。

1. （選用） 選取**啟用基本警示**，以便在資料表的請求率過高時提醒您。選擇傳送提醒之前，每 60 分鐘必須超過的佈建輸送量百分比。**在傳送通知至** 中，輸入電子郵件地址。

1. 按一下**確定**以建立資料表。

![\[Create Table dialog with fields for table name, key types, capacities, and alarm settings.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-create-table.png)


如需 DynamoDB 資料表的詳細資訊，請前往[資料模型概念 - 資料表、項目和屬性](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.TablesItemsAttributes)。

## 將 DynamoDB 資料表檢視為網格
<a name="tkv-dynamodb-grid-view"></a>

若要開啟其中一個 DynamoDB 資料表的網格檢視，請在 AWS Explorer 中按兩下對應至資料表的子節點。從網格檢視中，您可以查看存放在該資料表中的項目、屬性和值。每一列都會對應到資料表中的某個項目。資料表欄會對應到屬性。資料表中的每個儲存格都會保存與該項目之屬性相關聯的值。

屬性可以擁有屬於字串或數字的值。有些屬性的值包含字串或數字的「集合」**。集合值會顯示為逗號分隔的清單，並且用方括號括住。

![\[AWS Explorer interface showing DynamoDB table with product catalog entries and attributes.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-product-catalog.png)


## 編輯和新增屬性和值
<a name="tkv-dynamodb-editing"></a>

透過按兩下儲存格，您可以編輯項目對應屬性的值。對於集合值屬性，您也可以在集合中新增或刪除其中的個別值。

![\[Table showing brand names with associated colors and editing options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-single-value-cell-edit.png)


除了變更屬性的值之外，您還可以變更屬性值的格式，但有一些限制。例如，任何數值都能轉換為字串值。如果您有字串值，其內容為數字，例如 125，儲存格編輯器可讓您將值的格式從字串轉換為數字。您也可以將單一值轉換為集合值。但是，通常您不能將集合值轉換成為單一值；唯一的例外情況，就是當該集合值其實僅有一個元素。

![\[Spreadsheet interface showing Brand, Color, 描述, Dimensions, and Gender columns with editable cells.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-set-value-attribute.png)


編輯屬性值後，請選擇綠色核取記號以確認您的變更。如果您想要捨棄變更，請選擇紅色 X。

確認變更後，屬性值會以紅色顯示。這表示屬性已更新，但新值尚未寫回 DynamoDB 資料庫。若要將變更寫回 DynamoDB，請選擇**遞交變更**。若要捨棄變更，請選擇**掃描資料表**，當工具組詢問您是否要在掃描前遞交變更時，請選擇**否**。

 *新增 屬性* 

從網格檢視中，您也可以將屬性新增至資料表。若要新增屬性，請選擇**新增屬性**。

![\[Three buttons labeled Scan Table, Commit Changes, and Add Attribute.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-add-attribute-button.png)


在**新增屬性**對話方塊中，輸入屬性的名稱，然後選擇**確定**。

![\[Add Attribute dialog box with input field for Attribute Name and explanatory text.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-add-attribute.png)


若要讓新屬性成為資料表的一部分，您必須為至少一個項目新增值，然後選擇**遞交變更**按鈕。若要捨棄新的屬性，只需關閉資料表的網格檢視，而不選擇**遞交變更**。

![\[Database table view showing ProductCatalog with columns like ISBN, Price, and Genre.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-commit-new-attribute-value.png)


## 掃描 DynamoDB 資料表
<a name="tkv-dynamodb-scan"></a>

![\[Three buttons: Scan Table, Commit Changes, and Add Attribute.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-scan.png)


您可以從 Toolkit 對 DynamoDB 資料表執行掃描。進行掃描時，您可以定義一組條件，而掃描會從資料表中傳回符合您所設定條件的所有項目。掃描是昂貴的操作，應謹慎使用，以避免中斷資料表上較高優先順序的生產流量。如需使用掃描操作的詳細資訊，請前往 *Amazon DynamoDB 開發人員指南*。

 **從 AWS Explorer 在 DynamoDB 資料表上執行掃描** 

1. 在網格檢視中，選擇**掃描條件：新增**按鈕。

1. 在掃描子句編輯器中，選擇要比對的屬性、應如何解譯屬性的值 （字串、數字、設定值）、應如何比對 （例如以 或 包含開頭），以及應比對的常值。

1. 視需要為您的搜尋新增更多掃描子句。掃描只會傳回符合您所有掃描子句之條件的項目。比對字串值時，掃描會執行區分大小寫的比較。

1. 在網格檢視頂端的按鈕列上，選擇**掃描資料表**。

若要移除掃描子句，請選擇每個子句右側的白色線的紅色按鈕。

![\[Product catalog table with scan conditions interface showing bicycle data entries.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-scan-results.png)


若要返回包含所有項目的資料表檢視，請移除所有掃描子句，然後再次選擇**掃描資料表**。

 *為掃描結果編製分頁* 

檢視底部有三個按鈕。

![\[Three buttons at the bottom: rewind, fast forward, and a green play button.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-paginate-export.png)


前兩個藍色按鈕提供掃描結果的分頁。第一個按鈕會顯示額外的結果頁面。第二個按鈕會顯示額外的十頁結果。在此內容中，頁面等於 1 MB 的內容。

 *將掃描結果匯出至 CSV* 

第三個按鈕會將結果從目前的掃描匯出至 CSV 檔案。

# AWS CodeCommit 搭配 Visual Studio Team Explorer 使用
<a name="using-aws-codecommit-with-team-explorer"></a>

您可以使用 AWS Identity and Access Management (IAM) 使用者帳戶來建立 Git 登入資料，並使用它們從 Team Explorer 中建立和複製儲存庫。

## 的登入資料類型 AWS CodeCommit
<a name="credential-types-for-acclong"></a>

大多數 AWS Toolkit for Visual Studio 使用者都知道設定包含其存取和私密金鑰的 AWS 登入資料設定檔。這些登入資料設定檔用於 Toolkit for Visual Studio，以啟用對服務 APIs呼叫，例如，列出 AWS Explorer 中的 Amazon S3 儲存貯體或啟動 Amazon EC2 執行個體。 AWS CodeCommit 與 Team Explorer 的整合也會使用這些登入資料設定檔。不過，若要使用 Git 本身，您需要額外的登入資料，特別是 HTTPS 連線的 Git 登入資料。您可以在 使用者指南中的[使用 Git 登入資料設定 HTTPS 使用者 （使用者名稱和密碼） 中閱讀這些登入](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)*AWS CodeCommit 資料*。

您只能為 IAM 使用者帳戶建立 AWS CodeCommit 的 Git 登入資料。您無法為根帳戶建立它們。您最多可以為服務建立兩組這些登入資料，雖然您可以將一組登入資料標記為非作用中，但非作用中組仍會計入兩組的限制。請注意，您可以隨時刪除並重新建立登入資料。當您 AWS CodeCommit 在 Visual Studio 中使用 時，您的傳統 AWS 登入資料會用於使用服務本身，例如當您建立和列出儲存庫時。使用 中託管的實際 Git 儲存庫時 AWS CodeCommit，您可以使用 Git 登入資料。

作為 支援的一部分 AWS CodeCommit， Toolkit for Visual Studio 會自動為您建立和管理這些 Git 登入資料，並將其與您的 AWS 登入資料設定檔建立關聯。您不需要擔心擁有正確的登入資料集，即可在 Team Explorer 中執行 Git 操作。使用 AWS 登入資料描述檔連線至 Team Explorer 後，每當您使用 Git 遠端時，會自動使用相關聯的 Git 登入資料。

## 連線至 AWS CodeCommit
<a name="connecting-to-acclong"></a>

當您在 Visual Studio 2015 或更新版本中開啟 Team Explorer 視窗時，您會在管理連線的託管服務供應商區段中看到 AWS CodeCommit 項目。

![\[AWS CodeCommit 管理連線中的項目\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_invite-300x106.png)


選擇**註冊**會在瀏覽器視窗中開啟 Amazon Web Services 首頁。當您選擇 **Connect** 時，會發生什麼情況取決於 Toolkit for Visual Studio 是否可以找到具有 AWS 存取和私密金鑰的登入資料設定檔，讓它 AWS 代表您呼叫 。當 Toolkit for Visual Studio 找不到任何本機儲存的登入資料時，您可能已使用 IDE 中顯示的新入門頁面來設定登入資料設定檔。或者，您可能已經使用 Toolkit for Visual Studio、 或 AWS Tools for Windows PowerShell， AWS CLI 並且已有 AWS 登入資料設定檔可供 Toolkit for Visual Studio 使用。

當您選擇**連線**時， Toolkit for Visual Studio 會開始尋找要在連線中使用的登入資料設定檔的程序。如果 Toolkit for Visual Studio 找不到登入資料設定檔，它會開啟對話方塊，邀請您輸入 的存取和私密金鑰 AWS 帳戶。我們強烈建議您使用 IAM 使用者帳戶，而不是您的根登入資料。此外，如前所述，您最終需要的 Git 登入資料只能為 IAM 使用者建立。提供存取和私密金鑰並建立登入資料設定檔後，即可使用 Team Explorer 和 AWS CodeCommit 之間的連線。

如果 Toolkit for Visual Studio 找到多個 AWS 登入資料設定檔，系統會提示您選取要在 Team Explorer 中使用的帳戶。

![\[選取 AWS 登入資料設定檔\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_profileselect-300x173.png)


如果您只有一個登入資料設定檔， Toolkit for Visual Studio 會略過設定檔選擇對話方塊，並立即連線：

當 Team Explorer 和 AWS CodeCommit 透過您的登入資料設定檔建立連線時，邀請對話方塊會關閉，並顯示連線面板。

![\[AWS CodeCommit 連線面板\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_connectpanel-300x61.png)


由於您沒有在本機複製的儲存庫，因此面板只會顯示您可以執行的操作：**複製**、**建立**和**登出**。如同其他供應商， AWS CodeCommit 在 Team Explorer 中，在任何指定時間只能繫結至單一 AWS 登入資料設定檔。若要切換帳戶，您可以使用**登出**來移除連線，以便使用不同的帳戶啟動新的連線。

現在您已建立連線，您可以按一下建立連結來**建立**儲存庫。

## 建立儲存庫
<a name="creating-a-repository"></a>

當您按一下**建立**連結時，**會開啟建立新 AWS CodeCommit 儲存庫**對話方塊。

![\[建立新的 AWS CodeCommit 儲存庫\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_create-300x211.png)


AWS CodeCommit 儲存庫是依區域組織，因此您可以在**區域中**選取要託管儲存庫的區域。清單包含 AWS CodeCommit 支援 的所有區域。您提供新儲存庫的名稱 （必要） 和描述 （選用）。

對話方塊的預設行為是使用儲存庫名稱 （當您輸入名稱時，資料夾位置也會更新） 來為新儲存庫加上資料夾位置。若要使用不同的資料夾名稱，請在輸入儲存庫名稱完成後，編輯**複製到**資料夾路徑。

您也可以選擇自動建立儲存庫的初始`.gitignore`檔案。 AWS Toolkit for Visual Studio 提供 Visual Studio 檔案類型的內建預設值。您也可以選擇沒有檔案，或使用您想要在儲存庫之間重複使用的自訂現有檔案。只要在清單中選取**使用自訂**，然後導覽至要使用的自訂檔案。

擁有儲存庫名稱和位置後，您就可以按一下**確定**並開始建立儲存庫。Toolkit for Visual Studio 會請求服務建立儲存庫，然後在本機複製新儲存庫，如果您使用的是 .gitignore 檔案，請新增初始遞交。此時您開始使用 Git 遠端，因此 Toolkit for Visual Studio 現在需要存取先前所述的 Git 登入資料。

## 設定 Git 登入資料
<a name="setting-up-git-credentials"></a>

此時，您一直使用 AWS 存取和私密金鑰來請求服務建立您的儲存庫。現在您需要使用 Git 本身來執行實際的複製操作，Git 不了解 AWS 存取和私密金鑰。反之，您需要提供使用者名稱和密碼登入資料給 Git，以便在與遠端的 HTTPS 連線上使用。

如[設定 Git 登入](#setting-up-git-credentials)資料所述，您要使用的 Git 登入資料必須與 IAM 使用者相關聯。您無法為根登入資料產生它們。您應該一律將 AWS 登入資料設定檔設定為包含 IAM 使用者存取和私密金鑰，而不是根金鑰。Toolkit for Visual Studio 可以嘗試 AWS CodeCommit 為您設定 Git 登入資料，並將其與您先前在 Team Explorer 中用來連接的 AWS 登入資料設定檔建立關聯。

當您在**建立新 AWS CodeCommit 儲存庫**對話方塊中選擇**確定**並成功建立儲存庫時， Toolkit for Visual Studio 會檢查在 Team Explorer 中連接的 AWS 登入資料設定檔，以判斷 的 Git 登入資料是否存在， AWS CodeCommit 並在本機與設定檔相關聯。若是如此， Toolkit for Visual Studio 會指示 Team Explorer 在新的儲存庫上開始複製操作。如果 Git 登入資料無法在本機使用， Toolkit for Visual Studio 會檢查 Team Explorer 中用於連線的帳戶登入資料的類型。如果登入資料適用於 IAM 使用者，如我們建議，會顯示下列訊息。

![\[建立 Git 登入資料\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_iamuser_createcreds-300x156.png)


如果登入資料是根登入資料，則會改為顯示下列訊息。

![\[使用 AWS CodeCommit 登入資料建立 IAM 使用者\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_rootuser-300x168.png)


在這兩種情況下， Toolkit for Visual Studio 都會提供 來嘗試執行工作，為您建立必要的 Git 登入資料。在第一個案例中，只需要為 IAM 使用者建立一組 Git 登入資料。使用根帳戶時， Toolkit for Visual Studio 會先嘗試建立 IAM 使用者，然後繼續為該新使用者建立 Git 登入資料。如果 Toolkit for Visual Studio 必須建立新的使用者，它會將 AWS CodeCommit 進階使用者受管政策套用至該新使用者帳戶。此政策僅允許存取 ， AWS CodeCommit 並允許使用 執行所有操作，但刪除儲存庫 AWS CodeCommit 除外。

建立登入資料時，您只能檢視一次。因此， Toolkit for Visual Studio 會提示您將新建立的登入資料儲存為`.csv`檔案，然後再繼續。

![\[儲存 AWS CodeCommit 登入資料\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_savecreds-300x156.png)


這也是我們強烈建議的內容，請務必將它們儲存到安全的位置！

在某些情況下， Toolkit for Visual Studio 可能無法自動建立登入資料。例如，您可能已建立 AWS CodeCommit （二） 的 Git 登入資料集數目上限，或者您可能沒有足夠的程式設計權限，讓 Toolkit for Visual Studio 為您執行工作 （如果您以 IAM 使用者身分登入）。在這些情況下，您可以登入 AWS 管理主控台 來管理登入資料，或從管理員取得登入資料。然後，您可以在 Toolkit for Visual Studio 顯示的 **Git 登入 AWS CodeCommit**資料對話方塊中輸入它們。

![\[的 Git 登入資料 AWS CodeCommit\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_manualentry-300x267.png)


現在 Git 的登入資料已可用，新儲存庫的複製操作會繼續進行 （請參閱 Team Explorer 中操作的進度指示）。如果您選擇套用預設`.gitignore`檔案，則會將其遞交至具有「初始遞交」註解的儲存庫。

這就是設定登入資料以及在 Team Explorer 中建立儲存庫。備妥必要的登入資料後，您未來建立新儲存庫時看到的就是**建立新 AWS CodeCommit 儲存庫**對話方塊本身。

## 複製儲存庫
<a name="cloning-a-repository"></a>

若要複製現有的儲存庫，請返回 Team Explorer AWS CodeCommit 中 的連線面板。按一下**複製**連結以開啟**複製 AWS CodeCommit 儲存庫**對話方塊，然後選取要複製的儲存庫，以及您要放置在磁碟上的位置。

![\[複製 AWS CodeCommit 儲存庫\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_clone-300x279.png)


選擇區域後， Toolkit for Visual Studio 會查詢服務，以探索該區域中可用的儲存庫，並將它們顯示在對話方塊的中央清單部分。也會顯示每個儲存庫的名稱和選用描述。您可以重新排序清單，依儲存庫名稱或上次修改日期排序，並依遞增或遞減順序排序。

選取儲存庫後，您可以選擇要複製的位置。這會預設為與其他 外掛程式中使用的儲存庫位置相同的 Team Explorer，但您可以瀏覽或輸入任何其他位置。根據預設，儲存庫名稱會加上所選路徑的尾碼。不過，如果您想要特定路徑，只要在選取資料夾之後編輯文字方塊即可。當您按一下 **OK** 時，方塊中的文字都會是您會找到複製儲存庫的資料夾。

選取儲存庫和資料夾位置後，請按一下**確定**以繼續複製操作。如同建立儲存庫一樣，您可以在 Team Explorer 中看到複製操作的進度。

## 使用 儲存庫
<a name="working-with-repositories"></a>

當您複製或建立儲存庫時，請注意連線的本機儲存庫會列在操作連結下的 Team Explorer 連線面板中。這些項目可讓您方便地存取儲存庫以瀏覽內容。只要在儲存庫上按一下滑鼠右鍵，然後選擇在**主控台中瀏覽**。

![\[在 主控台中瀏覽\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/codecommit_browseinconsole-300x115.png)


您也可以使用**更新 Git 登入資料**來更新與登入資料描述檔相關聯的預存 Git 登入資料。如果您已輪換登入資料，這會很有用。命令會開啟 **Git 登入資料 AWS CodeCommit**對話方塊，您可以在其中輸入或匯入新的登入資料。

儲存庫上的 Git 操作會如預期般運作。您可以進行本機遞交，並在準備好共用時，使用 Team Explorer 中的同步選項。由於 Git 登入資料已存放在本機，並與我們連線的 AWS 登入資料設定檔相關聯，因此系統不會提示我們再次提供這些登入資料以進行 AWS CodeCommit 遠端操作。

# 在 Visual Studio 中使用 CodeArtifact
<a name="using-aws-codeartifact"></a>

AWS CodeArtifact 是一種全受管成品儲存庫服務，可讓組織輕鬆安全地存放和共用用於應用程式開發的軟體套件。您可以將 CodeArtifact 與熱門建置工具和套件管理員搭配使用，例如 NuGet 和 .NET Core CLIs和 Visual Studio。您也可以設定 CodeArtifact 從外部公有儲存庫提取套件，例如 [NuGet.org](https://www.nuget.org/)

在 CodeArtifact 中，您的套件會儲存在儲存庫中，然後存放在網域中。使用 CodeArtifact 儲存庫 AWS Toolkit for Visual Studio 簡化 Visual Studio 的組態，讓您輕鬆地從 CodeArtifact 和 NuGet.org.

## 將 CodeArtifact 儲存庫新增為 NuGet 套件來源
<a name="add-repo-as-nuget-package-source"></a>

若要使用 CodeArtifact 中的套件，您需要在 Visual Studio 的 **NuGet Package Manager** 中將儲存庫新增為 packabe 來源

 **將儲存庫新增為套件來源** 

1. 在 AWS Explorer 中，導覽至**AWS CodeArtifact**節點中的儲存庫。

1. 開啟您要新增之儲存庫的內容 （按一下滑鼠右鍵） 選單，然後選擇**複製 NuGet 來源端點**。

1. 在**工具 > 選項**選單中，導覽至 **NuGet ** **NuGet Package Manager 節點下方的套件來源**。

1. 在**套件來源中**，選取加號 (**＋**)、編輯名稱，然後貼上您先前在來源欄位中複製的 NuGet **來源**端點 URL。

1. 選取新新增的套件來源旁的核取方塊以啟用它。
**注意**  
建議您將 **NuGet.org** 的外部連線新增至 CodeArtifact，並在 Visual Studio 中停用 **nuget.org** 套件來源。使用外部連線時，從 **NuGet.org** 提取的所有相依性都會存放在 CodeArtifact 中。如果 **NuGet.org** 因任何原因而停機，您所需的套件仍然可用。如需外部連線的詳細資訊，請參閱*AWS CodeArtifact 《 使用者指南*》中的[新增外部連線](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html)。

1. 選擇**確定**以關閉選單。

如需搭配 Visual Studio 使用 CodeArtifact 的詳細資訊，請參閱*AWS CodeArtifact 《 使用者指南*》中的[搭配 Visual Studio 使用 CodeArtifact](https://docs.aws.amazon.com/codeartifact/latest/ug/nuget-visual-studio.html)。

# AWS Explorer 的 Amazon RDS
<a name="rds-tkv"></a>

Amazon Relational Database Service (Amazon RDS) 是一種服務，可讓您在雲端中佈建和管理 SQL 關聯式資料庫系統。Amazon RDS 支援三種類型的資料庫系統：
+ MySQL Community Edition
+ Oracle Database Enterprise Edition
+ Microsoft SQL Server (Express、Standard 或 Web Edition)

如需詳細資訊，請參閱 [Amazon RDS 使用者指南](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/)。

這裡討論的許多功能也可以透過 Amazon RDS 的 [AWS 管理主控台](https://console.aws.amazon.com/rds/home)使用。

**Topics**
+ [

# 啟動 Amazon RDS 資料庫執行個體
](rds-launch-instance.md)
+ [

# 在 RDS 執行個體中建立 Microsoft SQL Server 資料庫
](rds-launch-instance-sql.md)
+ [

# Amazon RDS 安全群組
](rds-security-groups.md)

# 啟動 Amazon RDS 資料庫執行個體
<a name="rds-launch-instance"></a>

使用 AWS Explorer，您可以啟動 Amazon RDS 支援的任何資料庫引擎的執行個體。下列逐步解說顯示啟動 Microsoft SQL Server Standard Edition 執行個體的使用者體驗，但使用者體驗與所有支援的引擎相似。

 **啟動 Amazon RDS 執行個體** 

1. 在 AWS Explorer 中，開啟 **Amazon RDS** 節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**啟動資料庫執行個體**。  
![\[AWS Explorer window showing Amazon RDS with context menu option to Launch DB Instance.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-db-launch-menu.png)

   或者，在**資料庫執行個體**索引標籤上，選擇**啟動資料庫執行個體**。  
![\[Database instances list showing multiple DB instances with their status and details.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-db-launch-dashboard.png)

1. 在**資料庫引擎選擇**對話方塊中，選擇要啟動的資料庫引擎類型。在此演練中，選擇 Microsoft SQL Server Standard Edition (sqlserver-se)，然後選擇**下一步**。  
![\[DB Engine Selection dialog showing options for Oracle and Microsoft SQL Server databases.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-db-instance-db-engine.png)

1. 在**資料庫引擎執行個體選項**對話方塊中，選擇組態選項。

   在**資料庫引擎執行個體選項和類別**區段中，您可以指定下列設定。

    *License Model (授權模式)*   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/rds-launch-instance.html)

   授權模型會根據資料庫引擎的類型而有所不同。引擎類型授權 Microsoft SQL Server 授權包含 MySql general-public-license Oracle bring-your-own-license  
** *資料庫執行個體版本* **  
選擇您要使用的資料庫引擎版本。如果只支援一個版本，則會為您選取該版本。  
** *資料庫執行個體類別* **  
選擇資料庫引擎的執行個體類別。執行個體類別的定價有所不同。如需詳細資訊，請參閱 [Amazon RDS 定價](https://aws.amazon.com/rds/pricing)。  
** *執行多可用區部署* **  
選取此選項可建立多可用區部署，以提高資料耐用性和可用性。Amazon RDS 會在不同的可用區域中佈建和維護資料庫的待命複本，以便在排程或非計劃停機時自動容錯移轉。如需多可用區域部署定價的相關資訊，請參閱 [Amazon RDS](https://aws.amazon.com/rds) 詳細資訊頁面的定價區段。Microsoft SQL Server 不支援此選項。  
** *自動升級次要版本* **  
選取此選項，讓 AWS 自動為您在 RDS 執行個體上執行次要版本更新。

在 **RDS 資料庫執行個體**區段中，您可以指定下列設定。

** *Allocated Storage (配置的儲存體)* **    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/rds-launch-instance.html)
配置儲存體的最小值和最大值取決於資料庫引擎的類型。引擎最低 (GB) 最高 (GB) MySQL 5 1024 Oracle Enterprise Edition 10 1024 Microsoft SQL Server Express Edition 30 1024 Microsoft SQL Server Standard Edition 250 1024 Microsoft SQL Server Web Edition 30 1024

** *DB Instance Identifier (資料庫執行個體識別符)* **  
指定資料庫執行個體的名稱。此名稱不區分大小寫。它將在 AWS Explorer 中以小寫形式顯示。

** *Master User Name (主要使用者名稱)* **  
輸入資料庫執行個體管理員的名稱。

** *Master User Password (主要使用者密碼)* **  
輸入資料庫執行個體管理員的密碼。

** *確認密碼* **  
再次輸入密碼以驗證是否正確。

![\[DB Engine Instance Options window for configuring SQL Server database settings in AWS RDS.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-db-instance-engine-options.png)


1. 在**其他選項**對話方塊中，您可以指定下列設定。  
** *Database Port* (資料庫連接埠) **  
這是執行個體用來在網路上通訊的 TCP 連接埠。如果您的電腦透過防火牆存取網際網路，請將此值設定為防火牆允許流量的連接埠。  
** *可用區域* **  
如果您希望在區域中的特定可用區域中啟動執行個體，請使用此選項。您指定的資料庫執行個體可能無法在指定區域的所有可用區域中使用。  
** *RDS 安全群組* **  
選取要與您的執行個體建立關聯的 RDS 安全群組 （或群組）。RDS 安全群組會指定允許存取執行個體的 IP 地址、Amazon EC2 AWS 帳戶 執行個體和 。如需 RDS 安全群組的詳細資訊，請參閱 [Amazon RDS 安全群組](rds-security-groups.md#tkv-amazon-rds-security-groups)。Toolkit for Visual Studio 會嘗試判斷您目前的 IP 地址，並提供將此地址新增至與執行個體相關聯之安全群組的選項。不過，如果您的電腦透過防火牆存取網際網路，則 Toolkit 為您的電腦產生的 IP 地址可能不準確。若要判斷要使用的 IP 地址，請洽詢您的系統管理員。  
** *資料庫參數群組* **  
（選用） 從此下拉式清單中，選擇要與執行個體建立關聯的資料庫參數群組。資料庫參數群組可讓您變更執行個體的預設組態。如需詳細資訊，請參閱 [Amazon Relational Database Service 使用者指南](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)和[本文](https://aws.amazon.com/articles/2935)。

   當您在此對話方塊上指定設定時，請選擇**下一步**。  
![\[Launch DB Instance dialog showing database port, availability zone, and security group options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-db-instance-add-options.png)

1. **Backup and Maintenance** 對話方塊可讓您指定 Amazon RDS 是否應備份執行個體，如果是，備份應保留多久。您也可以指定備份應該發生的時段。

   此對話方塊也可讓您指定您是否希望 Amazon RDS 對執行個體執行系統維護。維護包括例行修補程式和次要版本升級。

   您為系統維護指定的時段不能與為備份指定的時段重疊。

   選擇 **Next (下一步)**。  
![\[Backup and maintenance options interface for DB instance with automatic backup settings.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-db-instance-back-up-maintenance.png)

1. 精靈中的最後一個對話方塊可讓您檢閱執行個體的設定。如果您需要修改設定，請使用**返回**按鈕。如果所有設定都正確，請選擇**啟動**。

# 在 RDS 執行個體中建立 Microsoft SQL Server 資料庫
<a name="rds-launch-instance-sql"></a>

Microsoft SQL Server 的設計方式是在啟動 Amazon RDS 執行個體之後，您需要在 RDS 執行個體中建立 SQL Server 資料庫。

如需如何建立 Amazon RDS 執行個體的資訊，請參閱[啟動 Amazon RDS 資料庫執行個體](rds-launch-instance.md#tkv-launch-rds-instance)。

 **建立 Microsoft SQL Server 資料庫** 

1. 在 AWS Explorer 中，開啟對應至 Microsoft SQL Server RDS 執行個體之節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立 SQL Server 資料庫**。  
![\[AWS Explorer context menu for RDS instance showing options to create or modify database.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-ms-sql-create-db.png)

1. 在**建立 SQL Server 資料庫**對話方塊中，輸入您在建立 RDS 執行個體時指定的密碼，輸入 Microsoft SQL Server 資料庫的名稱，然後選擇**確定**。  
![\[Dialog box for creating SQL Server database with fields for DB instance, username, password, and database name.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-spec-ms-sql-db.png)

1. Toolkit for Visual Studio 會建立 Microsoft SQL Server 資料庫，並將其新增至 Visual Studio Server Explorer。  
![\[Server Explorer window showing database structure with tables, views, and other components.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-sql-svr-explorer.png)

# Amazon RDS 安全群組
<a name="rds-security-groups"></a>

Amazon RDS 安全群組可讓您管理 Amazon RDS 執行個體的網路存取。使用安全群組時，您可以使用 CIDR 表示法指定一組 IP 地址，而且 Amazon RDS 執行個體只會辨識來自這些地址的網路流量。

雖然它們的運作方式類似，但 Amazon RDS 安全群組與 Amazon EC2 安全群組不同。您可以將 EC2 安全群組新增至 RDS 安全群組。然後，任何屬於 EC2 安全群組成員的 EC2 執行個體都可以存取屬於 RDS 安全群組成員的 RDS 執行個體。

如需 Amazon RDS 安全群組的詳細資訊，請前往 [RDS 安全群組](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html)。如需 Amazon EC2 安全群組的詳細資訊，請參閱 [EC2 使用者指南](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)。

## 建立 Amazon RDS 安全群組
<a name="tkv-create-an-amazon-rds-security-group"></a>

您可以使用 Toolkit for Visual Studio 來建立 RDS 安全群組。如果您使用 AWS Toolkit 啟動 RDS 執行個體，精靈將允許您指定要與執行個體搭配使用的 RDS 安全群組。您可以在啟動精靈之前，使用下列程序來建立該安全群組。

**建立 Amazon RDS 安全群組**

1. 在 AWS Explorer 中，展開 **Amazon RDS** 節點，開啟**資料庫安全群組**子節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立**。  
![\[AWS Explorer window showing Amazon RDS expanded with DB Security Groups context menu options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-create-menu.png)

   或者，在**安全群組**索引標籤上，選擇**建立安全群組**。如果未顯示此索引標籤，請開啟**資料庫安全群組**子節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。  
![\[Database security groups interface showing options to create, delete, and refresh groups.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-create-dashboard.png)

1. 在**建立安全群組**對話方塊中，輸入安全群組的名稱和描述，然後選擇**確定**。  
![\[Dialog box for creating a security group with fields for name and description.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-create.png)

## 設定 Amazon RDS 安全群組的存取許可
<a name="tkv-set-access-permissions-for-rds-security-group"></a>

根據預設，新的 Amazon RDS 安全群組不提供網路存取。若要啟用對使用安全群組的 Amazon RDS 執行個體的存取，請使用下列程序來設定其存取許可。

**設定 Amazon RDS 安全群組的存取權**

1. 在**安全群組**索引標籤上，從清單檢視中選擇安全群組。如果您的安全群組未出現在清單中，請選擇**重新整理**。如果您的安全群組仍未出現在清單中，請確認您正在檢視正確 AWS 區域的清單。 AWS Toolkit 中的**安全群組**標籤是區域特定的。

   如果沒有出現**安全群組**索引標籤，請在 AWS Explorer 中開啟**資料庫安全群組**子節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視**。

1. 選擇 **Add Permission** (新增許可)。  
![\[Security groups interface showing default and RDS groups with options to add or delete permissions.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-add-permission.png)

    **安全群組**索引標籤上的**新增許可**按鈕

1. 在**新增許可**對話方塊中，您可以使用 CIDR 表示法來指定哪些 IP 地址可以存取 RDS 執行個體，或者您可以指定哪些 EC2 安全群組可以存取 RDS 執行個體。當您選擇 **EC2 安全群組**時，您可以為與 相關聯的所有 EC2 執行個體指定 AWS 帳戶 存取權，也可以從下拉式清單中選擇 EC2 安全群組。  
![\[Add Permission dialog with options for CIDR/IP or EC2 Security Group access to RDS instance.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-cidr-ec2.png)

   Toolkit AWS 會嘗試判斷您的 IP 地址，並使用適當的 CIDR 規格自動填入對話方塊。不過，如果您的電腦透過防火牆存取網際網路，則 Toolkit 決定的 CIDR 可能不準確。

# 從 AWS Explorer 使用 Amazon SimpleDB
<a name="tkv-simpleDB"></a>

AWS Explorer 會顯示與作用中 AWS 帳戶相關聯的所有 Amazon SimpleDB 網域。您可以從 AWS Explorer 建立或刪除 Amazon SimpleDB 網域。

![\[AWS Explorer showing Amazon SimpleDB domains with options to create, refresh, or delete.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-explorer.png)


 *執行查詢和編輯結果* 

AWS Explorer 也可以顯示 Amazon SimpleDB 網域的網格檢視，您可以從中檢視該網域中的項目、屬性和值。您可以執行查詢，只顯示網域項目的子集。透過按兩下儲存格，您可以編輯該項目對應屬性的值。您也可以將新的屬性新增至網域。

此處顯示的網域來自 隨附的 Amazon SimpleDB 範例 適用於 .NET 的 AWS SDK。

![\[Database table showing sample items with attributes like name, category, color, and size.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-grid-view.png)


若要執行查詢，請在網格檢視上方的文字方塊中編輯查詢，然後選擇**執行**。檢視會經過篩選，只顯示符合查詢的項目。

![\[SQL query execution interface with filtered results showing item details.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-query.png)


若要編輯與屬性相關聯的值，請按兩下對應的儲存格，編輯值，然後選擇**遞交變更**。

 *新增屬性* 

若要新增屬性，請在檢視頂端選擇**新增屬性**。

![\[Dialog box for adding an attribute named "Discount" with a note about data commitment.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-new-attr-dlg.png)


若要讓 屬性成為網域的一部分，您必須為它新增一個值到至少一個項目，然後選擇**遞交變更**。

![\[Database query result showing one item with "Siamese" color and "Cathair Sweater" name.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-new-attr-commit.png)


 *分頁查詢結果* 

檢視底部有三個按鈕。

![\[Three buttons showing rewind, fast forward, and refresh icons.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-paginate-export.png)


前兩個按鈕提供查詢結果的分頁。若要顯示結果的額外頁面，請選擇第一個按鈕。若要顯示額外的十頁結果，請選擇第二個按鈕。在這種情況下，如果頁面包含在查詢中，則頁面等於 100 列或 LIMIT 值指定的結果數目。

 *匯出至 CSV* 

最後一個按鈕會將目前結果匯出至 CSV 檔案。

# 從 AWS Explorer 使用 Amazon SQS
<a name="tkv-sqs"></a>

Amazon Simple Queue Service (Amazon SQS) 是一種靈活的佇列服務，可讓訊息在軟體應用程式中的不同執行程序之間傳遞。Amazon SQS 佇列位於 AWS 基礎設施中，但傳送訊息的程序可以位於本機、Amazon EC2 執行個體或其中的某些組合。Amazon SQS 非常適合用於協調跨多部電腦發佈工作。

Toolkit for Visual Studio 可讓您檢視與作用中帳戶相關聯的 Amazon SQS 佇列、建立和刪除佇列，以及透過佇列傳送訊息。（透過作用中帳戶，我們是指在 AWS Explorer 中選取的帳戶。)

如需 Amazon SQS 的詳細資訊，請參閱 AWS 文件中的 [SQS 簡介](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/IntroductionArticle.html)。

## 建立佇列
<a name="tkv-sqs-create-queue"></a>

您可以從 AWS Explorer 建立 Amazon SQS 佇列。佇列的 ARN 和 URL 將根據作用中帳戶的帳號和您在建立時指定的佇列名稱而定。

 *建立佇列* 

1. 在 AWS Explorer 中，開啟 **Amazon SQS** 節點的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立佇列**。

1. 在**建立佇列**對話方塊中，指定佇列名稱、預設可見性逾時和預設交付延遲。預設可見性逾時和預設交付延遲以秒為單位指定。預設可見性逾時是指定程序取得訊息後，潛在接收程序看不到訊息的時間量。預設交付延遲是從訊息傳送到第一次讓潛在接收程序可見的時間量。

1. 選擇**確定**。新的佇列會在 **Amazon SQS** 節點下顯示為子節點。

## 刪除佇列
<a name="tkv-sqs-delete-queue"></a>

您可以從 AWS Explorer 刪除現有的佇列。如果您刪除佇列，則與佇列相關聯的任何訊息都不再可用。

 *刪除佇列* 

1. 在 AWS Explorer 中，開啟您要刪除之佇列的內容 （按一下滑鼠右鍵） 功能表，然後選擇**刪除**。

## 管理佇列屬性
<a name="tkv-sqs-manage-queue"></a>

您可以檢視和編輯 AWS Explorer 中顯示的任何佇列的屬性。您也可以從此屬性檢視傳送訊息至佇列。

 *管理佇列屬性* 
+ 在 AWS Explorer 中，開啟您要管理其屬性之佇列的內容 （按一下滑鼠右鍵） 選單，然後選擇**檢視佇列**。

  從佇列屬性檢視中，您可以編輯可見性逾時、訊息大小上限、訊息保留期和預設交付延遲。傳送訊息時，預設的交付延遲可以覆寫。在下列螢幕擷取畫面中，隱藏的文字是佇列 ARN 和 URL 的帳號元件。

![\[AWS SQS queue details showing configuration settings and message sampling table.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-sqs-queue-properties.png)


## 傳送訊息至佇列
<a name="tkv-sqs-message-send"></a>

從佇列屬性檢視中，您可以將訊息傳送至佇列。

 *傳送訊息* 

1. 在佇列屬性檢視頂端，選擇**傳送**按鈕。

1. 輸入訊息。（選用） 輸入將覆寫佇列預設交付延遲的交付延遲。在下列範例中，我們已以 240 秒的值覆寫延遲。選擇**確定**。  
![\[Send Message dialog box with message body input and delivery delay option.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-sqs-send-message.png)

1. 等待大約 240 秒 （四分鐘）。訊息將出現在佇列屬性檢視之 的訊息**取樣**區段中。  
![\[Queue properties view showing message details, including timestamp and sampling information.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/tkv-sqs-message-sent.png)

   佇列屬性檢視中的時間戳記是您選擇**傳送**按鈕的時間。它不包括延遲。因此，訊息出現在佇列中且可供接收者使用的時間可能晚於此時間戳記。時間戳記會顯示在您電腦的本機時間。

# 身分和存取權管理
<a name="tkv-iam"></a>

AWS Identity and Access Management (IAM) 可讓您更安全地管理對 AWS 帳戶 和 資源的存取。透過 IAM，您可以在主要 (*根*) 中建立多個使用者 AWS 帳戶。這些使用者可以擁有自己的登入資料：密碼、存取金鑰 ID 和私密金鑰，但所有 IAM 使用者都共用單一帳戶號碼。

您可以將 IAM 政策連接至使用者，以管理每個 IAM 使用者的資源存取層級。例如，您可以將政策連接至 IAM 使用者，該使用者可讓使用者存取帳戶中的 Amazon S3 服務和相關資源，但不提供任何其他服務或資源的存取權。

如需更有效率的存取管理，您可以建立 IAM 群組，這是使用者的集合。當您將政策連接到群組時，它將影響身為該群組成員的所有使用者。

除了在使用者和群組層級管理許可之外，IAM 還支援 IAM 角色的概念。就像使用者和群組一樣，您可以將政策連接到 IAM 角色。然後，您可以將 IAM 角色與 Amazon EC2 執行個體建立關聯。在 EC2 執行個體上執行的應用程式可以使用 AWS IAM 角色提供的許可存取 。如需搭配 Toolkit 使用 IAM 角色的詳細資訊，請參閱[建立 IAM 角色](#create-an-iam-role-tkv)。如需 IAM 的詳細資訊，請參閱 [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/Welcome.html)。

## 建立和設定 IAM 使用者
<a name="tkv-create-an-iam-user"></a>

IAM 使用者可讓您授予其他人存取您的 的權限 AWS 帳戶。由於您可以將政策連接至 IAM 使用者，因此您可以精確限制 IAM 使用者可存取的資源，以及他們可以在這些資源上執行的操作。

最佳實務是，存取 的所有使用者都 AWS 帳戶 應該以 IAM 使用者身分執行此操作，即使是帳戶擁有者也是如此。這可確保如果其中一個 IAM 使用者的登入資料遭到入侵，只有這些登入資料可以停用。您不需要停用或變更帳戶的根登入資料。

從 Toolkit for Visual Studio 中，您可以透過將 IAM 政策連接至使用者，或將使用者指派給群組，將許可指派給 IAM 使用者。指派給群組的 IAM 使用者會從連接到群組的政策衍生其許可。如需詳細資訊，請參閱[建立 IAM 群組](#create-an-iam-group-tkv)，以及[新增 IAM 使用者到 IAM 群組](#add-an-iam-user-to-an-iam-group-tkv)。

從 Toolkit for Visual Studio 中，您也可以為 IAM 使用者產生 AWS 登入資料 （存取金鑰 ID 和私密金鑰）。如需詳細資訊，請參閱[為 IAM 使用者產生登入](#generate-credentials-for-an-iam-user-tkv)資料 

![\[Dialog box for generating AWS credentials with options to create access key and download.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/inline-refresh-button.png)


Toolkit for Visual Studio 支援指定 IAM 使用者登入資料，以便透過 AWS Explorer 存取 服務。由於 IAM 使用者通常無法完整存取所有 Amazon Web Services，因此可能無法使用 AWS Explorer 中的某些功能。如果您在作用中帳戶為 IAM 使用者時，使用 AWS Explorer 變更資源，然後將作用中帳戶切換至根帳戶，則在您重新整理 AWS Explorer 中的檢視之前，可能不會顯示變更。若要重新整理檢視，請選擇重新整理 () 按鈕。

如需有關如何從 設定 IAM 使用者的資訊 AWS 管理主控台，請參閱《IAM 使用者指南》中的[使用使用者和群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html)。

 *建立 IAM 使用者* 

1. 在 AWS Explorer 中，展開**AWS Identity and Access Management**節點，開啟**使用者**的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立使用者**。

1. 在**建立使用者**對話方塊中，輸入 IAM 使用者的名稱，然後選擇**確定**。這是 IAM [易記名稱](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)。如需有關 IAM 使用者名稱限制的資訊，請參閱 [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)。  
![\[Create User dialog box with Name field and OK/Cancel buttons.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-user-create-dlg.png)

新使用者會在**AWS Identity and Access Management**節點下的 **使用者** 下顯示為子節點。

如需如何建立政策並將其連接至使用者的詳細資訊，請參閱[建立 IAM 政策](#tkv-create-an-iam-policy)。

## 建立 IAM 群組
<a name="create-an-iam-group-tkv"></a>

群組提供將 IAM 政策套用至使用者集合的方法。如需有關如何管理 IAM 使用者和群組的資訊，請參閱《IAM 使用者指南》中的[使用使用者和群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html)。

 *建立 IAM 群組* 

1. 在 AWS Explorer 的 **Identity and Access Management** 下，開啟**群組**的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立群組**。

1. 在**建立群組**對話方塊中，輸入 IAM 群組的名稱，然後選擇**確定**。  
![\[Dialog box for creating a group with a name field and OK and Cancel buttons.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-group-create-dlg.png)

新的 IAM 群組會出現在 **Identity and Access Management** 的 **Groups** 子節點下。

如需如何建立政策並將其連接至 IAM 群組的詳細資訊，請參閱[建立 IAM 政策](#tkv-create-an-iam-policy)。

## 將 IAM 使用者新增至 IAM 群組
<a name="add-an-iam-user-to-an-iam-group-tkv"></a>

屬於 IAM 群組成員的 IAM 使用者會從連接到群組的政策衍生存取許可。IAM 群組的目的是讓您更輕鬆地管理 IAM 使用者集合的許可。

如需連接至 IAM 群組的政策如何與連接至該 IAM 群組成員之 IAM 使用者的政策互動的相關資訊，請參閱《[IAM 使用者指南》中的管理 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)。

在 AWS Explorer 中，您可以從使用者子節點將 IAM **使用者**新增至 IAM 群組，而不是**群組**子節點。

 *將 IAM 使用者新增至 IAM 群組* 

1. 在 AWS Explorer 的 **Identity and Access Management** 下，開啟**使用者**的內容 （按一下滑鼠右鍵） 選單，然後選擇**編輯**。  
![\[User interface for managing IAM groups, showing available and assigned groups for myIAMUser.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-group-assign.png)

1. **群組**索引標籤的左側窗格會顯示可用的 IAM 群組。右側窗格會顯示指定 IAM 使用者已經是成員的群組。

   若要將 IAM 使用者新增至群組，請在左側窗格中選擇 IAM 群組，然後選擇 **>** 按鈕。

   若要從群組中移除 IAM 使用者，請在右窗格中選擇 IAM 群組，然後選擇 **<** 按鈕。

   若要將 IAM 使用者新增至所有 IAM 群組，請選擇 **>>** 按鈕。同樣地，若要從所有群組中移除 IAM 使用者，請選擇 **<<** 按鈕。

   若要選擇多個群組，請依序選擇它們。您不需要按住 Control 金鑰。若要從您的選擇中清除群組，只需再次選擇即可。

1. 當您完成將 IAM 使用者指派給 IAM 群組後，請選擇**儲存**。

## 產生 IAM 使用者的登入資料
<a name="generate-credentials-for-an-iam-user-tkv"></a>

透過 Toolkit for Visual Studio，您可以產生用於進行 API 呼叫的存取金鑰 ID 和私密金鑰 AWS。您也可以透過 Toolkit 指定這些金鑰來存取 Amazon Web Services。如需如何指定登入資料以搭配 Toolkit 使用的詳細資訊，請參閱 網頁。如需如何安全地處理登入資料的詳細資訊，請參閱[管理 AWS 存取金鑰的最佳實務](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)。

Toolkit 無法用來產生 IAM 使用者的密碼。

 *為 IAM 使用者產生登入資料* 

1. 在 AWS Explorer 中，開啟 IAM 使用者的內容 （按一下滑鼠右鍵） 選單，然後選擇**編輯**。  
![\[IAM 使用者 details window showing Access Keys tab with two active keys and their creation dates.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-user-creds-list.png)

1. 若要產生登入資料，請在**存取金鑰**索引標籤上，選擇**建立**。

   您可以為每位 IAM 使用者產生最多兩組登入資料。如果您已有兩組登入資料，且需要建立額外的集合，則必須刪除其中一個現有的集合。  
![\[Access Keys dialog showing Access Key ID and Secret Access Key fields with an option to save locally.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-user-creds-create.png)

   如果您希望 Toolkit 將秘密存取金鑰的加密副本儲存到本機磁碟機，請選取**本機儲存秘密存取金鑰。 AWS 只有在建立時才會傳回秘密存取金鑰**。您也可以從對話方塊複製私密存取金鑰，並將其儲存在安全的位置。

1. 選擇**確定**。

產生登入資料後，您可以從**存取金鑰**索引標籤檢視登入資料。如果您選取選項讓 Toolkit 在本機儲存私密金鑰，則會顯示在此處。

![\[Access Keys tab showing an active key with ID, status, creation date, and secret key options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-user-show-creds.png)


如果您自行儲存私密金鑰，並希望 Toolkit 儲存私密金鑰，請在**私密存取金鑰**方塊中輸入私密存取金鑰，然後選取**在本機儲存私密存取金鑰**。

若要停用登入資料，請選擇**設為非作用中**。（如果您懷疑登入資料已洩露，您可以執行此操作。 如果您收到安全憑證的保證，您可以重新啟用憑證。)

## 建立 IAM 角色
<a name="create-an-iam-role-tkv"></a>

Toolkit for Visual Studio 支援 IAM 角色的建立和組態。就像使用者和群組一樣，您可以將政策連接到 IAM 角色。然後，您可以將 IAM 角色與 Amazon EC2 執行個體建立關聯。與 EC2 執行個體的關聯是透過*執行個體描述檔*處理，這是角色的邏輯容器。在 EC2 執行個體上執行的應用程式會自動獲得與 IAM 角色相關聯之政策指定的存取層級。即使應用程式尚未指定其他 AWS 登入資料，也是如此。

例如，您可以建立角色並將政策連接至該角色，以限制只能存取 Amazon S3。將此角色與 EC2 執行個體建立關聯後，您可以在該執行個體上執行應用程式，而應用程式將可存取 Amazon S3，但不能存取任何其他服務或資源。這種方法的優點是，您不需要擔心在 EC2 執行個體上安全地傳輸和儲存 AWS 憑證。

如需 IAM 角色的詳細資訊，請參閱《[IAM 使用者指南》中的使用 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html)。如需 AWS 使用與 Amazon EC2 執行個體相關聯的 IAM 角色存取 的程式範例，請前往 [Java](https://docs.aws.amazon.com//sdk-for-java/latest/developer-guide/ec2-iam-roles.html)、.[NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-hosm.html)、[PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_assume_role.html) 和 Ruby 的 AWS 開發人員指南 ([使用 IAM 設定登入](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/setup-config.html#aws-ruby-sdk-credentials-iam)資料、[建立 IAM 角色](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/iam-example-create-role.html)和[使用 IAM 政策](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/iam-example-working-with-policies.html))。

 *建立 IAM 角色* 

1. 在 AWS Explorer 的 **Identity and Access Management** 下，開啟**角色**的內容 （按一下滑鼠右鍵） 選單，然後選擇**建立角色**。

1. 在**建立角色**對話方塊中，輸入 IAM 角色的名稱，然後選擇**確定**。  
![\[Dialog box for creating a role with a name field and OK/Cancel buttons.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-role-create-dlg.png)

新的 IAM 角色會出現在 **Identity and Access Management** **中的角色**下。

如需如何建立政策並將其連接至角色的詳細資訊，請參閱[建立 IAM 政策](#tkv-create-an-iam-policy)。

## 建立 IAM 政策
<a name="tkv-create-an-iam-policy"></a>

政策是 IAM 的基礎。政策可以與 IAM *實體*建立關聯，例如使用者、群組或角色。政策會指定為使用者、群組或角色啟用的存取層級。

 *建立 IAM 政策* 

在 AWS Explorer 中，展開**AWS Identity and Access Management**節點，然後展開您要連接政策的實體類型 (**群組**、**角色**或**使用者**) 節點。例如，開啟 IAM 角色的內容選單，然後選擇**編輯**。

與角色相關聯的索引標籤會出現在 AWS Explorer 中。選擇**新增政策**連結。

在**新政策名稱**對話方塊中，輸入政策的名稱 （例如，s3-access)。

![\[Dialog box for entering a new policy name, with "s3-access" typed in the input field.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-policy-create-dlg.png)


在政策編輯器中，新增政策陳述式以指定要提供給角色的存取層級 （在此範例中，為與政策相關聯的 winapp-instance-role-2。在此範例中，政策提供 Amazon S3 的完整存取權，但無法存取任何其他資源。

![\[Policy editor interface showing allowed actions for Amazon S3 in the winapp-instance-role-2 role.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/iam-policy-specify.png)


如需更精確的存取控制，您可以在政策編輯器中展開子節點，以允許或不允許與 Amazon Web Services 相關聯的動作。

編輯政策後，請選擇**儲存**連結。

# AWS Lambda
<a name="lambda-index"></a>

使用 開發和部署以 .NET Core 為基礎的 C\$1 Lambda 函數 AWS Toolkit for Visual Studio。 AWS Lambda 是一種運算服務，可讓您執行程式碼，而無需佈建或管理伺服器。Toolkit for Visual Studio 包含適用於 Visual Studio 的 AWS Lambda .NET Core 專案範本。

如需 的詳細資訊 AWS Lambda，請參閱 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 開發人員指南。

如需 .NET Core 的詳細資訊，請參閱 Microsoft [.NET Core](https://docs.microsoft.com/en-us/dotnet/articles/core/) 指南。如需 Windows、macOS 和 Linux 平台的 .NET Core 先決條件和安裝說明，請參閱 [.NET Core Downloads](https://www.microsoft.com/net/download/core)。

下列主題說明如何 AWS Lambda 使用 Toolkit for Visual Studio 來使用 。

**Topics**
+ [

# 基本 AWS Lambda 專案
](lambda-creating-project-in-visual-studio.md)
+ [

# 基本 AWS Lambda 專案建立 Docker 影像
](lambda-creating-project-docker-image.md)
+ [

# 教學課程：使用 建置和測試無伺服器應用程式 AWS Lambda
](lambda-build-test-severless-app.md)
+ [

# 教學課程：建立 Amazon Rekognition Lambda 應用程式
](lambda-rekognition-example.md)
+ [

# 教學課程：搭配 使用 Amazon Logging Framework AWS Lambda 來建立應用程式日誌
](cw-log-frameworks.md)

# 基本 AWS Lambda 專案
<a name="lambda-creating-project-in-visual-studio"></a>

您可以在 中使用 Microsoft .NET Core 專案範本建立 Lambda 函數 AWS Toolkit for Visual Studio。

## 建立 Visual Studio .NET Core Lambda 專案
<a name="create-a-visual-studio-net-core-lam-project"></a>

您可以使用 Lambda-Visual Studio 範本和藍圖來協助加速專案初始化。Lambda 藍圖包含預先編寫的函數，可簡化彈性專案基礎的建立。

**注意**  
Lambda 服務對不同的套件類型具有資料限制。如需資料限制的詳細資訊，請參閱《[Lambda 使用者指南》中的 Lambda 配額](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)主題。 *AWS *

**在 Visual Studio 中建立 Lambda 專案**

1. 從 Visual Studio 展開**檔案**功能表，展開**新增**，然後選擇**專案**。

1. 在**新增專案**對話方塊中，將**語言**、**平台**和**專案類型**下拉式方塊設定為「全部」，然後在**aws lambda****搜尋**欄位中輸入 。選擇 **AWS Lambda 專案 (.NET Core - C\$1)** 範本。

1. 在**名稱**欄位中，輸入 **AWSLambdaSample**，指定所需的檔案**位置**，然後選擇**建立**以繼續。

1. 從**選取藍圖**頁面，選取**空白函數**藍圖，然後選擇**完成**以建立 Visual Studio 專案。

## 檢閱專案檔案
<a name="review-the-project-files"></a>

有兩個專案檔案需要檢閱： `aws-lambda-tools-defaults.json`和 `Function.cs`。

下列範例顯示 檔案，該`aws-lambda-tools-defaults.json`檔案會自動建立為專案的一部分。您可以使用此檔案中的欄位來設定建置選項。

**注意**  
 Visual Studio 中的專案範本包含許多不同的欄位，請注意下列事項：  
**function-handler**：指定 Lambda 函數執行時執行的方法
在**函數處理常式**欄位中指定值會在發佈精靈中預先填入該值。
如果您重新命名函數、類別或組件，則還需要更新 `aws-lambda-tools-defaults.json` 檔案中的對應欄位。

```
{
  "Information": [
    "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.",
    "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.",
    "dotnet lambda help",
    "All the command line options for the Lambda command can be specified in this file."
  ],
  "profile": "default",
  "region": "us-west-2",
  "configuration": "Release",
  "function-architecture": "x86_64",
  "function-runtime": "dotnet8",
  "function-memory-size": 512,
  "function-timeout": 30,
  "function-handler": "AWSLambdaSample::AWSLambdaSample.Function::FunctionHandler"
}
```

檢查 `Function.cs` 檔案。 `Function.cs`定義 c\$1 函數以公開為 Lambda 函數。`FunctionHandler` 這是 Lambda 函數執行時執行的 Lambda 功能。在此專案中，有一個已定義的函數：`FunctionHandler`，它會`ToUpper()`呼叫輸入文字。

您的專案現在已準備好發佈至 Lambda。

## 發佈至 Lambda
<a name="publish-to-lam"></a>

下列程序和映像示範如何使用 將函數上傳至 Lambda AWS Toolkit for Visual Studio。

![\[叫用測試函數頁面\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/uploadnet8.png)


**將您的函數發佈至 Lambda**

1. 透過展開**檢視**並選擇 AWS Explorer 導覽至 **AWS Explorer**。

1. 在**解決方案總管**中，開啟您要發佈之專案的內容選單 （按一下滑鼠右鍵），然後選擇**發佈至 AWS Lambda** 以開啟**上傳 Lambda 函數**視窗。

1. 從**上傳 Lambda 函數**視窗中，完成下列欄位：

   1. **套件類型**：選擇 **Zip**。ZIP 檔案將作為建置程序的結果建立，並將上傳到 Lambda。或者，您可以選擇**套件類型** **Image**。[教學課程：基本 Lambda 專案建立 Docker 映像](lambda-creating-project-docker-image.md)說明如何使用**套件類型** 進行發佈**Image**。

   1. **Lambda 執行期**：從下拉式選單中選擇您的 Lambda 執行期。

   1. **架構**：選取您偏好架構的放射狀。

   1. **函數名稱**：選取**建立新函數**的放射狀，然後輸入 Lambda 執行個體的顯示名稱。 AWS Explorer 和 AWS 管理主控台 都會參考此名稱。

   1. **處理常**式：使用此欄位來指定函數處理常式。例如：**AWSLambdaSample::AWSLambdaSample.Function::FunctionHandler**。

   1. *（選用） ***描述**：輸入要與您的執行個體一起顯示的描述性文字，從 內 AWS 管理主控台。

   1. **組態**：從下拉式選單中選擇您偏好的組態。

   1. **架構**：從下拉式選單中選擇您偏好的架構。

   1. **儲存設定**：選取此方塊，將您目前的設定儲存`aws-lambda-tools-defaults.json`為未來部署的預設值。

   1. 選擇**下一步**以繼續進階**函數詳細資訊**視窗。

1. 在**進階函數詳細資訊**視窗中，完成下列欄位：

   1. **角色名稱**：選擇與您的帳戶相關聯的角色。此角色會為 函數中程式碼所做的任何 AWS 服務呼叫提供臨時登入資料。如果您沒有角色，請在下拉式清單中捲動以**根據 AWS 受管政策尋找新角色**，然後選擇 **AWSLambdaBasicExecutionRole**。此角色具有最低的存取許可。
**注意**  
您的帳戶必須具有執行 IAM ListPolicies 動作的許可，否則**角色名稱**清單將為空白，您將無法繼續。

   1. *（選用）* 如果您的 Lambda 函數存取 Amazon VPC 上的資源，請選取子網路和安全群組。

   1. *（選用）* 設定 Lambda 函數所需的任何環境變數。金鑰會由免費的預設服務金鑰自動加密。或者，您可以指定需要付費的 AWS KMS 金鑰。[KMS](https://aws.amazon.com/kms/) 是一項受管服務，可用來建立和控制用來加密資料的加密金鑰。如果您有 AWS KMS 金鑰，您可以從清單中選取它。

1. 選擇**上傳**以開啟**上傳函數**視窗，然後開始上傳程序。
**注意**  
**上傳函數**頁面會在函數上傳時顯示 AWS。若要在上傳後保持精靈開啟，以便您可以檢視報告，請在上傳完成之前清除**表單底部的成功完成時自動關閉精靈**。  
函數上傳後，您的 Lambda 函數即為即時。**函數：**檢視頁面隨即開啟，並顯示新的 Lambda 函數組態。

1. 從**測試函數**索引標籤`hello lambda!`，在文字輸入欄位中輸入 ，然後選擇**叫用**以手動叫用您的 Lambda 函數。您的文字會顯示在**回應**索引標籤中，並轉換為大寫。
**注意**  
您可以隨時在節點下的 **AWS Explorer** 中按兩下已部署的執行個體，以重新開啟 **函數：**檢視**AWS Lambda**。  
![\[叫用測試函數頁面\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/invokeBasic.PNG)

1. *（選用）* 若要確認您已成功發佈 Lambda 函數，請登入 AWS 管理主控台 ，然後選擇 Lambda。主控台會顯示所有已發佈的 Lambda 函數，包括您剛建立的函數。

## 清除
<a name="cleanup-lam"></a>

如果您不打算繼續使用此範例繼續開發，請刪除您部署的 函數，以免因帳戶中未使用的資源而產生費用。

**注意**  
Lambda 會自動為您監控 Lambda 函數，並透過 Amazon CloudWatch 報告指標。若要監控和疑難排解函數，請參閱《 AWS Lambda 開發人員指南》中的[使用 Amazon CloudWatch 疑難排解和監控 AWS Lambda 函數](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html)主題。

**刪除函數**

1. 從 **AWS Explorer** 展開**AWS Lambda**節點。

1. 用滑鼠右鍵按一下部署的執行個體，然後選擇**刪除**。

# 基本 AWS Lambda 專案建立 Docker 影像
<a name="lambda-creating-project-docker-image"></a>

您可以使用 Toolkit for Visual Studio 將 AWS Lambda 函數部署為 Docker 映像。使用 Docker，您可以更好地控制執行時間。例如，您可以選擇自訂執行時間，例如 .NET 8.0。您以與任何其他容器映像相同的方式部署 Docker 映像。本教學緊密模擬[教學課程：基本 Lambda 專案](lambda-creating-project-in-visual-studio.md)，有兩個差異：
+ Dockerfile 包含在專案中。
+ 已選擇替代發佈組態。

如需 Lambda 容器映像的相關資訊，請參閱《 *AWS Lambda 開發人員指南*》中的 [Lambda 部署套件](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)。

如需使用 Lambda 的詳細資訊 AWS Toolkit for Visual Studio，請參閱《 使用者指南[》中的使用 AWS Lambda 範本 AWS Toolkit for Visual Studio](lambda-index.md)主題。

## 建立 Visual Studio .NET Core Lambda 專案
<a name="create-a-visual-studio-net-core-lam-project"></a>

您可以使用 Lambda Visual Studio 範本和藍圖來協助加速專案初始化。Lambda 藍圖包含預先編寫的函數，可簡化彈性專案基礎的建立。

**建立 Visual Studio .NET Core Lambda 專案**

1. 從 Visual Studio 展開**檔案**功能表，展開**新增**，然後選擇**專案**。

1. 在**新增專案**對話方塊中，將**語言**、**平台**和**專案類型**下拉式方塊設定為「全部」，然後在**aws lambda****搜尋**欄位中輸入 。選擇 **AWS Lambda 專案 (.NET Core - C\$1)** 範本。

1. 在**專案名稱**欄位中，輸入 **AWSLambdaDocker**，指定檔案**位置**，然後選擇**建立**。

1. 在**選取藍圖**頁面上，選擇 **.NET 8 （容器映像）** 藍圖，然後選擇**完成**以建立 Visual Studio 專案。您現在可以檢閱專案的結構和程式碼。

## 檢閱專案檔案
<a name="review-the-project-files"></a>

下列各節會檢查 **.NET 8 （容器映像）** 藍圖建立的三個專案檔案：

1. `Dockerfile`

1. `aws-lambda-tools-defaults.json`

1. `Function.cs`

### 1. Dockerfile
<a name="dockerfile"></a>

會`Dockerfile`執行三個主要動作：
+ `FROM`：建立要用於此映像的基本映像。此基礎映像提供 .NET 執行期、Lambda 執行期，以及提供 Lambda .NET 程序進入點的 Shell 指令碼。
+ `WORKDIR`：將影像的內部工作目錄建立為 `/var/task`。
+ `COPY`： 會將建置程序產生的檔案從其本機位置複製到映像的工作目錄。

以下是您可以指定的選用`Dockerfile`動作：
+ `ENTRYPOINT`：基礎映像已包含 `ENTRYPOINT`，這是啟動映像時執行的啟動程序。如果您想要指定自己的 ，則您要覆寫該基本進入點。
+ `CMD`：指示您想要執行 AWS 的自訂程式碼。它預期您的自訂方法具有完整名稱。這行需要直接包含在 Dockerfile 中，也可以在發佈過程中指定。

  ```
  # Example of alternative way to specify the Lambda target method rather than during the publish process.
  CMD [ "AWSLambdaDocker::AWSLambdaDocker.Function::FunctionHandler"]
  ```

以下是 .NET 8 （容器映像） 藍圖建立的 Dockerfile 範例。

```
FROM public.ecr.aws/lambda/dotnet:8

WORKDIR /var/task

# This COPY command copies the .NET Lambda project's build artifacts from the host machine into the image. 
# The source of the COPY should match where the .NET Lambda project publishes its build artifacts. If the Lambda function is being built 
# with the AWS .NET Lambda Tooling, the `--docker-host-build-output-dir` switch controls where the .NET Lambda project
# will be built. The .NET Lambda project templates default to having `--docker-host-build-output-dir`
# set in the aws-lambda-tools-defaults.json file to "bin/Release/lambda-publish".
#
# Alternatively Docker multi-stage build could be used to build the .NET Lambda project inside the image.
# For more information on this approach checkout the project's README.md file.
COPY "bin/Release/lambda-publish"  .
```

### 2. aws-lambda-tools-defaults.json
<a name="aws-lambda-tools-defaults"></a>

`aws-lambda-tools-defaults.json` 檔案用於指定 Toolkit for Visual Studio 部署精靈和 .NET Core CLI 的預設值。下列清單說明您可以在 `aws-lambda-tools-defaults.json` 檔案中設定的欄位。
+ `profile`：設定您的 AWS 設定檔。
+ `region`：設定儲存資源 AWS 的區域。
+ `configuration`：設定用於發佈函數的組態。
+ `package-type`：將部署套件類型設定為容器映像或 .zip 檔案封存。
+ `function-memory-size`：設定函數的記憶體配置，以 MB 為單位。
+ `function-timeout`：逾時是 Lambda 函數可以執行的秒數上限。您可以以 1 秒的增量調整，直到最大值達到 15 分鐘。
+ `docker-host-build-output-dir`：設定與 中指示相關的建置程序輸出目錄`Dockerfile`。
+ `image-command`： 是您方法的完整名稱，也就是您希望 Lambda 函數執行的程式碼。語法為：`{Assembly}::{Namespace}.{ClassName}::{MethodName}`。如需詳細資訊，請參閱[處理常式簽章](https://docs.aws.amazon.com/lambda/latest/dg/csharp-handler.html#csharp-handler-signatures)。在此設定會稍後在 Visual Studio 的發佈精靈中`image-command`預先填入此值。

以下是 .NET 8 （容器映像） 藍圖所建立 aws-lambda-tools-defaults.json 的範例。

```
{
  "Information": [
    "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.",
    "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.",
    "dotnet lambda help",
    "All the command line options for the Lambda command can be specified in this file."
  ],
  "profile": "default",
  "region": "us-west-2",
  "configuration": "Release",
  "package-type": "image",
  "function-memory-size": 512,
  "function-timeout": 30,
  "image-command": "AWSLambdaDocker::AWSLambdaDocker.Function::FunctionHandler",
  "docker-host-build-output-dir": "./bin/Release/lambda-publish"
}
```

### 3. Function.cs
<a name="w2aac15c45c16c17c21"></a>

`Function.cs` 檔案會定義要公開為 Lambda 函數的 c\$1 函數。`FunctionHandler` 是在 Lambda 函數執行時執行的 Lambda 功能。在此專案中， `ToUpper()` 會`FunctionHandler`呼叫輸入文字。

## 發佈至 Lambda
<a name="publish-to-lam"></a>

建置程序產生的 Docker 映像會上傳至 Amazon Elastic Container Registry (Amazon ECR)。Amazon ECR 是全受管的 Docker 容器登錄檔，可用來存放、管理和部署 Docker 容器映像。Amazon ECR 託管映像，然後 Lambda 會參考該映像，以在調用時提供程式設計的 Lambda 功能。

**將您的函數發佈至 Lambda**

1. 從**解決方案總管**開啟專案的內容選單 （按一下滑鼠右鍵），然後選擇**發佈至 AWS Lambda**以開啟**上傳 Lambda 函數**視窗。

1. 從**上傳 Lambda 函數**頁面，執行下列動作：  
![\[將影像型 Lambda 函數發佈至 的上傳畫面 AWS\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-docker-03192024.png)

   1.  對於**套件類型**， **Image** 已自動選取為**套件類型**，因為發佈精靈在您的專案`Dockerfile`中偵測到 。

   1. 在**函數名稱**中，輸入 Lambda 執行個體的顯示名稱。此名稱是 Visual Studio 中 AWS Explorer 和 中顯示的參考名稱 AWS 管理主控台。

   1.  在**描述**中，輸入要在 中與您的執行個體一起顯示的文字 AWS 管理主控台。

   1. 在 **Image Command** 中，輸入您要 Lambda 函數執行之方法的完整路徑： **AWSLambdaDocker::AWSLambdaDocker.Function::FunctionHandler**
**注意**  
此處輸入的任何方法名稱都會覆寫 Dockerfile 內的任何 CMD 指令。只有在您的 `Dockerfile`包含 `CMD`以指示如何啟動 Lambda 函數時，輸入 **Image Command** 才為選用。

   1. 在**映像儲存庫**中，輸入新的或現有 Amazon Elastic Container Registry 的名稱。建置程序建立的 Docker 映像會上傳至此登錄檔。正在發佈的 Lambda 定義將參考該 Amazon ECR 映像。

   1.  在**映像標籤**中，輸入 Docker 標籤以與儲存庫中的映像建立關聯。

   1. 選擇**下一步**。

1. 在**進階函數詳細資訊**頁面上，在**角色名稱**中選擇與您的帳戶相關聯的角色。角色用於為 函數中程式碼所做的任何 Amazon Web Services 呼叫提供臨時登入資料。如果您沒有角色，**請根據 AWS 受管政策選擇新角色**，然後選擇 **AWSLambdaBasicExecutionRole**。
**注意**  
您的帳戶必須具有執行 IAM ListPolicies 動作的許可，否則**角色名稱**清單將為空白。

1. 選擇**上傳**以開始上傳和發佈程序。
**注意**  
**上傳函數**頁面會在函數上傳時顯示。發佈程序接著會根據組態參數建置映像、視需要建立 Amazon ECR 儲存庫、將映像上傳至儲存庫，以及使用該映像建立參考該儲存庫的 Lambda。  
上傳函數後，**函數**頁面會開啟並顯示新的 Lambda 函數組態。

1. 若要手動叫用 Lambda 函數，請在**測試函數**索引標籤上，`hello image based lambda`在請求任意文字輸入欄位中輸入 ，然後選擇**叫用**。轉換為大寫的文字將顯示在**回應**中。  
![\[已發佈函數檢視頁面的測試函數索引標籤具有按鈕，可手動叫用 Lambda 方法。\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/lambda-invoke-docker-03192024.png)

1. 若要檢視儲存庫，請在 **AWS Explorer** 的 **Amazon Elastic Container Service** 下，選擇**儲存庫**。

   您可以隨時在節點下的 **AWS Explorer** 中按兩下已部署的執行個體，以重新開啟 **函數：**檢視**AWS Lambda**。
**注意**  
如果您的 AWS Explorer 視窗未開啟，您可以透過**檢視** -> **AWS Explorer** 將其停駐

1. 請注意組態索引標籤上的其他特定影像**組態**選項。此標籤提供覆寫 Dockerfile `ENTRYPOINT`中`WORKDIR`可能已指定的 `CMD`、 和 的方法。**描述**是您在上傳/發佈期間輸入的描述 （如果有的話）。

## 清除
<a name="cleanup-lam"></a>

如果您不會繼續使用此範例繼續開發，請記得刪除已部署的 函數和 ECR 映像，這樣您就不會因帳戶中未使用的資源而收到費用。
+ 在節點下 **AWS Explorer** 中部署的執行個體上按一下滑鼠右鍵，即可刪除函數**AWS Lambda**。
+ 您可以在 **Amazon Elastic Container Service** -> 儲存庫下的 **AWS Explorer** 中刪除**儲存庫**。

## 後續步驟
<a name="next-steps-lam"></a>

如需有關建立和測試 Lambda 映像的資訊，請參閱[搭配使用容器映像與 Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html)。

如需容器映像部署、許可和覆寫組態設定的相關資訊，請參閱[設定 函數](https://docs.aws.amazon.com/lambda/latest/dg/configuration-images.html)。

# 教學課程：使用 建置和測試無伺服器應用程式 AWS Lambda
<a name="lambda-build-test-severless-app"></a>

您可以使用 AWS Toolkit for Visual Studio 範本建置無伺服器 Lambda 應用程式。Lambda 專案範本包含一個用於**AWS 無伺服器應用程式的**範本，這是[AWS 無伺服器應用程式模型 (AWS SAM)](https://github.com/awslabs/serverless-application-model) 的 AWS Toolkit for Visual Studio 實作。使用此專案類型，您可以開發一組 AWS Lambda 函數，並使用 AWS CloudFormation 來協調部署，並使用任何必要的 AWS 資源將其部署為整個應用程式。

如需設定 的先決條件和資訊 AWS Toolkit for Visual Studio，請參閱 [AWS Toolkit for Visual Studio 中的使用 AWS Lambda 範本](lambda-index.md)。

**Topics**
+ [

## 建立新的無 AWS 伺服器應用程式專案
](#create-a-new-aws-serverless-application-project)
+ [

## 檢閱無伺服器應用程式檔案
](#examine-the-files-in-the-serverless-application)
+ [

## 部署無伺服器應用程式
](#deploy-the-serverless-application)
+ [

## 測試無伺服器應用程式
](#test-the-serverless-application)

## 建立新的無 AWS 伺服器應用程式專案
<a name="create-a-new-aws-serverless-application-project"></a>

AWS 無伺服器應用程式專案使用無伺服器 CloudFormation 範本建立 Lambda 函數。 CloudFormation 範本可讓您定義其他資源，例如資料庫、新增 IAM 角色，以及一次部署多個函數。這與 AWS 專注於開發和部署單一 Lambda 函數的 Lambda 專案不同。

下列程序說明如何建立新的 AWS 無伺服器應用程式專案。

1. 從 Visual Studio 展開**檔案**功能表，展開**新增**，然後選擇**專案**。

1. 在**新增專案**對話方塊中，確保**語言**、**平台**和**專案類型**下拉式方塊設定為「全部...」，然後在**aws lambda****搜尋**欄位中輸入 。

1. 選取 **AWS Serverless Application with Tests (.NET Core - C\$1)** 範本。
**注意**  
**AWS Serverless Application with Tests (.NET Core - C\$1)** 範本可能不會填入結果頂端。

1. 按一下**下一步**以開啟**設定您的新專案**對話方塊。

1. 從**設定您的新專案**對話方塊中，輸入 **ServerlessPowertools** 做為**名稱**，然後根據您的偏好設定完成其餘欄位。選擇**建立**按鈕以繼續至**選取藍圖**對話方塊。

1. 從**選取藍圖**對話方塊中選擇藍圖**的 Powertools AWS Lambda**，然後選擇**完成**以建立 Visual Studio 專案。

## 檢閱無伺服器應用程式檔案
<a name="examine-the-files-in-the-serverless-application"></a>

以下各節詳細說明為您的專案建立的三個無伺服器應用程式檔案：

1. serverless.template

1. Functions.cs

1. aws-lambda-tools-defaults.json

### 1. serverless.template
<a name="blogcs"></a>

`serverless.template` 檔案是宣告無伺服器函數和其他 AWS 資源的 AWS CloudFormation 範本。此專案隨附的 檔案包含單一 Lambda 函數的宣告，該函數將透過 Amazon API Gateway 公開為 `HTTP *Get*`操作。您可以編輯此範本來自訂現有的函數，或新增應用程式所需的更多函數和其他資源。

以下是 `serverless.template` 檔案的範例：

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Transform": "AWS::Serverless-2016-10-31",
  "Description": "An AWS Serverless Application.",
  "Resources": {
    "Get": {
      "Type": "AWS::Serverless::Function",
      "Properties": {
         "Architectures": [
            "x86_64"
            ],
         "Handler": "ServerlessPowertools::ServerlessPowertools.Functions::Get",
         "Runtime": "dotnet8",
         "CodeUri": "",
         "MemorySize": 512,
         "Timeout": 30,
         "Role": null,
         "Policies": [
            "AWSLambdaBasicExecutionRole"
            ],
         "Environment": {
            "Variables": {
               "POWERTOOLS_SERVICE_NAME": "ServerlessGreeting",
               "POWERTOOLS_LOG_LEVEL": "Info",
               "POWERTOOLS_LOGGER_CASE": "PascalCase",
               "POWERTOOLS_TRACER_CAPTURE_RESPONSE": true,
               "POWERTOOLS_TRACER_CAPTURE_ERROR": true,
               "POWERTOOLS_METRICS_NAMESPACE": "ServerlessGreeting"
               }
            },
         "Events": {
            "RootGet": {
               "Type": "Api",
               "Properties": {
                  "Path": "/",
                  "Method": "GET"
                  }
               }
            }
         }
      }
   },
  "Outputs": {
    "ApiURL": {
      "Description": "API endpoint URL for Prod environment",
      "Value": {
        "Fn::Sub": "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/"
      }
    }
  }
}
```

請注意，許多`...AWS:: Serverless::Function...`宣告欄位與 Lambda 專案部署的欄位類似。Powertools 記錄、指標和追蹤是透過下列環境變數設定：
+ POWERTOOLS\$1SERVICE\$1NAME=ServerlessGreeting
+ POWERTOOLS\$1LOG\$1LEVEL=Info
+ POWERTOOLS\$1LOGGER\$1CASE=PascalCase
+ POWERTOOLS\$1TRACER\$1CAPTURE\$1RESPONSE=true
+ POWERTOOLS\$1TRACER\$1CAPTURE\$1ERROR=true
+ POWERTOOLS\$1METRICS\$1NAMESPACE=ServerlessGreeting

如需環境變數的定義和其他詳細資訊，請參閱[AWS Lambda 參考資料網站的 Powertools](https://awslabs.github.io/aws-lambda-powertools-dotnet/references/)。

### 2. Functions.cs
<a name="functionscs"></a>

`Functions.cs` 是一種類別檔案，其中包含對應至範本檔案中宣告之單一函數的 C\$1 方法。Lambda 函數會回應來自 API Gateway `HTTP Get`的方法。以下是 `Functions.cs` 檔案的範例：

```
public class Functions
{
    [Logging(LogEvent = true, CorrelationIdPath = CorrelationIdPaths.ApiGatewayRest)]
    [Metrics(CaptureColdStart = true)]
    [Tracing(CaptureMode = TracingCaptureMode.ResponseAndError)]
    public APIGatewayProxyResponse Get(APIGatewayProxyRequest request, ILambdaContext context)
    {
        Logger.LogInformation("Get Request");

        var greeting = GetGreeting();

        var response = new APIGatewayProxyResponse
        {
            StatusCode = (int)HttpStatusCode.OK,
            Body = greeting,
            Headers = new Dictionary (string, string) { { "Content-Type", "text/plain" } }
        };

        return response;
    }

    [Tracing(SegmentName = "GetGreeting Method")]
    private static string GetGreeting()
    {
        Metrics.AddMetric("GetGreeting_Invocations", 1, MetricUnit.Count);

        return "Hello Powertools for AWS Lambda (.NET)";
    }
}
```

### 3. aws-lambda-tools-defaults.json
<a name="functionscs"></a>

`aws-lambda-tools-defaults.json` 提供 Visual Studio 內 AWS 部署精靈的預設值，以及新增至 .NET Core CLI 的 AWS Lambda 命令。以下是此專案隨附的 `aws-lambda-tools-defaults.json` 檔案範例：

```
{
  "profile": "Default",
  "region": "us-east-1",
  "configuration": "Release",
  "s3-prefix": "ServerlessPowertools/",
  "template": "serverless.template",
  "template-parameters": ""
}
```

## 部署無伺服器應用程式
<a name="deploy-the-serverless-application"></a>

若要部署無伺服器應用程式，請完成下列步驟

1. 從**解決方案總管**開啟專案的內容選單 （按一下滑鼠右鍵），然後選擇**發佈至 AWS Lambda** 以開啟**發佈無 AWS 伺服器應用程式**對話方塊。

1. 從**發佈無 AWS 伺服器應用程式**對話方塊中，在 CloudFormation 堆疊名稱欄位中輸入**堆疊容器的名稱**。

1. 在 **S3 儲存貯**體欄位中，選擇應用程式套件將上傳到的 Amazon S3 儲存貯體，或選擇**新增...**按鈕，然後輸入新 Amazon S3 儲存貯體的名稱。然後選擇**發佈**以發佈以部署您的應用程式。
**注意**  
您的 CloudFormation 堆疊和 Amazon S3 儲存貯體必須存在於相同的 AWS 區域中。您專案的其餘設定會在 `serverless.template` 檔案中定義。  
![\[發佈無 AWS 伺服器應用程式對話方塊的影像。\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-serverless-03192024.png)

1. 當部署完成時，**堆疊**檢視視窗會在發佈程序期間開啟，**狀態**欄位會顯示：`CREATE_COMPLETE`。  
![\[視覺化工作室中部署堆疊檢視視窗的影像。\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-stackview-03192024.png)

## 測試無伺服器應用程式
<a name="test-the-serverless-application"></a>

當堆疊建立完成時，您可以使用**AWS 無伺服器 URL** 檢視您的應用程式。如果您已完成本教學課程，但未新增任何其他函數或參數，存取無 AWS 伺服器 URL 會在 Web 瀏覽器中顯示下列片語：`Hello Powertools for AWS Lambda (.NET)`。

# 教學課程：建立 Amazon Rekognition Lambda 應用程式
<a name="lambda-rekognition-example"></a>

本教學課程說明如何建立使用 Amazon Rekognition 以偵測到的標籤標記 Amazon S3 物件的 Lambda 應用程式。

如需設定 的先決條件和資訊 AWS Toolkit for Visual Studio，請參閱 [AWS Toolkit for Visual Studio 中的使用 AWS Lambda 範本](lambda-index.md)。

## 建立 Visual Studio .NET Core Lambda Image Rekognition 專案
<a name="create-a-visual-studio-net-core-lam-image-rekognition-project"></a>

下列程序說明如何從 建立 Amazon Rekognition Lambda 應用程式 AWS Toolkit for Visual Studio。

**注意**  
建立時，您的應用程式具有兩個專案的解決方案：包含要部署至 Lambda 之 Lambda 函數程式碼的來源專案，以及使用 xUnit 在本機測試函數的測試專案。  
有時 Visual Studio 找不到專案的所有 NuGet 參考。這是因為藍圖需要必須從 NuGet 擷取的相依性。建立新專案時，Visual Studio 只會提取本機參考，而不是從 NuGet 提取遠端參考。若要修正 NuGet 錯誤：在參考上按一下滑鼠右鍵，然後選擇**還原套件**。

1. 從 Visual Studio 展開**檔案**功能表，展開**新增**，然後選擇**專案**。

1. 在**新增專案**對話方塊中，確保**語言**、**平台**和**專案類型**下拉式方塊設定為「全部...」，然後在**aws lambda****搜尋**欄位中輸入 。

1. 選取**AWS Lambda 含測試 (.NET Core - C\$1)** 範本的 。

1. 按一下**下一步**以開啟**設定您的新專案**對話方塊。

1. 從**設定您的新專案**對話方塊中，輸入**名稱**的「ImageRekognition」，然後根據您的偏好設定完成其餘欄位。選擇**建立**按鈕以繼續至**選取藍圖**對話方塊。

1. 從**選取藍圖**對話方塊中，選擇**偵測影像標籤**藍圖，然後選擇**完成**以建立 Visual Studio 專案。
**注意**  
此藍圖提供用於接聽 Amazon S3 事件的程式碼，並使用 Amazon Rekognition 偵測標籤，並將其新增至 S3 物件做為標籤。

## 檢閱專案檔案
<a name="examine-the-files"></a>

下列各節會檢查這些專案檔案：

1. `Function.cs`

1. `aws-lambda-tools-defaults.json`

### 1. Function.cs
<a name="functioncs"></a>

在`Function.cs`檔案中，程式碼的第一個區段是位於檔案頂端的組件屬性。根據預設，Lambda 只接受輸入參數和傳回類型的 `System.IO.Stream`。您必須註冊序列化程式，才能針對輸入參數和傳回類型使用類型類別。組件屬性會註冊 Lambda JSON 序列化程式，其會使用 `Newtonsoft.Json`將串流轉換為輸入類別。您可以在組件或方法層級設定序列化程式。

以下是組件屬性的範例：

```
// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
```

類別有兩個建構函數。第一個是 Lambda 調用函數時使用的預設建構函數。此建構函數會建立 Amazon S3 和 Amazon Rekognition 服務用戶端。建構函數也會從您在部署這些用戶端時指派給函數的 IAM 角色擷取這些用戶端的 AWS 登入資料。用戶端 AWS 的區域設定為 Lambda 函數執行所在的區域。在此藍圖中，只有在 Amazon Rekognition 服務對標籤具有最低的可信度時，才想要將標籤新增至 Amazon S3 物件。 Amazon Rekognition 此建構函數會檢查環境變數`MinConfidence`，以判斷可接受的可信度等級。您可以在部署 Lambda 函數時設定此環境變數。

以下是 中第一類建構函數的範例`Function.cs`：

```
public Function()
{
    this.S3Client = new AmazonS3Client();
    this.RekognitionClient = new AmazonRekognitionClient();

    var environmentMinConfidence = System.Environment.GetEnvironmentVariable(MIN_CONFIDENCE_ENVIRONMENT_VARIABLE_NAME);
    if(!string.IsNullOrWhiteSpace(environmentMinConfidence))
    {
        float value;
        if(float.TryParse(environmentMinConfidence, out value))
        {
            this.MinConfidence = value;
            Console.WriteLine($"Setting minimum confidence to {this.MinConfidence}");
        }
        else
        {
            Console.WriteLine($"Failed to parse value {environmentMinConfidence} for minimum confidence. Reverting back to default of {this.MinConfidence}");
        }
    }
    else
    {
        Console.WriteLine($"Using default minimum confidence of {this.MinConfidence}");
    }
}
```

下列範例示範如何利用第二個建構函數進行測試。測試專案會設定自己的 S3 和 Rekognition 用戶端，並將其傳遞至：

```
public Function(IAmazonS3 s3Client, IAmazonRekognition rekognitionClient, float minConfidence)
{
    this.S3Client = s3Client;
    this.RekognitionClient = rekognitionClient;
    this.MinConfidence = minConfidence;
}
```

以下是 `Function.cs` 檔案內 `FunctionHandler`方法的範例。

```
public async Task FunctionHandler(S3Event input, ILambdaContext context)
{
    foreach(var record in input.Records)
    {
        if(!SupportedImageTypes.Contains(Path.GetExtension(record.S3.Object.Key)))
        {
            Console.WriteLine($"Object {record.S3.Bucket.Name}:{record.S3.Object.Key} is not a supported image type");
            continue;
        }

        Console.WriteLine($"Looking for labels in image {record.S3.Bucket.Name}:{record.S3.Object.Key}");
        var detectResponses = await this.RekognitionClient.DetectLabelsAsync(new DetectLabelsRequest
        {
            MinConfidence = MinConfidence,
            Image = new Image
            {
                S3Object = new Amazon.Rekognition.Model.S3Object
                {
                    Bucket = record.S3.Bucket.Name,
                    Name = record.S3.Object.Key
                }
            }
        });

        var tags = new List();
        foreach(var label in detectResponses.Labels)
        {
            if(tags.Count < 10)
            {
                Console.WriteLine($"\tFound Label {label.Name} with confidence {label.Confidence}");
                tags.Add(new Tag { Key = label.Name, Value = label.Confidence.ToString() });
            }
            else
            {
                Console.WriteLine($"\tSkipped label {label.Name} with confidence {label.Confidence} because maximum number of tags reached");
            }
        }

        await this.S3Client.PutObjectTaggingAsync(new PutObjectTaggingRequest
        {
            BucketName = record.S3.Bucket.Name,
            Key = record.S3.Object.Key,
            Tagging = new Tagging
            {
                TagSet = tags
            }
        });
    }
    return;
}
```

 `FunctionHandler` 是 Lambda 在建構執行個體之後呼叫 的方法。請注意，輸入參數為 類型`S3Event`，而非 `Stream`。您可以因為已註冊的 Lambda JSON 序列化程式而執行此操作。`S3Event` 包含 Amazon S3 中觸發之事件的所有資訊。函數會循環瀏覽屬於事件一部分的所有 S3 物件，並告知 Rekognition 偵測標籤。偵測到標籤後，它們會新增為 S3 物件的標籤。

**注意**  
此程式碼包含對 的呼叫`Console.WriteLine()`。當函數在 Lambda 中執行時，所有`Console.WriteLine()`重新導向至 Amazon CloudWatch Logs 的呼叫。

### 2. aws-lambda-tools-defaults.json
<a name="toolsdefaults"></a>

`aws-lambda-tools-defaults.json` 檔案包含藍圖設定為預先填入部署精靈中部分欄位的預設值。它也有助於設定命令列選項以與 .NET Core CLI 整合。

若要存取 .NET Core CLI 整合，請導覽至函數的專案目錄並輸入 **dotnet lambda help**。

**注意**  
函數處理常式指出 Lambda 呼叫 以回應調用函數的方法。此欄位的格式為：`<assembly-name>::<full-type-name>::<method-name>`。命名空間必須包含在類型名稱中。

## 部署 函數
<a name="deploy-the-function"></a>

下列程序說明如何部署 Lambda 函數。

1. 從**解決方案總管**中，在 Lambda 專案上按一下滑鼠右鍵，然後選擇**發佈至 AWS Lambda** 以開啟**上傳至 AWS Lambda**視窗。
**注意**  
預設值會從 `aws-lambda-tools-defaults.json` 檔案擷取。

1. 從**上傳到 AWS Lambda**視窗中，在**函數名稱**欄位中輸入名稱，然後選擇**下一步**按鈕以進入**進階函數詳細資訊**視窗。
**注意**  
此範例使用**函數名稱** **ImageRekognition**。  
![\[AWS Lambda function upload interface with package type, runtime, and configuration options.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-imgrek-03192024.png)

1. 從**進階函數詳細資訊**視窗中，選取授予程式碼存取 Amazon S3 和 Amazon Rekognition 資源許可的 IAM 角色。
**注意**  
如果您遵循此範例，請選取`AWSLambda_FullAccess`角色。

1. 將環境變數`MinConfidence`設定為 60，然後選擇**上傳**以啟動部署程序。當**函數**檢視顯示在 **AWS Explorer** 中時，發佈程序即完成。  
![\[AWS Lambda function configuration interface showing permissions, execution, and environment settings.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-imgrek-advanced-03192024.png)

1. 成功部署後，請導覽至事件**來源**索引標籤，設定 Amazon S3 將其事件傳送至您的新函數。

1. 從**事件來源**索引標籤中，選擇**新增**按鈕，然後選取要與您的 Lambda 函數連線的 Amazon S3 儲存貯體。
**注意**  
儲存貯體必須與 Lambda 函數位於相同的 AWS 區域。

## 測試 函數
<a name="test-the-function"></a>

現在已部署 函數，並將 S3 儲存貯體設定為其事件來源，請從您選取的儲存貯體的 **AWS Explorer** 開啟 S3 儲存貯體瀏覽器。然後上傳一些影像。

上傳完成時，您可以查看函數檢視中的日誌，以確認函數執行。或者，在儲存貯體瀏覽器中的映像上按一下滑鼠右鍵，然後選擇**屬性**。在**標籤**索引標籤上，您可以檢視套用至物件的標籤。

![\[Properties window showing metadata tags for an image file in a cloud storage bucket.\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/lambda-object-properties.png)


# 教學課程：搭配 使用 Amazon Logging Framework AWS Lambda 來建立應用程式日誌
<a name="cw-log-frameworks"></a>

您可以使用 Amazon CloudWatch Logs 來監控、存放和存取應用程式的日誌。若要取得 CloudWatch Logs 的日誌資料，請使用 AWS SDK 或安裝 CloudWatch Logs 代理程式來監控特定日誌資料夾。CloudWatch Logs 與數個熱門的 .NET 記錄架構整合，可簡化工作流程。

若要開始使用 CloudWatch Logs 和 .NET 記錄架構，請將適當的 NuGet 套件和 CloudWatch Logs 輸出來源新增至您的應用程式，然後像平常一樣使用您的記錄程式庫。這可讓您的應用程式使用 .NET 架構記錄訊息，將訊息傳送到 CloudWatch Logs，並在 CloudWatch Logs 主控台中顯示應用程式的日誌訊息。您也可以根據應用程式的日誌訊息，從 CloudWatch Logs 主控台設定指標和警示。

支援的 .NET 記錄架構包括：
+ **NLog**：若要檢視，請參閱 [nuget.org NLog 套件](https://www.nuget.org/packages/AWS.Logger.NLog)。
+ **Log4net**：若要檢視，請參閱 [nuget.org Log4net 套件](https://www.nuget.org/packages/AWS.Logger.NLog)。
+ **ASP.NET Core 記錄架構**：若要檢視，請參閱 [nuget.org ASP.NET Core 記錄架構套件](https://www.nuget.org/packages/AWS.Logger.AspNetCore/)。

以下是 `NLog.config` 檔案的範例，可透過將 `AWS.Logger.NLog` NuGet 套件和 AWS 目標新增至 ，同時啟用 CloudWatch Logs 和 主控台做為日誌訊息的輸出`NLog.config`。

```
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      throwExceptions="true">
  <targets>
    <target name="aws" type="AWSTarget" logGroup="NLog.ConfigExample" region="us-east-1"/>
    <target name="logfile" xsi:type="Console" layout="${callsite} ${message}" />
  </targets>
  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile,aws" />
  </rules>
</nlog>
```



記錄外掛程式全都建置在 之上， 適用於 .NET 的 AWS SDK 並在類似於 SDK 的程序中驗證您的 AWS 登入資料。下列範例詳細說明記錄外掛程式登入資料存取 CloudWatch Logs 所需的許可：

**注意**  
 AWS .NET 記錄外掛程式是開放原始碼專案。如需其他資訊、範例和指示，請參閱 [AWS 記錄 .NET GitHub ](https://github.com/aws/aws-logging-dotnet)儲存庫中的[範例](https://github.com/aws/aws-logging-dotnet/tree/master/samples)和[指示](https://github.com/aws/aws-logging-dotnet/blob/master/README.md)主題。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ]
    }
  ]
}
```

------