.NET のチュートリアル AWS Cloud9 - AWS Cloud9

AWS Cloud9 は、新しいお客様では利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

.NET のチュートリアル AWS Cloud9

このチュートリアルでは、 AWS Cloud9 開発環境でいくつかの .NET コードを実行できます。

このチュートリアルに従い、このサンプルを作成すると、 AWS アカウントに料金が発生する可能性があります。これらには、Amazon EC2や Amazon S3 などのサービスに対して発生する可能性のある料金が含まれます。詳細については、「Amazon EC2料金」およびAmazon S3料金」を参照してください。

前提条件

このサンプルを使用する前に、設定が次の要件を満たしていることを確認します。

  • 既存の AWS Cloud9 EC2開発環境が必要です。このサンプルは、EC2Amazon EC2 Linux または Ubuntu サーバー。別のタイプの環境またはオペレーティングシステムがある場合、このサンプルの指示を関連ツールを設定する必要がある場合があります。詳細については、「での環境の作成 AWS Cloud9」を参照してください。

  • 既存の環境の は既に開いています AWS Cloud9 IDE。環境を開くと、 はウェブブラウザでその環境IDEの AWS Cloud9 を開きます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。

ステップ 1: 必要なツールをインストールする

このステップでは、このサンプルを実行するために必要な .NET SDKを環境にインストールします。

  1. の最新バージョンであるNET SDKが既に環境にインストールされているかどうかを確認します。これを行うには、 のターミナルセッションで AWS Cloud9 IDE、 を実行します。NET --version オプションを含むコアコマンドラインインターフェイス (CLI)。

    dotnet --version

    の場合。NET コマンドラインツールのバージョンが表示され、バージョンが 2.0 以降である場合は、 に進みますステップ 3: コンソールNETアプリケーションプロジェクトを作成する。バージョンが 2.0 未満の場合、または などのエラーbash: dotnet: command not foundが表示された場合は、 のインストールを続行しますNETSDK。

  2. 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
  3. 次のコマンドを実行して、.NET SDKインストーラスクリプトを環境にダウンロードします。

    wget https://dot.net/v1/dotnet-install.sh
  4. 次のコマンドを実行して、インストールスクリプトを現在のユーザーに実行可能にします。

    sudo chmod u=rx dotnet-install.sh
  5. インストーラスクリプトを実行します。NETインストーラスクリプトは、次のコマンドを実行してSDK、 をダウンロードしてインストールします。

    ./dotnet-install.sh -c Current
  6. .NET SDKを に追加しますPATH。これを行うには、次のように、環境のシェルプロファイル (たとえば、.bashrcファイル) で、$HOME/.dotnet サブディレクトリを環境の PATH 変数に追加します。

    1. .bashrc vi コマンドを使用して、 ファイルを編集のために開きます。

      vi ~/.bashrc
    2. Amazon Linux では、下向き矢印または j キーを使用して、export PATH で始まる行に移動します。

      Ubuntu Server では、「G」と入力して、ファイルの最後の行に移動します。

    3. 右向き矢印または $ キーを使用して、行の末尾に移動します。

    4. i キーを押して挿入モードに切り替えます (表示の末尾に -- INSERT --- と表示されます)。

    5. Amazon Linux の場合、:$HOME/.dotnet を入力することで、$HOME/.dotnet サブディレクトリを PATH 変数に追加します。必ずコロン文字 (:) を入力します。行は以下のようになります。

      export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet

      Ubuntu Server では、右矢印キーを押し、Enter を 2 回押してから、ファイルの末尾に次の行を単独で入力します。

      export PATH=$HOME/.dotnet:$PATH
    6. ファイルを保存します。これを行うには、Esc キーを押して (-- INSERT --- が表示の末尾から消えます)、:wq と入力し (ファイルに書き込んで終了します)、Enter キーを押します。

  7. .bashrc ファイルを取得SDKして NETをロードします。

    . ~/.bashrc
  8. --help オプションCLIで を実行して、 SDKNETがロードされていることを確認しますNET。

    dotnet --help

    成功すると、.NET SDKバージョン番号と追加の使用状況情報が表示されます。

  9. . SDKインストーラスクリプトをNET環境内に保持する必要がなくなった場合は、次のように削除できます。

    rm dotnet-install.sh

ステップ 2 (オプション): Lambda 関数の .NET CLI拡張機能をインストールする

このチュートリアルでは必須ではありませんが、 を使用して AWS Lambda 関数と AWS Serverless Application Model アプリケーションをデプロイできます。NET Amazon.Lambda.ToolsパッケージもインストールCLIする場合は、。

  1. 次のコマンドを実行して、このパッケージをインストールします。

    dotnet tool install -g Amazon.Lambda.Tools
  2. 今、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アプリケーションプロジェクトを作成する

このステップでは、 を使用します。NET という名前のプロジェクトを作成しますhello。このプロジェクトには、 のすべてのファイルが含まれています。NET では、 のターミナルからシンプルなアプリケーションを実行する必要がありますIDE。アプリケーションのコードは C# で書かれています。

.NET コンソールアプリケーションプロジェクトを作成します。これを行うには、 new コマンドCLIで .NET を実行し、コンソールアプリケーションプロジェクトテンプレートタイプと使用するプログラミング言語 (このサンプルでは C#) を指定します。

-n オプションは、プロジェクトが新しいディレクトリ hello に出力されることを示します。続いて、 そのディレクトリに移動します。

dotnet new console -lang C# -n hello cd hello

前述のコマンドは、いくつかのファイルを含む obj という名前のサブディレクトリを追加し、追加のスタンドアロンファイルを hello ディレクトリに追加します。次の 2 つのキーファイルに注意してください。

  • 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: コードを構築および実行する

このステップでは、プロジェクトとその依存関係を、実行可能なアプリケーションファイルを含む 1 つのバイナリファイルのセットに構築します。次にアプリケーションを実行します。

  1. でIDE、次のように NETのビルダーを作成します。

    1. メニューバーで、[Run (実行)]、[Build System (ビルドシステム)]、[New Build System (新しいビルドシステム)] の順に選択します。

    2. [My Builder.build] タブで、タブの内容を以下のコードに置き換えます。

      { "cmd" : ["dotnet", "build"], "info" : "Building..." }
    3. File (ファイル)]、[Save As (名前を付けて保存)]の順に選択します。

    4. [Filename (ファイル名)] に「.NET.build」と入力します。

    5. [Folder (フォルダ)] に「/.c9/builders」と入力します。

    6. [Save] を選択します。

  2. エディタにProgram.csファイルの内容が表示されたら、実行、システムの構築、 を選択します。NET次に、[Run (実行)]、[Build (ビルド)] を選択します。

    このビルダは、bin という名前のサブディレクトリを追加し、Debug という名前のサブディレクトリを hello/obj サブディレクトリに追加します。次の 3 つのキーファイルに注意してください。

    • この 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。インストールしているバージョンによっては、フォルダ名に異なる番号が表示される場合があります。

  3. のランナーを次のように作成しますNET。

    1. メニューバーで、[Run (実行)]、[Run With (次で実行)]、[New Runner (新しいランナー)] の順に選択します。

    2. [My Runner.run] タブで、タブの内容を以下のコードに置き換えます。

      { "cmd" : ["dotnet", "run", "$args"], "working_dir": "$file_path", "info" : "Running..." }
    3. File (ファイル)]、[Save As (名前を付けて保存)]の順に選択します。

    4. [Filename (ファイル名)] に「.NET.run」と入力します。

    5. [Folder (フォルダ)] に「/.c9/runners」と入力します。

    6. [Save] を選択します。

  4. 追加する 2 つの整数を指定してアプリケーションを実行します (例: 59) を追加します。

    1. エディタに Program.cs ファイルの内容を表示した状態で、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)] の順に選択します。

    2. 〔新規] - アイドルタブで、Runner: Auto を選択し、 を選択します。NET

    3. [Command (コマンド)] ボックスに、「hello 5 9」と入力します。

    4. [Run] (実行) を選択します。

      デフォルトでは、このランナーは hello/bin/Debug/netcoreapp3.1 ディレクトリで hello.dll ファイルを実行するように NETに指示します。

      出力を以下と比較します。

      Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.

ステップ 6: を使用して NETコンソールアプリケーションプロジェクトを作成してセットアップする AWS SDK for .NET

このサンプルを強化して、 AWS SDK for .NET を使用して Amazon S3 バケットを作成し、使用可能なバケットを一覧表示し、作成したばかりのバケットを削除できます。

この新しいプロジェクトでは、 AWS SDK for .NETへの参照を追加します。 AWS SDK for .NET は、.NET コードから Amazon S3 などの AWS サービスとやり取りする便利な方法を提供します。次に、 環境で AWS 認証情報管理を設定します。では AWS 、サービスとやり取りするためにこれらの認証情報 AWS SDK for .NET が必要です。

プロジェクトを作成するには

  1. .NET コンソールアプリケーションプロジェクトを作成します。これを行うには、 new コマンドCLIを使用して . を実行します。NETコンソールアプリケーションプロジェクトテンプレートタイプと使用するプログラミング言語を指定します。

    -n オプションは、プロジェクトが新しいディレクトリ s3 に出力されることを示します。続いて、 そのディレクトリに移動します。

    dotnet new console -lang C# -n s3 cd s3
  2. AWS SDK for .NETで Amazon S3 パッケージへのプロジェクトリファレンスを追加します。これを行うには、 add package コマンドCLIで .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 サービスを AWS SDK for .NET 呼び出すたびに、その呼び出しで一連の 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

このステップでは、プロジェクトとその依存関係を、実行可能なアプリケーションファイルを含む 1 つのバイナリファイルのセットに構築します。次にアプリケーションを実行します。

  1. プロジェクトをビルドします。これを行うには、エディタに s3/Program.cs ファイルの内容を表示した状態で、[Run (実行)]、[Build (ビルド)] の順に選択します。

  2. 次のように、作成する Amazon S3 バケットの名前と、バケットを作成する AWS リージョンの ID (例: my-test-bucketus-east-2) をがついたアプリケーションを実行します。

    1. エディタに s3/Program.cs ファイルの内容を表示した状態で、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)] の順に選択します。

    2. 〔新規] - アイドルタブで、Runner: Auto を選択し、 を選択します。NET

    3. コマンドボックスに、アプリケーションの名前、作成する Amazon S3 バケットの名前、バケットを作成する AWS リージョンの ID (例: ) を入力しますs3 my-test-bucket us-east-2

    4. [Run] (実行) を選択します。

      デフォルトでは、このランナーは s3/bin/Debug/netcoreapp3.1 ディレクトリで s3.dll ファイルを実行するように NETに指示します。

      結果を以下の出力と比較します。

      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 で環境を削除する を参照してください。