AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。進一步了解
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的 Go 教學課程 AWS Cloud9
本教學課程可讓您在 AWS Cloud9 開發環境中執行一些 Go 程式碼。
遵循本教學課程並建立此範例可能會導致 AWS 您的帳戶產生費用。這包括 Amazon EC2和 Amazon S3 等服務的可能費用。如需詳細資訊,請參閱 Amazon EC2 Pricing
主題
必要條件
在您使用此範例前,請務必確認您的設定符合下列要求:
-
您必須具有現有的 AWS Cloud9 EC2開發環境。此範例假設您已擁有連線至執行 Amazon Linux 或 的 Amazon EC2執行個體EC2的環境 Ubuntu 伺服器。如果您有不同類型的環境或作業系統,您可能需要依照此範例的說明來設定相關工具。如需詳細資訊,請參閱在 中建立環境 AWS Cloud9。
-
您已經開啟現有環境的 AWS Cloud9 IDE。當您開啟環境時,請在 Web 瀏覽器中 AWS Cloud9 開啟該環境IDE的 。如需詳細資訊,請參閱在 AWS Cloud9 中開啟環境。
步驟 1:安裝必要工具
在此步驟中,您將安裝和設定 Go,這是執行此範例的必要工具。
-
在 的終端機工作階段中 AWS Cloud9 IDE,執行
go version
命令以確認是否已安裝 Go。(若要啟動新終端機工作階段,請在選單列上,選擇 Window (視窗)、New Terminal (新增終端機)。如果成功,則輸出應該包含 Go 版本號碼。否則,應該會輸出錯誤訊息。若 Go 已安裝,請跳至步驟 2:新增程式碼。 -
執行
yum update
(適用於 Amazon Linux) 或apt update
(適用於 Ubuntu Server) 命令,協助確保已安裝最新安全性更新和錯誤修正。針對 Amazon Linux:
sudo yum -y update
針對 Ubuntu Server:
sudo apt update
-
若要安裝 Go,請逐一執行這些命令。
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 Programming Language 網站上的 Downloads
。 -
將 Go 二進位檔的路徑新增至
PATH
環境變數,如下所示。-
開啟您的 shell 描述檔檔案 (例如,
~/.bashrc
) 以進行編輯。 -
在這行程式碼的結尾,輸入下列程式碼,讓程式碼現在如下所示。
PATH=$PATH:/usr/local/go/bin
-
儲存檔案。
-
-
取得
~/.bashrc
檔案,讓終端機現在可以找到您剛剛參考的 Go 二進位檔。. ~/.bashrc
-
執行
go version
命令,以確認現在已成功安裝和設定 Go。如果成功,輸出會包含 Go 版本號碼。
步驟 2:新增程式碼
在 中 AWS Cloud9 IDE,建立具有此內容的檔案,並使用名稱 儲存檔案hello.go
。(若要建立檔案,請在選單列上選擇 File (檔案)、New File (新增檔案)。若要儲存檔案,請選擇 File (檔案)、Save (儲存)。)
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 (另存新檔),然後儲存檔案至
/.c9/runners
資料夾並命名為Go.run
。 -
在 [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 SDK for Go 需要這些憑證才能與服務 AWS 互動。
設定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 會將 AWS SDK for Go 來源安裝到GOPATH
環境變數指定的位置,這是您環境中的go
資料夾。
在環境中設定憑證管理
每次使用 AWS SDK for Go 呼叫 AWS 服務時,您必須隨呼叫提供一組憑證。這些憑證會判斷 是否 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 中的環境」。