

 AWS Cloud9 non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Cloud9 possono continuare a utilizzare il servizio come di consueto. [Ulteriori informazioni](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tutorial.NET per AWS Cloud9
<a name="sample-dotnetcore"></a>

Questo tutorial consente di eseguire del codice.NET in un ambiente di AWS Cloud9 sviluppo.

L'esecuzione di questo tutorial e la creazione di questo esempio potrebbero comportare addebiti sul tuo AWS account. Questi includono possibili addebiti per servizi come Amazon EC2 e Amazon S3. Per ulteriori informazioni, consulta [Prezzi di Amazon EC2](https://aws.amazon.com/ec2/pricing/) e [Prezzi di Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prerequisiti](#sample-dotnetcore-prereqs)
+ [Fase 1: installare gli strumenti necessari](#sample-dotnetcore-setup)
+ [Fase 2 (facoltativo): installare l'estensione CLI .NET per le funzioni Lambda](#sample-dotnetcore-lambda)
+ [Passaggio 3: Creare un progetto di applicazione console.NET](#sample-dotnetcore-app)
+ [Fase 4: aggiungere un codice](#sample-dotnetcore-code)
+ [Fase 5: costruire ed eseguire il codice](#sample-dotnetcore-run)
+ [Passaggio 6: Creare e configurare un progetto di applicazione console.NET che utilizzi il AWS SDK per .NET](#sample-dotnetcore-sdk)
+ [Passaggio 7: Aggiungere AWS il codice SDK](#sample-dotnetcore-sdk-code)
+ [Passaggio 8: Compila ed esegui il AWS codice SDK](#sample-dotnetcore-sdk-run)
+ [Fase 9: Pulizia](#sample-dotnetcore-clean-up)

## Prerequisiti
<a name="sample-dotnetcore-prereqs"></a>

Prima di usare questo esempio, assicurati che la configurazione soddisfi i seguenti requisiti:
+ **È necessario disporre di un ambiente di sviluppo AWS Cloud9 EC2 esistente.** Nell'esempio si presume che tu disponga già di un ambiente EC2 connesso a un'istanza Amazon EC2 in cui viene eseguito Amazon Linux o Ubuntu Server. Se disponi di un altro tipo di ambiente o sistema operativo, potrebbe essere necessario adattare le istruzioni di questo esempio per configurare gli strumenti correlati. Per ulteriori informazioni, consulta [Creare un ambiente in AWS Cloud9](create-environment.md).
+ **L' AWS Cloud9 IDE per l'ambiente esistente è già aperto.** Quando apri un ambiente, AWS Cloud9 apre l'IDE per quell'ambiente nel tuo browser web. Per ulteriori informazioni, consulta [Aprire un ambiente in AWS Cloud9](open-environment.md).

## Fase 1: installare gli strumenti necessari
<a name="sample-dotnetcore-setup"></a>

In questo passaggio, installi il.NET SDK nel tuo ambiente, necessario per eseguire questo esempio.

1. Verifica se la versione più recente di.NET SDK è già installata nel tuo ambiente. A tale scopo, in una sessione terminale nell' AWS Cloud9 IDE, esegui l'interfaccia a riga di comando (CLI) .NET Core con l'**`--version`**opzione.

   ```
   dotnet --version
   ```

   Se la versione degli strumenti a riga di comando .NET è visualizzata ed è la versione 2.0 o superiore, passa alla[Passaggio 3: Creare un progetto di applicazione console.NET](#sample-dotnetcore-app). Se la versione è precedente alla 2.0 o se `bash: dotnet: command not found` viene visualizzato un errore del genere, continua con l'installazione di.NET SDK.

1. Per Amazon Linux, in una sessione terminale nell' AWS Cloud9 IDE, esegui i seguenti comandi per garantire l'installazione degli ultimi aggiornamenti di sicurezza e correzioni di bug e per installare un `libunwind` pacchetto necessario all'SDK.NET. Per avviare una nuova sessione del terminale, dalla barra dei menu seleziona **Window (Finestra), New Terminal (Nuovo terminale)**.

   ```
   sudo yum -y update
   sudo yum -y install libunwind
   ```

   Per Ubuntu Server, in una sessione di terminale nell' AWS Cloud9 IDE, esegui il comando seguente per garantire l'installazione degli ultimi aggiornamenti di sicurezza e correzioni di bug. Per avviare una nuova sessione del terminale, dalla barra dei menu seleziona **Window (Finestra), New Terminal (Nuovo terminale)**.

   ```
   sudo apt -y update
   ```

1. Scarica lo script di installazione.NET SDK nel tuo ambiente eseguendo il comando seguente.

   ```
   wget https://dot.net/v1/dotnet-install.sh
   ```

1. Rendi lo script del programma di installazione eseguibile dall'utente corrente mediante il comando seguente.

   ```
   sudo chmod u=rx dotnet-install.sh
   ```

1. Esegui lo script di installazione, che scarica e installa il.NET SDK, eseguendo il comando seguente.

   ```
   ./dotnet-install.sh -c Current
   ```

1. Aggiungi il.NET SDK al tuo. `PATH` A questo proposito, nel profilo della shell per l'ambiente (ad esempio, il file `.bashrc`), aggiungi la sottodirectory `$HOME/.dotnet` alla variabile `PATH` per l'ambiente, come descritto di seguito.

   1. Apri il file `.bashrc` per la modifica utilizzando il comando ** `vi` **.

      ```
      vi ~/.bashrc
      ```

   1. Per Amazon Linux, l'utilizzo del tasto freccia Giù o `j` consente di spostarsi sulla riga che inizia con `export PATH`.

      Per Ubuntu Server, è possibile spostarsi sull'ultima riga del file digitando `G`.

   1. Utilizzando il tasto freccia Destra o `$`, spostati al termine di quella riga.

   1. Passa alla modalità di inserimento premendo il tasto `i` (`-- INSERT ---` apparirà in fondo allo schermo).

   1. Per Amazon Linux, aggiungi la sottodirectory `$HOME/.dotnet` alla variabile ** `PATH` ** digitando `:$HOME/.dotnet`. Assicurati di includere il carattere di due punti (`:`). La riga dovrebbe essere ora simile alla seguente.

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

      Per Ubuntu Server, premi il tasto freccia Destra, quindi `Enter` due volte e digita la riga seguente alla fine del file.

      ```
      export PATH=$HOME/.dotnet:$PATH
      ```

   1. Salvare il file. Per eseguire questa operazione, premi il tasto `Esc` (`-- INSERT ---` scomparirà dalla parte bassa dello schermo), scrivi `:wq` (per scrivere e quindi uscire dal file), quindi premi `Enter`.

1. Carica il.NET SDK ricercando il file. `.bashrc`

   ```
   . ~/.bashrc
   ```

1. Verifica che .NET SDK sia caricato eseguendo.NET CLI con **`--help`**l'opzione.

   ```
   dotnet --help
   ```

   In caso di successo, viene visualizzato il numero di versione di .NET SDK, con informazioni aggiuntive sull'utilizzo.

1. Se non desideri più mantenere lo script di installazione.NET SDK nel tuo ambiente, puoi eliminarlo come segue.

   ```
   rm dotnet-install.sh
   ```

## Fase 2 (facoltativo): installare l'estensione CLI .NET per le funzioni Lambda
<a name="sample-dotnetcore-lambda"></a>

Sebbene non sia necessario per questo tutorial, è possibile distribuire AWS Lambda funzioni e AWS Serverless Application Model applicazioni utilizzando la CLI.NET se si installa anche il pacchetto`Amazon.Lambda.Tools`. 

1. Per installare il pacchetto, esegui il comando seguente:

   ```
   dotnet tool install -g Amazon.Lambda.Tools
   ```

1. Ora imposta la variabile di ambiente `PATH` e `DOTNET_ROOT` in modo che punti allo strumento Lambda installato. Nel file `.bashrc` individua la sezione `export PATH` e modificala in modo che appaia simile a quanto segue (vedi Fase 1 per i dettagli sulla modifica di questo file):

   ```
   export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet:$HOME/.dotnet/tools
   export DOTNET_ROOT=$HOME/.dotnet
   ```

## Passaggio 3: Creare un progetto di applicazione console.NET
<a name="sample-dotnetcore-app"></a>

In questo passaggio, si utilizza.NET per creare un progetto denominato`hello`. Questo progetto contiene tutti i file di cui necessita.NET per eseguire una semplice applicazione dal terminale nell'IDE. Il codice dell'applicazione è scritto in C\$1.

Crea un progetto di applicazione console.NET. A tale scopo, esegui la CLI.NET con il **`new`**comando, specificando il tipo di modello di progetto dell'applicazione console e il linguaggio di programmazione da utilizzare (in questo esempio, C\$1).

 L'opzione `-n` indica che il progetto viene emesso in una nuova directory, `hello`. Passiamo quindi a tale directory. 

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

Il comando precedente aggiunge una sottodirectory denominata `obj` con vari file e alcuni file autonomi aggiuntivi alla directory `hello`. Devi prendere nota dei seguenti due file di chiave:
+ Il file `hello/hello.csproj` contiene informazioni sul progetto di applicazione della console.
+ Il file `hello/Program.cs` contiene il codice dell'applicazione da eseguire.

## Fase 4: aggiungere un codice
<a name="sample-dotnetcore-code"></a>

In questa fase, aggiungi del codice all'applicazione.

Dalla finestra **Ambiente dell'** AWS Cloud9 IDE, aprite il file. `hello/Program.cs`

Nell'editor sostituisci i contenuti del file con il seguente codice e salva il file `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);

    }
  }
}
```

## Fase 5: costruire ed eseguire il codice
<a name="sample-dotnetcore-run"></a>

In questa fase è necessario creare il progetto e le relative dipendenze in un set di file binari, incluso un file eseguibile dell'applicazione. Quindi esegui l'applicazione.

1. Nell'IDE, create un builder per.NET come segue.

   1. Sulla barra dei menu seleziona **Run (Esegui), Build System (Compila sistema), New Build System (Nuovo sistema compilazione)**.

   1. Nella scheda **My Builder.build**, sostituisci i contenuti della scheda con il seguente codice.

      ```
      {
        "cmd" : ["dotnet", "build"],
        "info" : "Building..."
      }
      ```

   1. Selezionare **File, Save As (File, Salva come)**.

   1. In **Filename (Nome file)**, digita `.NET.build`.

   1. In **Folder (Cartella)**, digita `/.c9/builders`.

   1. Scegli **Save** (Salva).

1. Con il contenuto del `Program.cs` file visualizzato nell'editor, scegliete **Run, Build System, .NET**. Seleziona quindi **Run, Build (Esegui, Crea)**.

   Questo generatore aggiunge una sottodirectory denominata `bin` e aggiunge una sottodirectory denominata `Debug` alla sottodirectory `hello/obj`. Prendi nota dei seguenti tre file chiave.
   + Il file `hello/bin/Debug/netcoreapp3.1/hello.dll` è il file eseguibile dell'applicazione.
   + Il file `hello/bin/Debug/netcoreapp3.1/hello.deps.json` elenca le dipendenze dell'applicazione.
   + Il file `hello/bin/Debug/netcoreapp3.1/hello.runtimeconfig.json` specifica il runtime condiviso e la relativa versione per l'applicazione.
**Nota**  
Il nome della cartella,`netcoreapp3.1`, riflette la versione di.NET SDK utilizzata in questo esempio. Potresti visualizzare un numero diverso nel nome della cartella a seconda della versione installata.

1. Crea un runner per.NET come segue.

   1. Nella barra dei menu scegli **Run, Run With, New Runner (Esegui, Esegui con, Nuova esecuzione)**.

   1. Nella scheda **My Runner.run**, sostituisci i contenuti della scheda con il seguente codice.

      ```
      {
        "cmd" : ["dotnet", "run", "$args"],
        "working_dir": "$file_path",
        "info" : "Running..."
      }
      ```

   1. Selezionare **File, Save As (File, Salva come)**.

   1. In **Filename (Nome file)**, digita `.NET.run`.

   1. In **Folder (Cartella)**, digita `/.c9/runners`.

   1. Scegli **Save** (Salva).

1. Esegui l'applicazione con due numeri interi da aggiungere (ad esempio, `5` e `9`) come descritto di seguito.

   1. Con i contenuti del file `Program.cs` visualizzati nell'editor, scegli **Run, Run Configurations, New Run Configuration (Esegui, Configurazioni di esecuzione, Nuova configurazione di esecuzione)**.

   1. **Nella scheda **[Nuovo] - Inattivo**, scegli **Runner: Auto**, quindi scelgi.NET.**

   1. Nella casella **Command (Comando)**, digita `hello 5 9`.

   1. Scegli **Esegui**.

      Per impostazione predefinita, questo runner indica a .NET di eseguire il `hello.dll` file nella directory. `hello/bin/Debug/netcoreapp3.1`

      Confronta l'output con quanto segue.

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

## Passaggio 6: Creare e configurare un progetto di applicazione console.NET che utilizzi il AWS SDK per .NET
<a name="sample-dotnetcore-sdk"></a>

Puoi migliorare questo esempio per utilizzare il bucket Amazon S3, AWS SDK per .NET elencare i bucket disponibili e quindi eliminare il bucket appena creato.

In questo nuovo progetto, aggiungi un riferimento ad AWS SDK per .NET. AWS SDK per .NET Fornisce un modo pratico per interagire con AWS servizi come Amazon S3, dal tuo codice.NET. È quindi possibile configurare la gestione AWS delle credenziali nel proprio ambiente. AWS SDK per .NET Ha bisogno di queste credenziali per interagire con AWS i servizi.

### Per creare il progetto
<a name="sample-dotnetcore-sdk-create"></a>

1. Crea un progetto di applicazione console.NET. A tale scopo, esegui la CLI.NET con il **`new`**comando, specificando il tipo di modello di progetto dell'applicazione console e il linguaggio di programmazione da utilizzare. 

   L'opzione `-n` indica che il progetto viene emesso in una nuova directory, `s3`. Passiamo quindi a tale directory.

   ```
   dotnet new console -lang C# -n s3
   cd s3
   ```

1. Aggiungi un riferimento di progetto al pacchetto Amazon S3 nell' AWS SDK per .NET. A tale scopo, esegui la CLI.NET con il **`add package`**comando, specificando il nome del pacchetto Amazon S3 in. NuGet (NuGetdefinisce il modo in cui i pacchetti per.NET vengono creati, ospitati e utilizzati e fornisce gli strumenti per ciascuno di questi ruoli.)

   ```
   dotnet add package AWSSDK.S3
   ```

   Quando aggiungi un riferimento al progetto al pacchetto Amazon S3, aggiunge NuGet anche un riferimento al progetto al resto del. AWS SDK per .NET
**Nota**  
Per i nomi e le versioni di altri pacchetti AWS correlati in NuGet, consulta i [NuGetpacchetti etichettati con aws-sdk](https://www.nuget.org/packages?q=Tags%3A%22aws-sdk%22) sul sito Web. NuGet 

### Per configurare la gestione delle credenziali AWS
<a name="sample-dotnetcore-sdk-creds"></a>

Ogni volta che si utilizza il AWS SDK per .NET per chiamare un AWS servizio, è necessario fornire un set di AWS credenziali con la chiamata. Queste credenziali determinano se AWS SDK per .NET dispone delle autorizzazioni appropriate per effettuare quella chiamata. Se le credenziali non coprono le autorizzazioni appropriate, la chiamata fallirà.

Per archiviare le credenziali nell'ambiente, segui le istruzioni riportate in [Chiamata Servizi AWS da un ambiente in AWS Cloud9](credentials.md) e torna a questo argomento.

*Per ulteriori informazioni, consulta [Configurazione delle AWS credenziali](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html) nella Guida per gli sviluppatori.AWS SDK per .NET *

## Passaggio 7: Aggiungere AWS il codice SDK
<a name="sample-dotnetcore-sdk-code"></a>

In questa fase si aggiunge il codice per interagire con Amazon S3 e creare un bucket, eliminare il bucket appena creato ed elencare i bucket disponibili.

Dalla finestra **Ambiente dell'** AWS Cloud9 IDE, apri il `s3/Program.cs` file. Nell'editor sostituisci i contenuti del file con il seguente codice e salva il file `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);
       }
      }
    }
  }
}
```

## Passaggio 8: Compila ed esegui il AWS codice SDK
<a name="sample-dotnetcore-sdk-run"></a>

In questa fase è necessario creare il progetto e le relative dipendenze in un set di file binari, incluso un file eseguibile dell'applicazione. Quindi esegui l'applicazione.

1. Compilare il progetto. Per eseguire questa operazione con i contenuti del file `s3/Program.cs` visualizzati nell'editor, sulla barra dei menu scegli **Run, Build (Esegui, Crea)**.

1. Esegui l'applicazione con il nome del bucket Amazon S3 da creare e l'ID della regione AWS in cui creare il bucket (ad esempio `my-test-bucket` e `us-east-2`) come descritto di seguito.

   1. Con i contenuti del file `s3/Program.cs` ancora visualizzati nell'editor, scegli **Run, Run Configurations, New Run Configuration (Esegui, Configurazioni di esecuzione, Nuova configurazione di esecuzione)**.

   1. **Nella scheda **[Nuovo] - Idle**, scegli **Runner: Auto**, quindi selezione.NET.**

   1. Nella casella **Comando**, digita il nome dell'applicazione, il nome del bucket Amazon S3 da creare e l'ID della AWS regione in cui creare il bucket (ad esempio,). `s3 my-test-bucket us-east-2`

   1. Scegli **Esegui**.

      Per impostazione predefinita, questo runner indica .NET di eseguire il file nella `s3.dll` directory. `s3/bin/Debug/netcoreapp3.1`

      Confronta i tuoi risultati con il seguente output.

      ```
      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:
      ```

## Fase 9: Pulizia
<a name="sample-dotnetcore-clean-up"></a>

Per evitare addebiti continui AWS sul tuo account dopo aver finito di usare questo esempio, dovresti eliminare l'ambiente. Per istruzioni, consulta [Eliminazione di un ambiente in AWS Cloud9](delete-environment.md).