メニュー
AWS CodeBuild
ユーザーガイド (API Version 2016-10-06)

AWS CodeBuild の Go Hello World サンプル

この Go サンプルは hello という単一のバイナリファイルをビルド出力として生成します。

重要

このサンプルを実行すると、AWS アカウントに課金される場合があります。これには、AWS CodeBuild および Amazon S3、AWS KMS、CloudWatch Logs に関連する AWS リソースおよびアクションの料金が含まれます。詳細については、「AWS CodeBuild 料金表」、「Amazon S3 料金表」、「AWS Key Management Service 料金表」、「Amazon CloudWatch 料金表」を参照してください。

サンプルの実行

このサンプルを実行するには。

  1. このトピックの「ディレクトリ構造とファイル」セクションで説明されているようにファイルを作成し、Amazon S3 入力バケットまたは AWS CodeCommit または GitHub リポジトリにアップロードします。 repository.

    重要

    (ルートディレクトリ名) をアップロードしないでください。(ルートディレクトリ名) の中のファイルだけです。

    Amazon S3 入力バケットを使用している場合は、ファイルを含む ZIP ファイルを作成してから、入力バケットにアップロードしてください。.ZIP ファイルには (ルートディレクトリ名) を追加しないでください。(ルートディレクトリ名) の中のファイルだけです。

  2. AWS CodeBuild を直接実行する」の手順に従って、ビルドプロジェクトを作成し、ビルドを実行し、関連するビルド情報を表示します。

    AWS CLI を使用してビルドプロジェクトを作成する場合、create-project コマンドへの JSON 形式の入力はこれに似ています。(プレースホルダを独自の値に置き換えます。)

    Copy
    { "name": "sample-go-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/GoSample.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "packaging": "ZIP", "name": "GoOutputArtifact.zip" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/golang:1.7.3", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
  3. ビルド出力アーティファクトを取得するには、Amazon S3 出力バケットを開きます。

  4. GoOutputArtifact.zip ファイルをローカルコンピュータまたはインスタンスへダウンロードし、ファイルの内容を抽出します。抽出された内容で hello ファイルを取得します。

ディレクトリ構造

このサンプルでは、このディレクトリ構造を前提としています。

Copy
(root directory name) |-- buildspec.yml `-- hello.go

ファイル

このサンプルでは、これらのファイルを使用しています。

buildspec.yml ((ルートディレクトリ名) の中)

Copy
version: 0.1 phases: build: commands: - echo Build started on `date` - echo Compiling the Go code... - go build hello.go post_build: commands: - echo Build completed on `date` artifacts: files: - hello

hello.go((ルートディレクトリ名) の中)

Copy
package main import "fmt" func main() { fmt.Println("hello world") fmt.Println("1+1 =", 1+1) fmt.Println("7.0/3.0 =", 7.0/3.0) fmt.Println(true && false) fmt.Println(true || false) fmt.Println(!true) }