Tutoriel Go pour AWS Cloud9 - AWS Cloud9

AWS Cloud9 n'est plus disponible pour les nouveaux clients. Les clients existants de AWS Cloud9 peuvent continuer à utiliser le service normalement. En savoir plus »

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tutoriel Go pour AWS Cloud9

Ce didacticiel vous permet d'exécuter du code Go dans un environnement de AWS Cloud9 développement.

Le fait de suivre ce didacticiel et de créer cet exemple peut entraîner des frais sur votre AWS compte. Il peut s'agir de frais pour des services tels qu'Amazon EC2 et Amazon S3. Pour en savoir plus, consultez les sections Tarification Amazon EC2 et Tarification Amazon S3.

Prérequis

Avant d'utiliser cet exemple, vérifiez que votre configuration respecte les conditions requises suivantes :

  • Vous devez disposer d'un environnement de développement AWS Cloud9 EC2 existant. Cet exemple suppose que vous disposez déjà d'un environnement EC2 connecté à une instance Amazon EC2 s'exécutant sur Amazon Linux ou Ubuntu Server. Si vous utilisez un autre type d'environnement ou de système d'exploitation, vous devrez peut-être adapter les instructions de cet exemple pour configurer les outils associés. Pour plus d'informations, consultez Création d'un environnement dans AWS Cloud9.

  • L'IDE AWS Cloud9 correspondant à l'environnement existant est déjà ouvert. Lorsque vous ouvrez un environnement, AWS Cloud9 ouvre l'IDE associé à cet environnement dans votre navigateur web. Pour plus d'informations, consultez Ouverture d'un environnement dans AWS Cloud9.

Étape 1 : Installer les outils requis

Dans cette étape, vous installez et configurez Go, ce qui est nécessaire pour exécuter cet exemple de code.

  1. Dans une séancede terminal dans l'IDE AWS Cloud9, vérifiez si Go est déjà installé en exécutant la commande go version . (Pour démarrer une nouvelle séance de terminal, dans la barre de menus, choisissez Window, New Terminal.) En cas de réussite, la sortie doit contenir le numéro de version de Go. Dans le cas contraire, un message d'erreur est généré. Si Go est installé, passez directement à Étape 2 : Ajouter du code.

  2. Exécutez la commande yum update (pour Amazon Linux) ou la commande apt update (pour Ubuntu Server) afin d'être sûr que les mises à jour de sécurité et les correctifs les plus récents sont installés.

    Pour Amazon Linux :

    sudo yum -y update

    Pour Ubuntu Server :

    sudo apt update
  3. Pour installer Go, exécutez les commandes suivantes, l'une après l'autre.

    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.

    Les commandes précédentes supposent l'utilisation de la dernière version stable de Go au moment de la rédaction de cette rubrique. Pour plus d'informations, consultez Downloads sur le site web du langage de programmation Go.

  4. Ajoutez le chemin d'accès au fichier binaire Go dans votre variable d'environnement PATH, comme suit.

    1. Ouvrez votre fichier de profil shell (par exemple, ~/.bashrc) pour le modifier.

    2. À la fin de cette ligne de code, tapez les éléments suivants. Le code ressemble désormais à :

      PATH=$PATH:/usr/local/go/bin
    3. Enregistrez le fichier.

  5. Définissez le fichier ~/.bashrc en tant que source, afin que le terminal puisse désormais trouver le fichier binaire Go que vous venez de référencer.

    . ~/.bashrc
  6. Vérifiez que Go est maintenant correctement installé et configuré en exécutant la commande go version . En cas de réussite, la sortie contient le numéro de version de Go.

Étape 2 : Ajouter du code

Dans l'IDE AWS Cloud9, créez un fichier avec ce contenu et enregistrez-le sous le nom hello.go. (Pour créer un fichier, dans la barre de menus, choisissez Fichier, Nouveau fichier. Pour l'enregistrer, choisissez Fichier, Enregistrer.)

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)) }

Étape 3 : Exécuter le code

  1. Dans l'IDE AWS Cloud9, dans la barre de menus, choisissez Run (Exécuter), Run Configurations (Configurations d'exécution), New Run Configuration (Nouvelle configuration d'exécution).

  2. Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis Go.

    Note

    Si Go n'est pas disponible, vous pouvez créer un exécuteur personnalisé pour Go.

    1. Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis New Runner (Nouvel exécuteur).

    2. Dans l'onglet My Runner.run, remplacez le contenu de l'onglet par le code suivant.

      { "cmd" : ["go", "run", "$file", "$args"], "info" : "Running $project_path$file_name...", "selector" : "source.go" }
    3. Choisissez File (Fichier), Save As (Enregistrer sous) dans la barre de menus, et enregistrez le fichier sous le nom Go.run dans le dossier /.c9/runners.

    4. Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis Go.

    5. Choisissez l'onglet hello.go pour l'activer.

  3. Pour Commande), saisissez hello.go 5 9. Dans le code, 5 représente os.Args[1] et 9 représente os.Args[2].

    Sortie de l'exécution du code Go dans l'IDE AWS Cloud9
  4. Choisissez le bouton Run et comparez la sortie.

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

Étape 4 : Installation et configuration de l'interface AWS SDK for Go

Vous pouvez améliorer cet exemple afin d'utiliser le kit AWS SDK for Go pour créer un compartiment Amazon S3, répertorier vos compartiments disponibles, puis supprimer le compartiment que vous venez de créer.

Au cours de cette étape, vous allez installer et configurer le kit AWS SDK for Go, qui permet d'interagir facilement avec les services AWS, tels qu'Amazon S3, à partir de votre code Go. Avant d'installer le kit AWS SDK for Go, vous devez définir votre variable d'environnement GOPATH. Après avoir installé le kit AWS SDK for Go et défini votre variable d'environnement GOPATH, vous devez configurer la gestion des informations d'identification dans votre environnement. Le kit AWS SDK for Go a besoin de ces informations d'identification pour interagir avec les services AWS.

Pour définir votre variable d'environnement GOPATH

  1. Ouvrez votre fichier ~/.bashrc pour le modifier.

  2. Après la dernière ligne du fichier, saisissez ce code.

    GOPATH=~/environment/go export GOPATH
  3. Enregistrez le fichier.

  4. Définissez le fichier ~/.bashrc en tant que source, afin que le terminal puisse désormais trouver la variable d'environnement GOPATH que vous venez de référencer.

    . ~/.bashrc
  5. Vérifiez que la variable d'environnement GOPATH est correctement définie en exécutant la commande echo $GOPATH. En cas de réussite, la valeur /home/ec2-user/environment/go ou /home/ubuntu/environment/go doit être renvoyée en sortie.

Pour installer AWS SDK for Go

Exécutez la commande go get, en spécifiant l'emplacement de la source du kit AWS SDK for Go.

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

Go installe la source du kit AWS SDK for Go à l'emplacement spécifié par votre variable d'environnement GOPATH, qui est le dossier go dans votre environnement.

Pour configurer la gestion des informations d'identification dans votre environnement

Chaque fois que vous utilisez le kit AWS SDK for Go pour appeler un service AWS, vous devez fournir un ensemble d'informations d'identification avec l'appel. Ces informations d'identification déterminent si le kit AWS SDK for Go possède les autorisations appropriées pour effectuer cet appel. Si les informations d'identification ne sont pas associées aux autorisations nécessaires, l'appel échoue.

Au cours de cette étape, vous allez stocker vos informations d'identification dans l'environnement. Pour ce faire, suivez les instructions de la rubrique Appel des services AWS à partir d'un environnement dans AWS Cloud9, puis revenez à cette rubrique.

Pour plus d'informations, consultez Spécification des informations d’identification dans le Guide du développeur AWS SDK for Go.

Étape 5 : Ajouter du code SDK AWS

Au cours de cette étape, vous allez ajouter du code supplémentaire pour interagir avec Amazon S3, créer un compartiment, répertorier les compartiments disponibles, puis supprimer le compartiment que vous venez de créer. Vous exécuterez ce code ultérieurement.

Dans l'IDE AWS Cloud9, créez un fichier avec ce contenu et enregistrez-le sous le nom 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) }

Étape 6 : Exécuter le code du kit SDK AWS

  1. Dans l'IDE AWS Cloud9, dans la barre de menus, choisissez Run (Exécuter), Run Configurations (Configurations d'exécution), New Run Configuration (Nouvelle configuration d'exécution).

  2. Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis Go.

  3. Pour Command (Commande), saisissez s3.go YOUR_BUCKET_NAME THE_AWS_REGION , où YOUR_BUCKET_NAME correspond au nom du compartiment que vous souhaitez créer puis supprimer, et THE_AWS_REGION correspond à l'ID de la région AWS dans laquelle vous souhaitez créer le compartiment. Par exemple, pour la région USA Est (Ohio), utilisez us-east-2. Pour plus d'ID, consultez la section Amazon Simple Storage Service (Amazon S3) de la Référence générale d'Amazon Web Services.

    Note

    Les noms des compartiments Amazon S3 doivent être uniques dans l'ensemble d'AWS, pas seulement dans votre compte AWS.

  4. Choisissez le bouton Run et comparez la sortie.

    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:

Étape 7 : nettoyer

Afin d'éviter des frais permanents sur votre compte AWS une fois que vous avez fini d'utiliser cet exemple, vous devez supprimer l'environnement. Pour obtenir des instructions, consultez Suppression d'un environnement dans AWS Cloud9.