Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

チュートリアル: CodeBuild がホストする GitLab ランナーを設定

フォーカスモード
チュートリアル: CodeBuild がホストする GitLab ランナーを設定 - AWS CodeBuild

このチュートリアルでは、GitLab CI/CD パイプラインジョブを実行するように CodeBuild プロジェクトを設定する方法について説明します。CodeBuild で GitLab または GitLab セルフマネージドを使用する方法の詳細については、「AWS CodeBuild でのセルフマネージド型 GitLab ランナー」を参照してください。

このチュートリアルを完了するには、まず以下を行う必要があります。

  • CodeConnections を使用して OAuth アプリに接続します。OAuth アプリに接続する場合は、CodeBuild コンソールを使用して接続する必要があることに注意してください。詳細な手順については、「CodeBuild での GitLab アクセス」を参照してください。

  • CodeBuild を GitLab アカウントに接続します。これを行うには、コンソールで GitLab をソースプロバイダとして追加できます。手順については、CodeBuild での GitLab アクセス を参照してください。

    注記

    これを行う必要があるのは、アカウントで GitLab に接続していない場合のみです。

    この機能では、CodeBuild に GitLab OAuth アプリからの create_runnermanage_runner などの追加のアクセス許可が必要です。特定の GitLab アカウントに既存の CodeConnections がある場合、アクセス許可の更新は自動的にリクエストされません。これを行うには、CodeConnections コンソールに移動し、同じ GitLab アカウントへのダミー接続を作成して、追加のアクセス許可を取得するための再認証をトリガーします。これにより、すべての既存の接続でランナー機能を使用できます。完了したら、ダミー接続を削除できます。

ステップ 1: ウェブフックを使用して CodeBuild プロジェクトを作成

このステップでは、ウェブフックを使用して CodeBuild プロジェクトを作成し、GitLab コンソールで確認します。

ウェブフックを使用して CodeBuild プロジェクトを作成するには
  1. AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home) を開きます。

  2. ビルドプロジェクトを作成します。詳細については、「ビルドプロジェクトの作成 (コンソール)」および「ビルドの実行 (コンソール)」を参照してください。

    • [Source (ソース)] で、次のようにします。

      • [ソースプロバイダ][GitLab] を選択します。

      • [認証情報] で、次のいずれかを選択します。

        • [デフォルトソース認証情報] を選択します。デフォルト接続は、すべてのプロジェクトにデフォルトの GitLab 接続を適用します。

        • [カスタムソース認証情報] を選択します。カスタム接続は、アカウントのデフォルト設定を上書きするカスタム GitLab 接続を適用します。

        注記

        プロバイダへの接続をまだ作成していない場合は、新しい GitLab 接続を作成する必要があります。手順については、CodeBuild を GitLab に接続 を参照してください。

      • [リポジトリ] で、プロジェクトのパスと名前空間を指定して、GitLab 内のプロジェクトの名前を選択します。

    • [プライマリソースのウェブフックイベント] の場合:

      • [ウェブフック - オプション] で、[コードの変更がこのレポジトリにプッシュされるたびに再ビルド] を選択します。

      • [イベントタイプ] で、[WORKFLOW_JOB_QUEUED] を選択します。これを有効にすると、ビルドは [GitLab CI/CD パイプラインジョブ] イベントによってのみトリガーされます。

        注記

        CodeBuild は、ウェブフックに [WORKFLOW_JOB_QUEUED] イベントフィルタを含むフィルタグループがある場合にのみ、GitLab CI/CD パイプラインジョブイベントを処理します。

        [GitLab CI/CD パイプラインジョブ] イベントによってのみトリガーされるビルド設定。
    • [環境] で以下の操作を行います。

      • サポートされている [環境イメージ][コンピューティング] を選択します。GitLab CI/CD パイプライン YAML のラベルを使用して、イメージとインスタンスの設定を上書きするオプションがあることに注意してください。詳細については、「ステップ 2: リポジトリに .gitlab-ci.yml ファイルを作成」を参照してください。

    • [Buildspec (Buildspec)] で、次のようにします。

      • buildspec-override:true がラベルとして追加されない限り、buildspec は無視されることに注意してください。代わりに、CodeBuild は、セルフマネージド型ランナーを設定するコマンドを使用するように上書きします。

  3. デフォルト値のまま続行し、[ビルドプロジェクトを作成する] を選択します。

  4. https://gitlab.com/user-name/repository-name/-/hooks で GitLab コンソールを開き、ウェブフックが作成され、[ワークフロージョブ] イベントの配信が有効になっていることを確認します。

ステップ 2: リポジトリに .gitlab-ci.yml ファイルを作成

このステップでは、GitLab.gitlab-ci.yml ファイルを作成してビルド環境を設定し、CodeBuild で GitLab セルフマネージド型ランナーを使用します。詳細については、「Use self-managed runners」を参照してください。

GitLab CI/CD パイプライン YAML を更新

https://gitlab.com/user-name/project-name/-/tree/branch-name」に移動して、リポジトリで .gitlab-ci.yml ファイルを作成します。ビルド環境を設定するには、次のいずれかを実行します。

  • CodeBuild プロジェクト名を指定できます。その場合、ビルドはコンピューティング、イメージ、イメージバージョン、インスタンスサイズに既存のプロジェクト設定を使用します。GitLab ジョブの AWS 関連の設定を特定の CodeBuild プロジェクトにリンクするには、プロジェクト名が必要です。YAML にプロジェクト名を含めることで、CodeBuild は正しいプロジェクト設定でジョブを呼び出すことができます。

    tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME

    $CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME は、ビルドを特定のパイプラインジョブの実行にマッピングし、パイプラインの実行がキャンセルされたときにビルドを停止するために必要です。

    注記

    <project-name> が、CodeBuild で作成したプロジェクトの名前と一致していることを確認してください。一致しない場合、CodeBuild はウェブフックを処理せず、GitLab CI/CD パイプラインがハングする可能性があります。

    GitLab CI/CD パイプライン YAML の例を次に示します。

    workflow: name: HelloWorld stages: # List of stages for jobs, and their order of execution - build build-job: # This job runs in the build stage, which runs first. stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME
  • タグ内のイメージとコンピューティングタイプを上書きすることもできます。使用可能なイメージのリストについては、「CodeBuild がホストする GitLab ランナーでサポートされているコンピューティングイメージ」を参照してください。ラベル内のコンピューティングタイプとイメージは、プロジェクトの環境設定を上書きします。Amazon EC2 コンピューティングビルドの環境設定を上書きするには、次の構文を使用します。

    tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - image:<environment-type>-<image-identifier> - instance-size:<instance-size>

    GitLab CI/CD パイプライン YAML の例を次に示します。

    stages: - build build-job: stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - image:arm-3.0 - instance-size:small
  • タグ内のビルドに使用するフリートを上書きできます。これにより、プロジェクトで設定されたフリート設定が上書きされ、指定されたフリートが使用されます。詳細については、「リザーブドキャパシティキャパシティフリートでビルドを実行」を参照してください。Amazon EC2 コンピューティングビルドのフリート設定を上書きするには、次の構文を使用します。

    tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:<fleet-name>

    ビルドに使用されるフリートとイメージの両方を上書きするには、次の構文を使用します。

    tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:<fleet-name> - image:<environment-type>-<image-identifier>

    GitLab CI/CD パイプライン YAML の例を次に示します。

    stages: - build build-job: stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:myFleet - image:arm-3.0
  • カスタムイメージで GitLab CI/CD パイプラインジョブを実行するには、CodeBuild プロジェクトでカスタムイメージを設定し、イメージ上書きラベルを指定しないようにします。CodeBuild は、イメージ上書きラベルが指定されていない場合、プロジェクトで設定されたイメージを使用します。

.gitlab-ci.yml に変更をコミットすると、GitLab パイプラインがトリガーされ、build-job からウェブフック通知が送信され、CodeBuild でビルドが開始されます。

INSTALL、PRE_BUILD、POST_BUILD フェーズで buildspec コマンドを実行

デフォルトでは、CodeBuild はセルフマネージド型 GitLab ビルドを実行するときに buildspec コマンドを無視します。ビルド中に buildspec コマンドを実行するには、サフィックスとして buildspec-override:truetags に追加できます。

tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - buildspec-override:true

このコマンドを使用すると、CodeBuild はコンテナのプライマリソースフォルダに gitlab-runner というフォルダを作成します。GitLab ランナーが BUILD フェーズ中に起動すると、ランナーはその gitlab-runner ディレクトリで実行されます。

セルフマネージド型 GitLab ビルドで buildspec の上書きを使用する場合、いくつかの制限があります。

  • CodeBuild は、セルフマネージド型ランナーが BUILD フェーズで実行されるため、BUILD フェーズ中は buildspec コマンドを実行しません。

  • CodeBuild は、DOWNLOAD_SOURCE フェーズ中はプライマリソースもセカンダリソースもダウンロードしません。buildspec ファイルが設定されている場合、プロジェクトのプライマリソースからそのファイルのみがダウンロードされます。

  • ビルドコマンドが PRE_BUILD または INSTALL フェーズで失敗した場合、CodeBuild はセルフマネージド型ランナーを起動せず、GitLab CI/CD パイプラインジョブは手動でキャンセルする必要があります。

  • CodeBuild は、DOWNLOAD_SOURCE フェーズ中にランナートークンを取得します。有効期限は 1 時間です。PRE_BUILD または INSTALL フェーズが 1 時間を超えると、GitLab セルフマネージド型ランナーが起動する前にランナートークンの有効期限が切れる可能性があります。

ステップ 3: 結果を確認

GitLab CI/CD パイプラインの実行が発生するたびに、CodeBuild はウェブフックを介して CI/CD パイプラインジョブイベントを受信します。CI/CD パイプライン内のジョブごとに、CodeBuild はビルドを開始して一時的な GitLab ランナーを実行します。ランナーには、単一の CI/CD パイプラインジョブを実行する役割があります。ジョブが完了すると、ランナーおよび関連付けられたビルドプロセスは即座に終了します。

CI/CD パイプラインジョブのログを表示するには、GitLab のリポジトリに移動し、[ビルド][ジョブ] の順に選択し、ログを確認する特定の [ジョブ] を選択します。

ジョブが CodeBuild のセルフマネージド型ランナーによって取得されるのを待っている間に、リクエストされたラベルをログで確認できます。

GitLab ウェブフックイベントのフィルタリング (AWS CloudFormation)

AWS CloudFormation テンプレートの次の YAML 形式の部分は、true と評価されたときにビルドをトリガーするフィルタグループを作成します。次のフィルタグループは、正規表現 \[CI-CodeBuild\] に一致する CI/CD パイプライン名を持つ GitLab CI/CD パイプラインジョブリクエストを指定します。

CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: GITLAB Location: CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION Triggers: Webhook: true ScopeConfiguration: Name: group-name FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.