AWS Cloud9 は、新しいお客様では利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の Go チュートリアル AWS Cloud9
このチュートリアルでは、 AWS Cloud9 開発環境で Go コードを実行できます。
このチュートリアルに従い、このサンプルを作成すると、 AWS アカウントに料金が発生する可能性があります。これらには、Amazon EC2や Amazon S3 などのサービスに対して発生する可能性のある料金が含まれます。詳細については、「Amazon EC2料金
トピック
前提条件
このサンプルを使用する前に、設定が次の要件を満たしていることを確認します。
-
既存の AWS Cloud9 EC2開発環境が必要です。このサンプルは、EC2Amazon EC2 Linux または Ubuntu サーバー。別のタイプの環境またはオペレーティングシステムがある場合、このサンプルの指示を関連ツールを設定する必要がある場合があります。詳細については、「での環境の作成 AWS Cloud9」を参照してください。
-
既存の環境の は既に開いています AWS Cloud9 IDE。環境を開くと、 はウェブブラウザでその環境IDEの AWS Cloud9 を開きます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。
ステップ 1: 必要なツールをインストールする
このステップでは Go をインストールして設定します。このサンプルを実行するために必要なものです。
-
のターミナルセッションで AWS Cloud9 IDE、
go version
コマンドを実行して Go が既にインストールされているかどうかを確認します。(新しいターミナルセッションを開始するには、メニューバーで、[Window (ウィンドウ)]、[New Terminal (新しいターミナル)]の順に選択します。) 成功した場合、出力に Go のバージョン番号が含まれています。それ以外の場合は、エラーメッセージが出力されます。Go がインストール済みである場合は、ステップ 2: コードを追加する に進んでください。 -
(Amazon Linux) 用
yum update
または (Ubuntu Server) 用apt update
コマンドを実行して、最新のセキュリティ更新プログラムおよびバグ修正がインストールされていることを確認します。Amazon Linux の場合:
sudo yum -y update
Ubuntu Server の場合:
sudo apt update
-
Go をインストールするには、以下のコマンドを 1 つずつ実行します。
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.
前述のコマンドは、このトピックが作成された時点の最新の安定バージョンの Go を前提にしています。詳細については、Go プログラミング言語ウェブサイトで「Downloads
」を参照してください。 -
Go バイナリのパスを
PATH
環境変数に追加します。次のようになります。-
編集のため、シェルプロファイルのファイル (たとえば
~/.bashrc
) を開きます。 -
次のコード行の末尾に、次のように入力します。これにより、コードは次のようになります。
PATH=$PATH:/usr/local/go/bin
-
ファイルを保存します。
-
-
~/.bashrc
ファイルをソース化し、ターミナルが今参照した Go バイナリを見つけられるようにします。. ~/.bashrc
-
go version
コマンドを実行して、Go が正しくインストールおよび設定されていることを確認します。成功した場合、出力に Go のバージョン番号が含まれています。
ステップ 2: コードを追加する
で AWS Cloud9 IDE、このコンテンツを含むファイルを作成し、 という名前でファイルを保存しますhello.go
。(メニューバーでファイルを作成するには、ファイル、New File (新しいファイル)を選択します。 ファイルを保存するには、ファイル、保存を選択します。)
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)) }
ステップ 3: コードを実行する
-
AWS Cloud9 IDEのメニューバーで、実行 、設定の実行 、新しい設定の実行 を選択します。
-
[[New] - Idle ([新規] - アイドル)] タブで、[Runner: Auto (ランナー: 自動)] を選択し、[Go] を選択します。
注記
[Go] が利用できない場合は、Go 用のカスタムランナーを作成できます。
-
[[New] - Idle ([新規] - アイドル)] タブで、[Runner: Auto (ランナー: 自動)] を選択し、[New Runner (新しいランナー)] を選択します。
-
[My Runner.run] タブで、タブの内容を以下のコードに置き換えます。
{ "cmd" : ["go", "run", "$file", "$args"], "info" : "Running $project_path$file_name...", "selector" : "source.go" }
-
メニューバーで [File (ファイル)]、[Save As (名前を付けて保存)] の順に選択し、ファイルを
Go.run
として/.c9/runners
フォルダに保存します。 -
[[New] - Idle ([新規] - アイドル)] タブで、[Runner: Auto (ランナー: 自動)] を選択し、[Go] を選択します。
-
[hello.go] タブを選択し、アクティブにします。
-
-
[Command (コマンド)]に「
hello.go 5 9
」と入力します。コード内の5
はos.Args[1]
を、9
はos.Args[2]
を表します。 -
[Run (実行)]ボタンを選択して、出力を比較します。
Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
ステップ 4: をインストールして設定する AWS SDK for Go
このサンプルを強化して、 AWS SDK for Go を使用して Amazon S3 バケットを作成し、使用可能なバケットを一覧表示し、作成したばかりのバケットを削除できます。
このステップでは、 をインストールして設定します。これにより AWS SDK for Go、Go コードから Amazon S3 などの AWS サービスとやり取りする便利な方法が提供されます。 AWS SDK for Goをインストールする前に、GOPATH
環境変数を設定する必要があります。 AWS SDK for Go インストールして GOPATH
環境変数を設定したら、環境で認証情報管理をセットアップする必要があります。では、サービスとやり取り AWS するためにこれらの認証情報 AWS SDK for Go が必要です。
GOPATH 環境変数を設定するには
-
編集する
~/.bashrc
ファイルを開きます。 -
ファイルの最後の行の後に、次のコードを入力します。
GOPATH=~/environment/go export GOPATH
-
ファイルを保存します。
-
~/.bashrc
ファイルをソース化し、ターミナルが今参照したGOPATH
環境変数を見つけられるようにします。. ~/.bashrc
-
echo $GOPATH
コマンドを実行して、GOPATH
環境変数が正しく設定されたことを確認します。成功した場合、/home/ec2-user/environment/go
または/home/ubuntu/environment/go
が出力されます。
をインストールするには AWS SDK for Go
コマンドを実行しgo get
、 AWS SDK for Go ソースの場所を指定します。
go get -u github.com/aws/aws-sdk-go/...
Go は、GOPATH
環境変数で指定された場所に AWS SDK for Go ソースをインストールします。これは環境内のgo
フォルダです。
環境で認証情報管理を設定するには
を使用して AWS サービスを AWS SDK for Go 呼び出すたびに、呼び出しで一連の認証情報を指定する必要があります。これらの認証情報は、 にその呼び出しを行うための適切なアクセス許可 AWS SDK for Go があるかどうかを決定します。認証情報に適切なアクセス権限がない場合は、呼び出しは失敗します。
このステップでは、環境内に認証情報を保存します。これを行うには、の環境 AWS のサービス からの呼び出し AWS Cloud9の手順を実行してから、このトピックに戻ります。
詳細については、AWS SDK for Go デベロッパーガイドの「認証情報の指定」を参照してください。
ステップ 5: コードを追加する AWS SDK
このステップでは、今度は Amazon S3 を操作してバケットを作成し、利用できるバケットのリストを表示した後、作成したバケットを削除するコードをいくつか追加します。このコードは後で実行します。
で AWS Cloud9 IDE、このコンテンツを含むファイルを作成し、 という名前でファイルを保存します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) }
ステップ 6: コードを実行する AWS SDK
-
AWS Cloud9 IDEのメニューバーで、実行 、実行設定 、新しい実行設定 を選択します。
-
[[New] - Idle ([新規] - アイドル)] タブで、[Runner: Auto (ランナー: 自動)] を選択し、[Go] を選択します。
-
コマンド には、 と入力します。ここで
s3.go YOUR_BUCKET_NAME THE_AWS_REGION
、YOUR_BUCKET_NAME
は作成して削除するバケットの名前であり、THE_AWS_REGION
はバケットを作成する AWS リージョンの ID です。たとえば、米国東部 (オハイオ) リージョンの場合は、us-east-2
を使用します。詳細についてはIDs、「」の「Amazon Simple Storage Service (Amazon S3)」を参照してくださいAmazon Web Services 全般のリファレンス。注記
Amazon S3 バケット名は、アカウント AWS だけでなく AWS、全体で一意である必要があります。
-
[Run (実行)]ボタンを選択して、出力を比較します。
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:
ステップ 7: クリーンアップする
このサンプルの使用が完了した後に AWS アカウントへの継続的な料金が発生するのを防ぐには、環境を削除する必要があります。手順については、AWS Cloud9 で環境を削除する を参照してください。