Einfache plattformübergreifende Anwendung mit dem AWS SDK for .NET - AWS SDK for .NET

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einfache plattformübergreifende Anwendung mit dem AWS SDK for .NET

In diesem Tutorial wird das AWS SDK for .NET und verwendet. NETKern für plattformübergreifende Entwicklung. Das Tutorial zeigt Ihnen, wie Sie die SDK Amazon S3 S3-Buckets auflisten, die Sie besitzen, und optional einen Bucket erstellen können.

Sie führen dieses Tutorial mit plattformübergreifenden Tools wie dem durch. NETBefehlszeilenschnittstelle (CLI). Weitere Möglichkeiten zur Konfiguration Ihrer Entwicklungsumgebung finden Sie unterInstallieren und konfigurieren Sie Ihre Toolchain.

Für plattformübergreifende Anwendungen erforderlich. NETEntwicklung unter Windows, Linux oder macOS:

  • Microsoft. NETCoreSDK, Version 2.1, 3.1 oder höher, einschließlich der. NETBefehlszeilenschnittstelle (CLI) (dotnet) und die. NETKernlaufzeit.

Anmerkung

Bevor Sie diese Tutorials verwenden können, müssen Sie zuerst Ihre Toolchain installiert und die SDKAuthentifizierung konfiguriert haben.

Schritte

Erstellen des Projekts

  1. Öffnen Sie die Befehlszeile oder das Terminal. Suchen oder erstellen Sie einen Betriebssystemordner, unter dem Sie einen erstellen können. NETProjekt.

  2. Führen Sie in diesem Ordner den folgenden Befehl aus, um das zu erstellen. NETProjekt.

    dotnet new console --name S3CreateAndList
  3. Gehen Sie zum neu erstellten S3CreateAndList Ordner und führen Sie die folgenden Befehle aus:

    dotnet add package AWSSDK.S3 dotnet add package AWSSDK.SecurityToken dotnet add package AWSSDK.SSO dotnet add package AWSSDK.SSOOIDC

    Die vorherigen Befehle installieren die NuGet Pakete aus dem NuGet Paketmanager. Da wir genau wissen, welche NuGet Pakete wir für dieses Tutorial benötigen, können wir diesen Schritt jetzt ausführen. Es ist auch üblich, dass die benötigten Pakete während der Entwicklung bekannt werden. Wenn dies geschieht, kann zu diesem Zeitpunkt ein ähnlicher Befehl ausgeführt werden.

Erstellen des Codes

  1. Suchen Sie Program.cs im S3CreateAndList-Ordner und öffnen Sie es in Ihrem Code-Editor.

  2. Ersetzen Sie den Inhalt durch den folgenden Code und speichern Sie die Datei.

    using System; using System.Threading.Tasks; // NuGet packages: AWSSDK.S3, AWSSDK.SecurityToken, AWSSDK.SSO, AWSSDK.SSOOIDC using Amazon.Runtime; using Amazon.Runtime.CredentialManagement; using Amazon.S3; using Amazon.S3.Model; using Amazon.SecurityToken; using Amazon.SecurityToken.Model; namespace S3CreateAndList { class Program { // This code is part of the quick tour in the developer guide. // See https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/quick-start.html // for complete steps. // Requirements: // - An SSO profile in the SSO user's shared config file with sufficient privileges for // STS and S3 buckets. // - An active SSO Token. // If an active SSO token isn't available, the SSO user should do the following: // In a terminal, the SSO user must call "aws sso login". // Class members. static async Task Main(string[] args) { // Get SSO credentials from the information in the shared config file. // For this tutorial, the information is in the [default] profile. var ssoCreds = LoadSsoCredentials("default"); // Display the caller's identity. var ssoProfileClient = new AmazonSecurityTokenServiceClient(ssoCreds); Console.WriteLine($"\nSSO Profile:\n {await ssoProfileClient.GetCallerIdentityArn()}"); // Create the S3 client is by using the SSO credentials obtained earlier. var s3Client = new AmazonS3Client(ssoCreds); // Parse the command line arguments for the bucket name. if (GetBucketName(args, out String bucketName)) { // If a bucket name was supplied, create the bucket. // Call the API method directly try { Console.WriteLine($"\nCreating bucket {bucketName}..."); var createResponse = await s3Client.PutBucketAsync(bucketName); Console.WriteLine($"Result: {createResponse.HttpStatusCode.ToString()}"); } catch (Exception e) { Console.WriteLine("Caught exception when creating a bucket:"); Console.WriteLine(e.Message); } } // Display a list of the account's S3 buckets. Console.WriteLine("\nGetting a list of your buckets..."); var listResponse = await s3Client.ListBucketsAsync(); Console.WriteLine($"Number of buckets: {listResponse.Buckets.Count}"); foreach (S3Bucket b in listResponse.Buckets) { Console.WriteLine(b.BucketName); } Console.WriteLine(); } // // Method to parse the command line. private static Boolean GetBucketName(string[] args, out String bucketName) { Boolean retval = false; bucketName = String.Empty; if (args.Length == 0) { Console.WriteLine("\nNo arguments specified. Will simply list your Amazon S3 buckets." + "\nIf you wish to create a bucket, supply a valid, globally unique bucket name."); bucketName = String.Empty; retval = false; } else if (args.Length == 1) { bucketName = args[0]; retval = true; } else { Console.WriteLine("\nToo many arguments specified." + "\n\ndotnet_tutorials - A utility to list your Amazon S3 buckets and optionally create a new one." + "\n\nUsage: S3CreateAndList [bucket_name]" + "\n - bucket_name: A valid, globally unique bucket name." + "\n - If bucket_name isn't supplied, this utility simply lists your buckets."); Environment.Exit(1); } return retval; } // // Method to get SSO credentials from the information in the shared config file. static AWSCredentials LoadSsoCredentials(string profile) { var chain = new CredentialProfileStoreChain(); if (!chain.TryGetAWSCredentials(profile, out var credentials)) throw new Exception($"Failed to find the {profile} profile"); return credentials; } } // Class to read the caller's identity. public static class Extensions { public static async Task<string> GetCallerIdentityArn(this IAmazonSecurityTokenService stsClient) { var response = await stsClient.GetCallerIdentityAsync(new GetCallerIdentityRequest()); return response.Arn; } } }

Führen Sie die Anwendung aus.

  1. Führen Sie den folgenden Befehl aus.

    dotnet run
  2. Untersuchen Sie die Ausgabe, um die Anzahl der Amazon S3 S3-Buckets, die Sie besitzen, falls vorhanden, und deren Namen zu sehen.

  3. Wählen Sie einen Namen für einen neuen Amazon S3 S3-Bucket. Verwenden Sie „dotnet-quicktour-s3-1-cross-“ als Basis und fügen Sie etwas Einzigartiges hinzu, z. B. einen GUID oder Ihren Namen. Beachten Sie unbedingt die Regeln für Bucket-Namen, wie sie unter Regeln für die Bucket-Benennung im Amazon S3 S3-Benutzerhandbuch beschrieben sind.

  4. Führen Sie den folgenden Befehl aus und ersetzen Sie amzn-s3-demo-bucket mit dem Namen des Buckets, den Sie ausgewählt haben.

    dotnet run amzn-s3-demo-bucket
  5. Untersuchen Sie die Ausgabe, um den neuen Bucket anzuzeigen, der erstellt wurde.

Bereinigen

Während der Durchführung dieses Tutorials haben Sie einige Ressourcen erstellt, die Sie zu diesem Zeitpunkt bereinigen können.

  • Wenn Sie den Bucket, den die Anwendung in einem früheren Schritt erstellt hat, nicht behalten möchten, löschen Sie ihn mithilfe der Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  • Wenn Sie Ihre nicht behalten möchten. NETProjekt, entfernen Sie den S3CreateAndList Ordner aus Ihrer Entwicklungsumgebung.

Nächste Schritte

Gehen Sie zurück zum Schnell-Tour-Menü oder gehen Sie direkt zum Ende dieser Kurztour.