Go のクイックスタート

このページでは、Cloud Build を使用して Go バイナリをビルドし、そのバイナリを Google Cloud Storage に push する方法について説明します。ビルド構成ファイルを作成し、そのファイルに Cloud Build の命令を追加します。その構成ファイルを使用してビルドを開始します。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP Console のプロジェクト セレクタのページで、GCP プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。 詳しくは、課金を有効にする方法をご覧ください。

  4. Cloud Build API を有効にします。

    APIを有効にする

  5. Cloud SDK をインストールして初期化します。

Google Cloud Platform にログインする

  1. gcloud コマンドライン ツールを承認して、プロジェクトにアクセスします。

    gcloud auth login
    
  2. gcloud ツール用のプロジェクトを構成します。ここで、[PROJECT_ID] は、前のセクションで作成または選択した GCP プロジェクト ID です。

    gcloud config set project [PROJECT_ID]
    

ソースファイルの準備

ビルドするサンプル ソースコードが必要です。このセクションでは、簡単な Hello World のサンプルを Go で作成します。

  1. 次の内容のファイルを main.go という名前で作成します。

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        fmt.Println("Hello, world!")
    }
    

Cloud Storage バケットの作成

ビルド後に Go バイナリを Push するための Cloud Storage バケットが必要です。このセクションでは、Cloud Storage バケットを作成します。

  1. ターミナル ウィンドウを開きます。

  2. gsutil mb コマンドを使用して、バケットを作成するための一意の名前を指定します。

    gsutil mb gs://[BUCKET_NAME]/
    

    [BUCKET_NAME] は、グローバルに一意である独自のバケット名です。

    成功した場合、次の内容が返されます。

    Creating gs://[BUCKET_NAME]/...
    

    バケットが作成されたので、データを保存できます。

    バケット名がすでに(自分または他のユーザーにより)使用されている場合は、コマンドから次のメッセージが返されます。

    Creating gs://[BUCKET_NAME]/...
    ServiceException: 409 Bucket [BUCKET_NAME] already exists.
    

    異なるバケット名でもう一度お試しください。

ビルドを構成する

Cloud Build で実行するアクションをビルド構成ファイル内に指定します。それらのアクションはビルドステップとして指定されます。ビルドステップでは、タスクを実行するためにビルダーが使用されます。ビルダーは、一般的な言語とツールがインストールされているコンテナ イメージです。Cloud Build には、Google が管理する一連のビルダーが用意されています。このセクションでは、これらのビルダーを使用して Go バイナリをビルドし、Google Cloud Storage に保存します。

  • main.go ファイルと同じディレクトリに、次の内容を含む cloudbuild.yaml という名前のファイルを作成します。このファイルがビルド構成ファイルです。ビルド時に、Cloud Build が自動的に $PROJECT_ID をプロジェクト ID に置き換えます。

    steps:
    - name: 'gcr.io/cloud-builders/go'
      args: ['install', '.']
      env: ['PROJECT_ROOT=hello']
    - name: 'gcr.io/cloud-builders/go'
      args: ['build', 'hello']
      env: ['PROJECT_ROOT=hello']
    artifacts:
      objects:
        location: 'gs://[BUCKET_NAME]/'
        paths: ['hello']
    

    上記の構成ファイルには 2 つのビルドステップが含まれています。ビルドステップの name は、タスクを実行するために使用するビルダーを参照するものです。args フィールドでは引数のリストを指定します。引数はビルダーに渡されます。env フィールドでは、ステップを実行する際に使用される環境変数を指定します。上記の例では、ルート プロジェクトが指定されています。この構成ファイルでは次のようになります。

    • 最初のビルドステップでは、go ビルダーを呼び出して依存関係をインストールします。
    • 2 番目のビルドステップでは、go ビルダーを呼び出してバイナリをビルドします。
    • Cloud Storage バケットにバイナリを格納するために artifacts フィールドが使用されます。

ビルドを開始する

  • gcloud builds submit コマンドを実行してビルドを開始します。

    gcloud builds submit --config cloudbuild.yaml .
    

    ビルドが完了すると、次のような出力が表示されます。

    PUSH
    DONE
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    ID                                    CREATE_TIME                DURATION  SOURCE                                                                                  IMAGES  STATUS
    $BUILD_ID                             2018-01-25T15:36:40+00:00  10S       gs://[PROJECT_ID]_cloudbuild/source/1516894599.15-25da391996554cdf81fb7786f914d7f1.tgz  -       SUCCESS
    

    ビルド構成ファイルを使用して Go バイナリをビルドし、そのバイナリを Cloud Storage バケットに保存しました。

ビルドの詳細の表示

  1. Google Cloud Platform Console で Cloud Build ページを開きます。

    Cloud Build ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

    [ビルド履歴] ページが表示されます。

    ビルド履歴ページのスクリーンショット

  3. ビルドをクリックします。

    次のスクリーンショットに示されているような [ビルドの詳細] ページが表示されます。

    ビルド詳細ページのスクリーンショット

クリーンアップ

このチュートリアルで使用したリソースについて GCP アカウントに課金されないようにするために、以下を行ってください。

  1. ターミナル ウィンドウを開きます(まだ開いていない場合)。

  2. -r フラグとともに gsutil rm command を使用してバケットを含め中にあるものすべてを削除し、[BUCKET_NAME] をバケット名で置き換えます。

    gsutil rm -r gs://[BUCKET_NAME]
    

    コマンドが正常終了した場合は、次のようなメッセージが返されます。

    Removing gs://[BUCKET_NAME]/just-a-folder/cloud-storage.logo.png#1456530077282000...
    Removing gs://[BUCKET_NAME]/...
    

    このクイックスタートで作成したアーティファクトがプロジェクトから削除されます。

これでクイックスタートの演習はすべて終了です。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Build のドキュメント