AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。進一步了解
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的 .NET 教學課程 AWS Cloud9
本教學課程可讓您在 AWS Cloud9 開發環境中執行一些 .NET 程式碼。
遵循本教學課程並建立此範例可能會導致 AWS 您的帳戶產生費用。這包括 Amazon EC2和 Amazon S3 等服務的可能費用。如需詳細資訊,請參閱 Amazon EC2 Pricing
主題
必要條件
在您使用此範例前,請務必確認您的設定符合下列要求:
-
您必須具有現有的 AWS Cloud9 EC2開發環境。此範例假設您已有連線至執行 Amazon Linux 或 的 Amazon EC2執行個體EC2的環境 Ubuntu 伺服器。如果您有不同類型的環境或作業系統,您可能需要依照此範例的說明來設定相關工具。如需詳細資訊,請參閱在 中建立環境 AWS Cloud9。
-
您已經開啟現有環境的 AWS Cloud9 IDE。當您開啟環境時,請在 Web 瀏覽器中 AWS Cloud9 開啟該環境IDE的 。如需詳細資訊,請參閱在 AWS Cloud9 中開啟環境。
步驟 1:安裝必要工具
在此步驟中,您會將 .NET 安裝SDK到您的環境中,這是執行此範例所需的。
-
確認您的環境中是否已SDK安裝最新版本的 NET。若要這麼做,請在 的終端機工作階段中 AWS Cloud9 IDE執行 。NET 核心命令列介面 (CLI) 搭配
--version
選項。dotnet --version
如果 。NET 命令列工具版本隨即顯示,且版本為 2.0 或更新版本,請跳至 步驟 3:建立 .NET console 應用程式專案。如果版本低於 2.0,或
bash: dotnet: command not found
顯示 等錯誤,請繼續安裝 。NET SDK -
對於 Amazon Linux,在 的終端機工作階段中 AWS Cloud9 IDE,執行下列命令,以協助確保已安裝最新的安全更新和錯誤修正,並安裝 .NET SDK需要的
libunwind
套件。(若要啟動新終端機工作階段,請在選單列上,選擇 Window (視窗)、New Terminal (新增終端機))。sudo yum -y update sudo yum -y install libunwind
對於 Ubuntu Server,在 的終端機工作階段中 AWS Cloud9 IDE,執行下列命令,以協助確保已安裝最新的安全更新和錯誤修正。(若要啟動新終端機工作階段,請在選單列上,選擇 Window (視窗)、New Terminal (新增終端機))。
sudo apt -y update
-
執行下列命令,將 .NET SDK installer 指令碼下載到您的環境中。
wget https://dot.net/v1/dotnet-install.sh
-
執行以下命令,讓目前使用者可執行安裝程式指令碼。
sudo chmod u=rx dotnet-install.sh
-
執行SDK下列命令,以執行安裝程式指令碼,下載並安裝 。NET
./dotnet-install.sh -c Current
-
將 .NET SDK新增至您的
PATH
。若要這樣做,請在環境的 shell 描述檔 (例如,.bashrc
檔案) 中,將$HOME/.dotnet
子目錄新增到環境的PATH
變數,如下所示。-
使用
.bashrc
vi
命令,開啟 檔案以供編輯。vi ~/.bashrc
-
如為 Amazon Linux,請使用向下鍵或
j
鍵,移到開頭為export PATH
的那一行。對於 Ubuntu Server,輸入
G
,移到檔案的最後一行。 -
使用向右鍵或
$
鍵,移到行的結尾。 -
按下
i
鍵,切換到插入模式 (-- INSERT ---
將出現在顯示幕末端)。 -
如為 Amazon Linux,輸入
:$HOME/.dotnet
,以便將$HOME/.dotnet
子目錄加入PATH
變數。請務必包含冒號字元 (:
)。該行現在應該看起來類似於以下內容。export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet
對於 Ubuntu Server,按向右鍵,然後按
Enter
兩次,接著在檔案結尾單獨輸入以下這一行。export PATH=$HOME/.dotnet:$PATH
-
儲存檔案。若要這麼做,請按
Esc
鍵 (-- INSERT ---
會從顯示器尾端消失)、輸入:wq
(以便寫入然後結束檔案),然後按Enter
。
-
-
SDK 透過來源
.bashrc
檔案載入 .NET。. ~/.bashrc
-
CLI 使用
--help
選項執行 。NET,確認 。NET SDK已載入。dotnet --help
如果成功,則會顯示 .NET SDK版本編號,並附上其他用量資訊。
-
如果您不想再將 .NET SDK installer 指令碼保留在您的環境中,您可以如下所示將其刪除。
rm dotnet-install.sh
步驟 2 (選用):安裝 Lambda 函數的 .NET CLI延伸模組
雖然本教學課程不需要,但您可以使用 來部署 AWS Lambda 函數和 AWS Serverless Application Model 應用程式。NETCLI如果您也安裝Amazon.Lambda.Tools
套件。
-
若要安裝此套件,請執行下列命令:
dotnet tool install -g Amazon.Lambda.Tools
-
接著設定
PATH
和DOTNET_ROOT
環境變數,以便指向已安裝的 Lambda 工具。在.bashrc
檔案中找到export PATH
區塊並加以編輯,以便使它顯示為類似如下內容 (如需編輯此檔案的詳細資訊,請參閱步驟 1):export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet:$HOME/.dotnet/tools export DOTNET_ROOT=$HOME/.dotnet
步驟 3:建立 .NET console 應用程式專案
在此步驟中,您可以使用 .NET 來建立名為 的專案hello
。此專案包含 .NET 從 中的終端機執行簡單應用程式所需的所有檔案IDE。應用程式的程式碼是以 C# 編寫。
建立 .NET console 應用程式專案。若要執行此操作,CLI請使用 new
命令執行 。NET,指定主控台應用程式專案範本類型和要使用的程式設計語言 (在此範例中為 C#)。
-n
選項表示專案經輸出到新的目錄 hello
中。接著導覽至該目錄。
dotnet new console -lang C
# -n hello
cd hello
上述命令會新增名為 obj
的子目錄與數個檔案,以及一些其他的獨立檔案到 hello
目錄。您應該會注意到以下兩個重要檔案:
-
hello/hello.csproj
檔案包含有關主控台應用程式專案的資訊。 -
hello/Program.cs
檔案包含要執行的應用程式的程式碼。
步驟 4:新增程式碼
在此步驟中,您將新增一些程式碼到應用程式。
從 中的環境視窗中 AWS Cloud9 IDE,開啟 hello/Program.cs
檔案。
在編輯器中,使用以下程式碼取代該檔案的目前內容,然後儲存 Program.cs
檔案。
using System; namespace hello { class Program { static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Please provide 2 numbers"); return; } Console.WriteLine("Hello, World!"); Console.WriteLine("The sum of 2 and 3 is 5."); int sum = Int32.Parse(args[0]) + Int32.Parse(args[1]); Console.WriteLine("The sum of {0} and {1} is {2}.", args[0], args[1], sum); } } }
步驟 5:建置並執行程式碼
在此步驟中,您將建立專案及其相依性到一組二進位檔案,包括可執行的應用程式檔案。接著執行應用程式。
-
在 中IDE,建立 的建置器。NET如下所示。
-
從功能表列選擇 Run, Build System, New Build System (執行、建置系統、新建置系統)。
-
在 My Builder.build (我的 Builder.build) 標籤上,使用以下程式碼取代標籤的內容。
{ "cmd" : ["dotnet", "build"], "info" : "Building..." }
-
選擇 File, Save As (檔案、另存新檔)。
-
在 Filename (檔案名稱) 輸入
.NET.build
。 -
為 Folder (資料夾) 輸入
/.c9/builders
。 -
選擇 Save (儲存)。
-
-
在編輯器中顯示
Program.cs
檔案的內容時,選擇執行、建置系統。NET接著選擇 Run, Build (執行、建置)。此建置器會新增名為
bin
的子目錄並將名為Debug
的子目錄新增到hello/obj
子目錄中。請注意以下三個重要檔案。-
hello/bin/Debug/netcoreapp3.1/hello.dll
檔案是可執行應用程式檔。 -
hello/bin/Debug/netcoreapp3.1/hello.deps.json
檔案會列出應用程式的相依性。 -
hello/bin/Debug/netcoreapp3.1/hello.runtimeconfig.json
檔案指定應用程式的共用執行時間及其版本。
注意
資料夾名稱
netcoreapp3.1
反映了此範例中SDK使用的 版本NET。視您安裝的版本而定,您可能會在資料夾名稱中看到不同的編號。 -
-
建立 的執行器,NET如下所示。
-
在功能表列中,選擇 Run, Run With, New Runner (執行、執行工具、新增執行器)。
-
在 My Runner.run (我的 Runner.run) 標籤上,使用以下程式碼取代標籤的內容。
{ "cmd" : ["dotnet", "run", "$args"], "working_dir": "$file_path", "info" : "Running..." }
-
選擇 File, Save As (檔案、另存新檔)。
-
在 Filename (檔案名稱) 輸入
.NET.run
。 -
為 Folder (資料夾) 輸入
/.c9/runners
。 -
選擇 Save (儲存)。
-
-
執行應用程式並搭配要新增的兩個整數 (例如,
5
和9
),如下所示。-
使用顯示在編輯器中的
Program.cs
檔案內容,選擇 Run, Run Configurations, New Run Configuration (執行、執行組態、新增執行組態)。 -
在 【新增】 - 閒置索引標籤中,選擇 Runner: Auto ,然後選擇 。NET
-
在 Command (命令) 方塊中,輸入
hello 5 9
。 -
選擇執行。
根據預設,此執行器會指示 .NET 在
hello/bin/Debug/netcoreapp3.1
目錄中執行hello.dll
檔案。將您的輸出與下列項目比較。
Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
-
步驟 6:建立和設定使用 的 .NET console 應用程式專案 AWS SDK for .NET
您可以增強此範例,以使用 AWS SDK for .NET 建立 Amazon S3 儲存貯體、列出可用的儲存貯體,然後刪除剛建立的儲存貯體。
在這個新專案中,您會新增 AWS SDK for .NET的參考。 AWS SDK for .NET 提供方便的方式,讓您從 .NET 程式碼與 Amazon S3 等 AWS 服務互動。然後,您可以在環境中設定 AWS 憑證管理。 AWS SDK for .NET 需要這些憑證才能與服務互動 AWS 。
建立專案
-
建立 .NET console 應用程式專案。若要執行此操作,CLI請使用
new
命令執行 。NET,指定主控台應用程式專案範本類型和要使用的程式設計語言。-n
選項表示專案經輸出到新的目錄s3
中。接著導覽至該目錄。dotnet new console -lang C
# -n s3
cd s3 -
在 AWS SDK for .NET中新增 Amazon S3 套件的專案參考。若要執行此操作,CLI請使用
add package
命令執行 。NET,在 中指定 Amazon S3 套件的名稱 NuGet。(NuGet 定義 的NET套件如何建立、託管和取用,並提供每個角色的工具。)dotnet add package AWSSDK.S3
當您將專案參考新增至 Amazon S3 套件時, NuGet 也會將專案參考新增至 的其餘部分 AWS SDK for .NET。
注意
如需 中其他 AWS 相關套件的名稱和版本 NuGet,請參閱 NuGet 網站上的NuGet以 aws-sdk 標記的套件
。
設定 AWS 憑證管理
每次使用 AWS SDK for .NET 呼叫 AWS 服務時,您必須隨呼叫提供一組 AWS 憑證。這些憑證會判斷 是否 AWS SDK for .NET 具有適當的許可來發出該呼叫。如果登入資料未涵蓋適當許可,呼叫即會失敗。
若要將憑證存放在環境中,請遵循 AWS 服務 從 中的環境呼叫 AWS Cloud9 中的指示,然後返回本主題。
如需詳細資訊,請參閱 AWS SDK for .NET 開發人員指南 中的設定 AWS 憑證。
步驟 7:新增 AWS SDK程式碼
在此步驟中,您會新增程式碼與 Amazon S3 互動,藉此建立儲存貯體、刪除您剛建立的儲存貯體,然後列出可用的儲存貯體。
從 中的環境視窗中 AWS Cloud9 IDE,開啟 s3/Program.cs
檔案。在編輯器中,使用以下程式碼取代該檔案的目前內容,然後儲存 Program.cs
檔案。
using Amazon; using Amazon.S3; using Amazon.S3.Model; using Amazon.S3.Util; using System; using System.Threading.Tasks; namespace s3 { class Program { async static Task Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Usage: <the bucket name> <the AWS Region to use>"); Console.WriteLine("Example: my-test-bucket us-east-2"); return; } if (args[1] != "us-east-2") { Console.WriteLine("Cannot continue. The only supported AWS Region ID is " + "'us-east-2'."); return; } var bucketRegion = RegionEndpoint.USEast2; // Note: You could add more valid AWS Regions above as needed. using (var s3Client = new AmazonS3Client(bucketRegion)) { var bucketName = args[0]; // Create the bucket. try { if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Cannot continue. Cannot create bucket. \n" + "A bucket named '{0}' already exists.", bucketName); return; } else { Console.WriteLine("\nCreating the bucket named '{0}'...", bucketName); await s3Client.PutBucketAsync(bucketName); } } catch (AmazonS3Exception e) { Console.WriteLine("Cannot continue. {0}", e.Message); } catch (Exception e) { Console.WriteLine("Cannot continue. {0}", e.Message); } // Confirm that the bucket was created. if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Created the bucket named '{0}'.", bucketName); } else { Console.WriteLine("Did not create the bucket named '{0}'.", bucketName); } // Delete the bucket. Console.WriteLine("\nDeleting the bucket named '{0}'...", bucketName); await s3Client.DeleteBucketAsync(bucketName); // Confirm that the bucket was deleted. if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Did not delete the bucket named '{0}'.", bucketName); } else { Console.WriteLine("Deleted the bucket named '{0}'.", bucketName); }; // List current buckets. Console.WriteLine("\nMy buckets now are:"); var response = await s3Client.ListBucketsAsync(); foreach (var bucket in response.Buckets) { Console.WriteLine(bucket.BucketName); } } } } }
步驟 8:建置和執行 AWS SDK程式碼
在此步驟中,您將建立專案及其相依性到一組二進位檔案,包括可執行的應用程式檔案。接著執行應用程式。
-
建置專案。若要執行此操作,請使用顯示在編輯器中的
s3/Program.cs
檔案內容,在功能表列上選擇 Run, Build (執行、建置)。 -
以要建立的 Amazon S3 儲存貯體名稱以及要在其中建立儲存貯體的 AWS 區域 ID (例如,
my-test-bucket
和us-east-2
) 來執行應用程式,如下所示。-
使用仍顯示在編輯器中的
s3/Program.cs
檔案內容,選擇 Run, Run Configurations, New Run Configuration (執行、執行組態、新增執行組態)。 -
在 【新增】 - 閒置索引標籤中,選擇 Runner: Auto ,然後選擇 。NET
-
在命令方塊中,輸入應用程式的名稱、要建立的 Amazon S3 儲存貯體名稱,以及要在其中建立儲存貯體 AWS 的區域 ID (例如
s3 my-test-bucket us-east-2
)。 -
選擇執行。
根據預設,此執行器會指示 .NET 在
s3/bin/Debug/netcoreapp3.1
目錄中執行s3.dll
檔案。將您的結果與下列輸出比較。
Creating a new bucket named 'my-test-bucket'... Created the bucket named 'my-test-bucket'. Deleting the bucket named 'my-test-bucket'... Deleted the bucket named 'my-test-bucket'. My buckets now are:
-
步驟 9:清除
為了避免在您使用此範例之後持續向 AWS 您的帳戶收取費用,您應該刪除環境。如需說明,請參閱「刪除 AWS Cloud9 中的環境」。