Tutorial Go para AWS Cloud9 - AWS Cloud9

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 Go para AWS Cloud9

Este tutorial permite executar um código Go em um ambiente de desenvolvimento do AWS Cloud9.

Seguindo este tutorial e criando este exemplo pode gerar cobranças em sua conta da AWS. Isso inclui possíveis cobranças por serviços como o Amazon EC2 e Amazon S3. Para obter mais informações, consulte Definição de preço do Amazon EC2 e Definição de preço do Amazon S3.

Pré-requisitos

Antes de usar esse exemplo, verifique se suas configurações cumprem os requisitos a seguir.

  • É necessário ter um ambiente existente de desenvolvimento do AWS Cloud9 EC2 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.

  • Você tem o IDE do AWS Cloud9 para o ambiente existente já aberto. Ao abrir um ambiente o AWS Cloud9 abre o IDE para esse ambiente em um navegador da Web. Para obter mais informações, consulte Abrir um ambiente no AWS Cloud9.

Etapa 1: Instalar as ferramentas necessárias

Nesta etapa, instale e configure a Go, necessária para executar esse exemplo.

  1. Em uma sessão de terminal no IDE do AWS Cloud9 confirme se o Go já está instalado, executando o comando go version . (Para iniciar uma nova sessão de terminal, na barra de menus, selecione Janela, Novo terminal.) Se for bem-sucedido, a saída deve conter o número da versão Go. Caso contrário, será exibida uma mensagem de erro. Se o Go estiver instalado, avance para Etapa 2: Adicionar código.

  2. Execute o comando yum update para Amazon Linux ou o comando apt update para Ubuntu Server a fim de ajudar a garantir que as atualizações de segurança e correções de bug mais recentes sejam instaladas.

    Para Amazon Linux:

    sudo yum -y update

    Para Ubuntu Server:

    sudo apt update
  3. Para instalar a Go, execute esses comandos, um por vez.

    wget https://storage.googleapis.com/golang/go1.9.3.linux-amd64.tar.gz # Download the Go installer. sudo tar -C /usr/local -xzf ./go1.9.3.linux-amd64.tar.gz # Install Go. rm ./go1.9.3.linux-amd64.tar.gz # Delete the installer.

    Os comandos anteriores assumem a versão estável mais recente da Go no momento em que este tópico foi escrito. Para obter mais informações, consulte Downloads no site The Go Programming Language.

  4. Adicione o caminho para o binário Go à variável de ambiente PATH, da seguinte forma.

    1. Abra o arquivo de perfil de shell (por exemplo, ~/.bashrc) para edição.

    2. No final dessa linha de código, digite o seguinte, para que o código tenha a seguinte aparência.

      PATH=$PATH:/usr/local/go/bin
    3. Salve o arquivo.

  5. Extraia o arquivo ~/.bashrc para que o terminal possa encontrar o binário Go referenciado anteriormente.

    . ~/.bashrc
  6. Confirme se a Go foi instalada e configurada com sucesso executando o comando go version . Se sim, a saída contém o número da versão Go.

Etapa 2: Adicionar código

No IDE do AWS Cloud9, crie um arquivo com esse conteúdo e salve-o com o nome hello.go. (Para criar um arquivo, na barra de menus, selecione File (Arquivo), New File (Novo arquivo). Para salvar o arquivo, selecione File (Arquivo), Save (Salvar).)

package main import ( "fmt" "os" "strconv" ) func main() { fmt.Printf("Hello, World!\n") fmt.Printf("The sum of 2 and 3 is 5.\n") first, _ := strconv.Atoi(os.Args[1]) second, _ := strconv.Atoi(os.Args[2]) sum := first + second fmt.Printf("The sum of %s and %s is %s.", os.Args[1], os.Args[2], strconv.Itoa(sum)) }

Etapa 3: Executar o código

  1. No IDE do AWS Cloud9, na barra de menus, selecione Run (Executar), Run Configurations (Configurações de execução), New Run Configuration (Nova configuração de execução).

  2. Na guia [Novo] – Inativo, selecione Executor: automático e, em seguida, selecione Ir.

    nota

    Se Go não estiver disponível, crie um executor personalizado para Go.

    1. Na guia [New] - Idle ([Novo] – Inativo), selecione Runner: Auto (Executor: automático) e, em seguida, selecione New Runner (Novo executor).

    2. Na guia My Runner.run (Meu Runner.run), substitua o conteúdo da guia por esse código.

      { "cmd" : ["go", "run", "$file", "$args"], "info" : "Running $project_path$file_name...", "selector" : "source.go" }
    3. Selecione File (Arquivo), Save As (Salvar como) na barra de menus e salve o arquivo como Go.run na pasta /.c9/runners.

    4. Na guia [Novo] – Inativo, selecione Executor: automático e, em seguida, selecione Ir.

    5. Selecione a guia hello.go para ativá-la.

  3. Em Comando, digite hello.go 5 9. No código, 5 representa os.Args[1] e 9 representa os.Args[2].

    Resultado da execução do código Go no IDE do AWS Cloud9
  4. Selecione o botão Executar e compare a sua saída.

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

Etapa 4: Instalar e configurar o AWS SDK for Go

Você pode aprimorar este exemplo para usar o AWS SDK for Go para criar um bucket do Amazon S3, listar os buckets disponíveis e excluir o bucket que acabou de criar.

Nesta etapa, instale e configure o AWS SDK for Go, que fornece uma forma conveniente de interagir com os serviços da AWS, como o Amazon S3, no código Go. Antes de instalar o AWS SDK for Go, defina a variável de ambiente GOPATH. Após instalar o AWS SDK for Go e definir a variável de ambiente GOPATH, configure o gerenciamento de credenciais no ambiente. O AWS SDK for Go precisa dessas credenciais para interagir com os serviços da AWS.

Para definir a variável de ambiente GOPATH

  1. Abra o arquivo ~/.bashrc para edição.

  2. Após a última linha no arquivo, digite esse código.

    GOPATH=~/environment/go export GOPATH
  3. Salve o arquivo.

  4. Extraia o arquivo ~/.bashrc para que o terminal possa encontrar a variável de ambiente GOPATH referenciada anteriormente.

    . ~/.bashrc
  5. Confirme se a variável de ambiente GOPATH foi definida com sucesso executando o comando echo $GOPATH. Se tiver êxito, a saída deverá ser /home/ec2-user/environment/go ou /home/ubuntu/environment/go.

Para instalar o AWS SDK for Go

Execute o comando go get , especificando o local da origem do AWS SDK for Go.

go get -u github.com/aws/aws-sdk-go/...

O Go instala a fonte do AWS SDK for Go no local especificado pela variável do ambiente GOPATH, que é a pasta go no seu ambiente.

Para configurar o gerenciamento de credenciais no ambiente

Toda vez que você usar o AWS SDK for Go para chamar um serviço da AWS, forneça um conjunto de credenciais com a chamada. Essas credenciais determinam se o &sdk-cpp; tem as permissões apropriadas para realizar essa chamada. Se as credenciais não cobrirem as permissões apropriadas, a chamada falhará.

Nesta etapa, você armazenará as credenciais no ambiente. Para fazer isso, siga as instruções em Chamar Serviços da AWS em um ambiente no AWS Cloud9 e retorne a este tópico.

Para obter mais informações, consulte Specifying Credentials(Especificar credenciais) no Manual do desenvolvedor do AWS SDK for Go.

Etapa 5: Adicionar código do SDK da AWS

Nesta etapa, adicione mais código, dessa vez para interagir com o Amazon S3 para criar um bucket, listar os buckets disponíveis e, excluir o bucket que você acabou de criar. xEsse código será executado mais tarde.

No IDE do AWS Cloud9, crie um arquivo com esse conteúdo e salve-o com o nome s3.go.

package main import ( "fmt" "os" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3" ) func main() { if len(os.Args) < 3 { fmt.Printf("Usage: go run s3.go <the bucket name> <the AWS Region to use>\n" + "Example: go run s3.go my-test-bucket us-east-2\n") os.Exit(1) } sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, })) svc := s3.New(sess, &aws.Config{ Region: aws.String(os.Args[2]), }) listMyBuckets(svc) createMyBucket(svc, os.Args[1], os.Args[2]) listMyBuckets(svc) deleteMyBucket(svc, os.Args[1]) listMyBuckets(svc) } // List all of your available buckets in this AWS Region. func listMyBuckets(svc *s3.S3) { result, err := svc.ListBuckets(nil) if err != nil { exitErrorf("Unable to list buckets, %v", err) } fmt.Println("My buckets now are:\n") for _, b := range result.Buckets { fmt.Printf(aws.StringValue(b.Name) + "\n") } fmt.Printf("\n") } // Create a bucket in this AWS Region. func createMyBucket(svc *s3.S3, bucketName string, region string) { fmt.Printf("\nCreating a new bucket named '" + bucketName + "'...\n\n") _, err := svc.CreateBucket(&s3.CreateBucketInput{ Bucket: aws.String(bucketName), CreateBucketConfiguration: &s3.CreateBucketConfiguration{ LocationConstraint: aws.String(region), }, }) if err != nil { exitErrorf("Unable to create bucket, %v", err) } // Wait until bucket is created before finishing fmt.Printf("Waiting for bucket %q to be created...\n", bucketName) err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{ Bucket: aws.String(bucketName), }) } // Delete the bucket you just created. func deleteMyBucket(svc *s3.S3, bucketName string) { fmt.Printf("\nDeleting the bucket named '" + bucketName + "'...\n\n") _, err := svc.DeleteBucket(&s3.DeleteBucketInput{ Bucket: aws.String(bucketName), }) if err != nil { exitErrorf("Unable to delete bucket, %v", err) } // Wait until bucket is deleted before finishing fmt.Printf("Waiting for bucket %q to be deleted...\n", bucketName) err = svc.WaitUntilBucketNotExists(&s3.HeadBucketInput{ Bucket: aws.String(bucketName), }) } // If there's an error, display it. func exitErrorf(msg string, args ...interface{}) { fmt.Fprintf(os.Stderr, msg+"\n", args...) os.Exit(1) }

Etapa 6: Executar o código SDK da AWS

  1. No IDE do AWS Cloud9, na barra de menus, selecione Run (Executar), Run Configurations (Configurações de execução), New Run Configuration (Nova configuração de execução).

  2. Na guia [Novo] – Inativo, selecione Executor: automático e, em seguida, selecione Ir.

  3. Em Command (Comando), digite s3.go YOUR_BUCKET_NAME THE_AWS_REGION , em que YOUR_BUCKET_NAME é o nome do bucket que você deseja criar e excluir, e THE_AWS_REGION é o ID da região da AWS em que deseja criar o bucket. Por exemplo, para a região Leste dos EUA (Ohio), use us-east-2. Para obter mais IDs, consulte Amazon Simple Storage Service (Amazon S3) na Referência geral da Amazon Web Services.

    nota

    Os nomes de buckets do Amazon S3 devem ser exclusivos em toda a AWS, e não apenas na sua conta da AWS.

  4. Selecione o botão Executar e compare a sua saída.

    My buckets now are: Creating a new bucket named 'my-test-bucket'... My buckets now are: my-test-bucket Deleting the bucket named 'my-test-bucket'... My buckets now are:

Etapa 7: limpar

Para evitar cobranças contínuas em sua conta da AWS, ao terminar de usar este exemplo, exclua o ambiente. Para obter instruções, consulte Excluir um ambiente no AWS Cloud9.