

 AWS Cloud9 não está mais disponível para novos clientes. Os clientes atuais do AWS Cloud9 podem continuar usando o serviço normalmente. [Saiba mais](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

Este tutorial permite que você execute alguns códigos.NET em um ambiente de AWS Cloud9 desenvolvimento.

Seguir este tutorial e criar essa amostra pode resultar em cobranças em sua AWS conta. Isso inclui possíveis cobranças por serviços como o Amazon EC2 e Amazon S3. Para obter mais informações, consulte [Preço do Amazon EC2](https://aws.amazon.com/ec2/pricing/) e [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Pré-requisitos](#sample-dotnetcore-prereqs)
+ [Etapa 1: Instalar as ferramentas necessárias](#sample-dotnetcore-setup)
+ [Etapa 2 (Opcional): Instalar a extensão da CLI .NET para funções do Lambda](#sample-dotnetcore-lambda)
+ [Etapa 3: Criar um projeto de aplicação do console do .NET](#sample-dotnetcore-app)
+ [Etapa 4: Adicionar código](#sample-dotnetcore-code)
+ [Etapa 5: Compilar e executar o código](#sample-dotnetcore-run)
+ [Etapa 6: Criar e configurar um projeto de aplicativo de console do.NET que usa o AWS SDK para .NET](#sample-dotnetcore-sdk)
+ [Etapa 7: adicionar código AWS SDK](#sample-dotnetcore-sdk-code)
+ [Etapa 8: criar e executar o código do AWS SDK](#sample-dotnetcore-sdk-run)
+ [Etapa 9: Limpar](#sample-dotnetcore-clean-up)

## Pré-requisitos
<a name="sample-dotnetcore-prereqs"></a>

Antes de usar esse exemplo, verifique se suas configurações cumprem os requisitos a seguir.
+ **Você deve ter um ambiente de desenvolvimento AWS Cloud9 EC2 existente.** Este exemplo pressupõe que você já tem um ambiente do EC2 conectado a uma instância do Amazon EC2 que executa Amazon Linux ou Ubuntu Server. Caso tenha um tipo diferente de ambiente ou sistema operacional, poderá ser necessário adaptar as instruções desse exemplo para configurar ferramentas relacionadas. Para obter mais informações, consulte [Criando um ambiente em AWS Cloud9](create-environment.md).
+ **Você tem o AWS Cloud9 IDE para o ambiente existente já aberto.** Quando você abre um ambiente, AWS Cloud9 abre o IDE desse ambiente em seu navegador da web. Para obter mais informações, consulte [Abrindo um ambiente em AWS Cloud9](open-environment.md).

## Etapa 1: Instalar as ferramentas necessárias
<a name="sample-dotnetcore-setup"></a>

Nesta etapa, você instalará o SDK do .NET em seu ambiente, o que é necessário para executar esse exemplo.

1. Confirme se a versão mais recente do SDK do .NET já está instalada em seu ambiente. Para fazer isso, em uma sessão de terminal no AWS Cloud9 IDE, execute a interface de linha de comando (CLI) .NET Core com a **`--version`**opção.

   ```
   dotnet --version
   ```

   Se a versão das ferramentas de linha de comando do .NET for exibida, e a versão for 2.0 ou superior, avance para [Etapa 3: Criar um projeto de aplicação do console do .NET](#sample-dotnetcore-app). Se a versão for inferior a 2.0, ou se um erro como `bash: dotnet: command not found` for exibido, continue a instalar o SDK do .NET.

1. Para o Amazon Linux, em uma sessão de terminal no AWS Cloud9 IDE, execute os seguintes comandos para ajudar a garantir que as atualizações de segurança e correções de erros mais recentes sejam instaladas e para instalar um `libunwind` pacote que o SDK.NET precisa. (Para iniciar uma nova sessão de terminal, na barra de menus, selecione **Janela, Novo terminal**.)

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

   Para o Ubuntu Server, em uma sessão de terminal no AWS Cloud9 IDE, execute o comando a seguir para ajudar a garantir que as atualizações de segurança e correções de erros mais recentes estejam instaladas. (Para iniciar uma nova sessão de terminal, na barra de menus, selecione **Janela, Novo terminal**.)

   ```
   sudo apt -y update
   ```

1. Baixe o script do instalador do SDK do .NET em seu ambiente executando o comando a seguir.

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

1. Torne o script do instalador executável pelo usuário atual executando o comando a seguir.

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

1. Execute o script do instalador, que baixa e instala o SDK do .NET, executando o comando a seguir.

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

1. Adicione o SDK do .NET ao `PATH`. Para fazer isso, no perfil de shell do ambiente (por exemplo, o arquivo `.bashrc`), adicione o subdiretório `$HOME/.dotnet` à variável `PATH` para o ambiente, da seguinte forma:

   1. Abra o arquivo `.bashrc` para edição usando o comando ** `vi`**.

      ```
      vi ~/.bashrc
      ```

   1. Para o Amazon Linux, usando a seta para baixo ou a tecla `j`, vá até a linha que começa com `export PATH`.

      Para Ubuntu Server, mova para a última linha do arquivo digitando `G`.

   1. Usando a seta para a direita ou a tecla `$`, mova para o final da linha.

   1. Alterne para modo de inserção pressionando a tecla `i`. (`-- INSERT ---` aparecerá no final da tela.)

   1. Para o Amazon Linux, adicione o subdiretório `$HOME/.dotnet` à variável ** `PATH` **, digitando `:$HOME/.dotnet`. Certifique-se de incluir o caractere de dois pontos (`:`). A linha agora deve ser semelhante à que vem a seguir.

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

      Para o Ubuntu Server, pressione a tecla de seta para a direita e pressione `Enter` duas vezes e digite a seguinte linha no final do arquivo.

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

   1. Salve o arquivo. Para fazer isso, pressione a tecla `Esc` (`-- INSERT ---` desaparecerá do final da tela), digite `:wq` (para gravar e, em seguida, encerrar o arquivo) e, em seguida, pressione `Enter`.

1. Carregue o SDK do .NET após obter o arquivo `.bashrc`.

   ```
   . ~/.bashrc
   ```

1. Confirme o SDK do .NET está carregado executando a CLI do .NET com a opção ** `--help` **.

   ```
   dotnet --help
   ```

   Se for bem-sucedido, o número da versão do SDK do .NET será exibido, com mais informações de uso.

1. Se você não quiser mais manter o script do instalador do SDK do .NET em seu ambiente, exclua-o da seguinte forma:

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

## Etapa 2 (Opcional): Instalar a extensão da CLI .NET para funções do Lambda
<a name="sample-dotnetcore-lambda"></a>

Embora não seja necessário para este tutorial, você pode implantar AWS Lambda funções e AWS Serverless Application Model aplicativos usando a CLI do.NET se também instalar o `Amazon.Lambda.Tools` pacote. 

1. Para instalar esse pacote, execute o seguinte comando:

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

1. Agora defina as variáveis de ambiente `PATH` e `DOTNET_ROOT` apontando para a ferramenta do Lambda instalada. No arquivo `.bashrc`, localize a seção `export PATH` e edite-a para que fique semelhante à seguinte (consulte a Etapa 1 para obter detalhes sobre como editar esse arquivo):

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

## Etapa 3: Criar um projeto de aplicação do console do .NET
<a name="sample-dotnetcore-app"></a>

Nesta etapa, use o .NET para criar um projeto chamado `hello`. Esse projeto contém todos os arquivos que o .NET precisa para executar uma aplicação simples no terminal do IDE. O código do aplicativo é gravado em C\$1.

Crie um projeto de aplicação do console do .NET. Para fazer isso, execute a CLI do .NET com o comando ** `new` **, especificando o modelo de projeto de aplicação do console e a linguagem de programação a ser usada (neste exemplo, C\$1).

 A opção `-n` indica que o projeto tem saída para um novo diretório, `hello`. Em seguida, navegamos até o diretório. 

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

O comando anterior adiciona um subdiretório chamado `obj` com vários arquivos, e alguns outros arquivos independentes, ao diretório `hello`. Observe os dois arquivos de chave a seguir:
+ O arquivo `hello/hello.csproj` contém informações sobre o projeto de aplicativo do console.
+ O arquivo `hello/Program.cs` contém o código do aplicativo a ser executado.

## Etapa 4: Adicionar código
<a name="sample-dotnetcore-code"></a>

Nesta etapa, você adiciona algum código ao aplicativo.

Na janela **Ambiente** do AWS Cloud9 IDE, abra o `hello/Program.cs` arquivo.

No editor, substitua o conteúdo atual do arquivo pelo seguinte código e, em seguida, salve o arquivo `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);

    }
  }
}
```

## Etapa 5: Compilar e executar o código
<a name="sample-dotnetcore-run"></a>

Nesta etapa, você criará o projeto e suas dependências em um conjunto de arquivos binários, incluindo um arquivo executável da aplicação. Em seguida, você executa a aplicação.

1. No IDE, crie um construtor para o .NET da seguinte forma:

   1. Na barra de menus, selecione **Run (Executar), Build System (Sistema de compilação), New Build System (Novo sistema de compilação)**.

   1. Na guia **My Builder.build (Meu Builder.build)**, substitua o conteúdo da guia pelo código a seguir.

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

   1. Selecione **Arquivo, Salvar como**.

   1. Para **Nome do arquivo**, digite `.NET.build`.

   1. Para **Pasta**, digite `/.c9/builders`.

   1. Escolha **Salvar**.

1. Com o conteúdo do arquivo `Program.cs` exibido no editor, selecione **Executar, Sistema de compilação, .NET**. Em seguida, selecione **Run, Build (Executar, Compilar)**.

   Esse compilador adiciona um subdiretório chamado `bin` e adiciona um subdiretório chamado `Debug` ao subdiretório `hello/obj`. Observe os três arquivos de chave a seguir.
   + O arquivo `hello/bin/Debug/netcoreapp3.1/hello.dll` é o arquivo executável do aplicativo.
   + O arquivo `hello/bin/Debug/netcoreapp3.1/hello.deps.json` lista as dependências do aplicativo.
   + O arquivo `hello/bin/Debug/netcoreapp3.1/hello.runtimeconfig.json` especifica o tempo de execução compartilhado e sua versão para o aplicativo.
**nota**  
O nome da pasta, `netcoreapp3.1`, reflete a versão do SDK do .NET usado neste exemplo. Você poderá ver um número diferente no nome da pasta, dependendo da versão instalada.

1. Crie um executor para o .NET da seguinte forma.

   1. Na barra de menus, escolha **Run (Executar), Run With (Executar com), New Runner (Novo executor)**.

   1. Na guia **My Runner.run (Meu Runner.run)**, substitua o conteúdo da guia pelo código a seguir.

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

   1. Selecione **Arquivo, Salvar como**.

   1. Para **Nome do arquivo**, digite `.NET.run`.

   1. Para **Pasta**, digite `/.c9/runners`.

   1. Escolha **Salvar**.

1. Execute o aplicativo com dois números inteiros a serem adicionados (por exemplo, `5` e `9`) da seguinte forma.

   1. Com o conteúdo do arquivo `Program.cs` exibido no editor, escolha **Run (Executar), Run Configurations (Configurações de execução), New Run Configuration (Nova configuração de execução)**.

   1. Na guia **[Novo] – Inativo**, selecione **Executor: automático** e escolha **.NET**.

   1. Na caixa **Command (Comando)**, digite `hello 5 9`.

   1. Escolha **Executar**.

      Por padrão, esse executor instrui o .NET a executar o arquivo `hello.dll` no diretório `hello/bin/Debug/netcoreapp3.1`.

      Compare o resultado com o seguinte.

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

## Etapa 6: Criar e configurar um projeto de aplicativo de console do.NET que usa o AWS SDK para .NET
<a name="sample-dotnetcore-sdk"></a>

Você pode aprimorar essa amostra para usar o AWS SDK para .NET para criar um bucket do Amazon S3, listar seus buckets disponíveis e, em seguida, excluir o bucket que você acabou de criar.

Neste novo projeto, você adiciona uma referência ao AWS SDK para .NET. AWS SDK para .NET Ele fornece uma maneira conveniente de interagir com AWS serviços como o Amazon S3, a partir do seu código.NET. Em seguida, você configura o gerenciamento de AWS credenciais em seu ambiente. Eles AWS SDK para .NET precisam dessas credenciais para interagir com os AWS serviços.

### Para criar o projeto do
<a name="sample-dotnetcore-sdk-create"></a>

1. Crie um projeto de aplicação do console do .NET. Para fazer isso, execute a CLI do .NET com o comando **`new`**, especificando o modelo de projeto de aplicação do console e a linguagem de programação a ser usada. 

   A opção `-n` indica que o projeto tem saída para um novo diretório, `s3`. Em seguida, navegamos até o diretório.

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

1. Adicione uma referência de projeto ao pacote do Amazon S3 no AWS SDK para .NET. Para fazer isso, execute a CLI do.NET com o **`add package`**comando, especificando o nome do pacote Amazon S3 em. NuGet (NuGetdefine como os pacotes do.NET são criados, hospedados e consumidos e fornece as ferramentas para cada uma dessas funções.)

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

   Quando você adiciona uma referência de projeto ao pacote Amazon S3, NuGet também adiciona uma referência de projeto ao resto do. AWS SDK para .NET
**nota**  
Para os nomes e versões de outros pacotes AWS relacionados em NuGet, consulte [NuGetpacotes marcados com aws-sdk no site](https://www.nuget.org/packages?q=Tags%3A%22aws-sdk%22). NuGet 

### Para configurar o gerenciamento de AWS credenciais
<a name="sample-dotnetcore-sdk-creds"></a>

Cada vez que você usa o AWS SDK para .NET para chamar um AWS serviço, você deve fornecer um conjunto de AWS credenciais com a chamada. Essas credenciais determinam se ele AWS SDK para .NET tem as permissões apropriadas para fazer essa chamada. Se as credenciais não cobrirem as permissões apropriadas, a chamada falhará.

Para armazenar suas credenciais no ambiente, siga as instruções em [Chamando Serviços da AWS de um ambiente em AWS Cloud9](credentials.md) e retorne a este tópico.

Para obter informações adicionais, consulte [Configuração de AWS credenciais](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html) no Guia do *AWS SDK para .NET desenvolvedor*.

## Etapa 7: adicionar código AWS SDK
<a name="sample-dotnetcore-sdk-code"></a>

Nesta etapa, você adicionará código para interagir com o Amazon S3 para criar um bucket, excluir o bucket que acabou de criar e listar os buckets disponíveis.

Na janela **Ambiente** do AWS Cloud9 IDE, abra o `s3/Program.cs` arquivo. No editor, substitua o conteúdo atual do arquivo pelo seguinte código e, em seguida, salve o arquivo `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);
       }
      }
    }
  }
}
```

## Etapa 8: criar e executar o código do AWS SDK
<a name="sample-dotnetcore-sdk-run"></a>

Nesta etapa, você criará o projeto e suas dependências em um conjunto de arquivos binários, incluindo um arquivo executável da aplicação. Em seguida, você executa a aplicação.

1. Crie o projeto. Para fazer isso, com o conteúdo do arquivo `s3/Program.cs` exibido no editor, na barra de menus, selecione **Run (Executar), Build (Compilação)**.

1. Execute a aplicação com o nome do bucket do Amazon S3 a ser criado e o ID da região da AWS na qual criar o bucket (por exemplo, `my-test-bucket` e `us-east-2`) da seguinte forma:

   1. Com o conteúdo do arquivo `s3/Program.cs` ainda exibido no editor, escolha **Run (Executar), Run Configurations (Configurações de execução), New Run Configuration (Nova configuração de execução)**.

   1. Na guia **[Novo] – Inativo**, selecione **Executor: automático** e escolha **.NET**.

   1. Na caixa **Comando**, digite o nome do aplicativo, o nome do bucket do Amazon S3 a ser criado e o ID da AWS região na qual criar o bucket (por exemplo,`s3 my-test-bucket us-east-2`).

   1. Escolha **Executar**.

      Por padrão, esse executor instrui o .NET a executar o arquivo `s3.dll` no diretório `s3/bin/Debug/netcoreapp3.1`.

      Compare os resultados com a seguinte saída.

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

## Etapa 9: Limpar
<a name="sample-dotnetcore-clean-up"></a>

Para evitar cobranças contínuas em sua AWS conta depois de terminar de usar esse exemplo, você deve excluir o ambiente. Para instruções, consulte [Excluindo um ambiente no AWS Cloud9](delete-environment.md).