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.
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. Cela inclut les frais éventuels pour des services tels qu'Amazon EC2 et Amazon S3. Pour plus d'informations, consultez les sections EC2 Tarification
Rubriques
Prérequis
Avant d'utiliser cet exemple, vérifiez que votre configuration respecte les conditions requises suivantes :
-
Vous devez disposer d'un environnement AWS Cloud9 EC2 de développement existant. Cet exemple suppose que vous disposez déjà d'un EC2 environnement connecté à une EC2 instance Amazon qui exécute Amazon Linux ou Ubuntu Serveur. 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 de plus amples informations, veuillez consulter Création d'un environnement dans AWS Cloud9.
-
L' AWS Cloud9 IDE correspondant à l'environnement existant est déjà ouvert. Lorsque vous ouvrez un environnement, AWS Cloud9 ouvre l'IDE correspondant à cet environnement dans votre navigateur Web. Pour de plus amples informations, veuillez consulter Ouvrir 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 session de terminal dans l' AWS Cloud9 IDE, vérifiez si Go est déjà installé en exécutant la
go version
commande. (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' AWS Cloud9 IDE, créez un fichier avec ce contenu et enregistrez le fichier sous son nomhello.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' AWS Cloud9 IDE, dans la barre de menus, choisissez Run, Run Configurations, New Run Configuration.
-
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 du AWS SDK pour Go
Vous pouvez améliorer cet exemple AWS SDK pour 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 installez et configurez le AWS SDK pour Go, ce qui constitue un moyen pratique d'interagir avec AWS des services tels qu'Amazon S3, à partir de votre code Go. Avant d'installer le kit AWS SDK pour Go, vous devez définir votre variable d'environnement GOPATH
. Après avoir installé le kit AWS SDK pour Go et défini votre variable d'environnement GOPATH
, vous devez configurer la gestion des informations d'identification dans votre environnement. Ils ont AWS SDK pour Go besoin de ces informations d'identification pour interagir avec AWS
les services.
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 pour Go
Exécutez la go get
commande en spécifiant l'emplacement de la AWS SDK pour Go source.
go get -u github.com/aws/aws-sdk-go/...
Go installe la AWS SDK pour Go source à l'emplacement spécifié par votre variable d'GOPATH
environnement, à savoir le go
dossier de votre environnement.
Pour configurer la gestion des informations d'identification dans votre environnement
Chaque fois que vous utilisez le AWS SDK pour Go pour appeler un AWS service, vous devez fournir un ensemble d'informations d'identification avec l'appel. Ces informations d'identification déterminent s'il AWS SDK pour Go dispose des 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 Appeler Services AWS depuis 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 pour Go .
Étape 5 : ajouter le code du AWS SDK
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' AWS Cloud9 IDE, créez un fichier avec ce contenu et enregistrez le fichier sous son noms3.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 AWS SDK
-
Dans l' AWS Cloud9 IDE, dans la barre de menus, choisissez Run, Run Configurations, New Run Configuration.
-
Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis Go.
-
Dans Command
s3.go YOUR_BUCKET_NAME THE_AWS_REGION
, saisissezYOUR_BUCKET_NAME
le nom du compartiment que vous souhaitez créer puis supprimer, ainsiTHE_AWS_REGION
que l'ID de la AWS région dans laquelle vous souhaitez créer le compartiment. Par exemple, pour la région USA Est (Ohio), utilisezus-east-2
. Pour en savoir plus IDs, consultez Amazon Simple Storage Service (Amazon S3) dans le. Référence générale d'Amazon Web ServicesNote
Les noms des compartiments Amazon S3 doivent être uniques pour l'ensemble de votre compte AWS, et pas uniquement pour ce qui est de votre AWS compte.
-
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
Pour éviter que votre AWS compte ne soit débité une fois que vous aurez terminé d'utiliser cet exemple, vous devez supprimer l'environnement. Pour obtenir des instructions, consultez Supprimer un environnement dans AWS Cloud9.