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
Rubriques
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.
-
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. -
Exécutez la commande
yum update
(pour Amazon Linux) ou la commandeapt 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
-
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. -
Ajoutez le chemin d'accès au fichier binaire Go dans votre variable d'environnement
PATH
, comme suit.-
Ouvrez votre fichier de profil shell (par exemple,
~/.bashrc
) pour le modifier. -
À la fin de cette ligne de code, tapez les éléments suivants. Le code ressemble désormais à :
PATH=$PATH:/usr/local/go/bin
-
Enregistrez le fichier.
-
-
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
-
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
-
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).
-
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.
-
Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis New Runner (Nouvel exécuteur).
-
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" }
-
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
. -
Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis Go.
-
Choisissez l'onglet hello.go pour l'activer.
-
-
Pour Commande), saisissez
hello.go 5 9
. Dans le code,5
représenteos.Args[1]
et9
représenteos.Args[2]
. -
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
-
Ouvrez votre fichier
~/.bashrc
pour le modifier. -
Après la dernière ligne du fichier, saisissez ce code.
GOPATH=~/environment/go export GOPATH
-
Enregistrez le fichier.
-
Définissez le fichier
~/.bashrc
en tant que source, afin que le terminal puisse désormais trouver la variable d'environnementGOPATH
que vous venez de référencer.. ~/.bashrc
-
Vérifiez que la variable d'environnement
GOPATH
est correctement définie en exécutant la commandeecho $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
-
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).
-
Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis Go.
-
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, etTHE_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), utilisezus-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.
-
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.