AWS CodeBuild
ユーザーガイド (API バージョン 2016-10-06)

CodeBuild のトラブルシューティング

このトピックの情報を使用して、問題を特定、診断、対処します。

トピック

エラー : ビルドプロジェクトを作成または更新する際、「CodeBuild は sts:AssumeRole の実行を許可されていません」

問題: プロジェクトのビルドを作成または更新しようとすると、以下のようなエラーが表示されます。「Code:InvalidInputException、メッセージ: CodeBuild は、次の実行を許可されていません。sts:AssumeRole on arn:aws:iam::account-ID:role/service-role-name

考えられる原因:

  • ビルドプロジェクトを作成または更新しようとしている AWS リージョン向けの AWS Security Token Service (AWS STS) が非アクティブ化されました。

  • ビルドプロジェクトに関連付けられた AWS CodeBuild サービスロールは存在しないか、CodeBuild を信頼するための十分なアクセス許可がありません。

推奨される解決策:

  • ビルドプロジェクトを作成または更新しようとしている AWS リージョン向けの AWS STS がアクティブ化されていることを確認します。詳細については、『IAM User Guide』の「AWS リージョンでの AWS STS のアクティブ化と非アクティブ化」を参照してください。

  • 対象 CodeBuild サービスロールが AWS アカウント内に存在することを確認します。コンソールを使用していない場合は、ビルドプロジェクトを作成または更新したときにサービスロールの Amazon リソースネーム (ARN) のスペルを間違えていないことを確認してください。

  • 対象の CodeBuild サービスロールに、CodeBuild を信頼するための十分な権限があることを確認します。詳細については、CodeBuild サービスロールを作成するの「信頼関係のポリシーステートメント」を参照してください。

エラー: "このビルドイメージではランタイムバージョンを少なくとも 1 つ選択する必要があります。"

問題: ビルドを実行するときに、DOWNLOAD_SOURCE ビルドフェーズが "YAML_FILE_ERROR: このビルドイメージではランタイムバージョンを少なくとも 1 つ選択する必要があります。" というエラーで失敗する。

考えられる原因: ビルドでバージョン 1.0 以降の Amazon Linux 2 (AL2) 標準イメージ、またはバージョン 2.0 以降の Ubuntu 標準イメージが使用されていますが、buildspec ファイルでランタイムが指定されていません。

推奨される解決策: aws/codebuild/standard:2.0 CodeBuild マネージド型イメージを使用する場合は、buildspec ファイルの runtime-versions セクションでランタイムバージョンを指定する必要があります。たとえば、PHP を使用するプロジェクトでは、次の buildspec ファイルを使用します。

version: 0.2 phases: install: runtime-versions: php: 7.3 build: commands: - php --version artifacts: files: - README.md

注記

runtime-versions セクションを指定して、Ubuntu Standard Image 2.0 以降、または Amazon Linux 2 (AL2) Standard Image 1.0 以降以外のイメージを使用すると、ビルドは警告「ランタイムインストールのスキップランタイムのバージョン選択は、このイメージビルドに対応していません。」を出します。

詳細については、「buildspec ファイルのランタイムバージョンを指定する」を参照してください。

Error: "Cannot connect to the Docker daemon" when running a build (ビルドの実行時に「Docker デーモンに接続できません」)

問題: ビルドでエラーが発生し、ビルドログに Cannot connect to the Docker daemon at unix:/var/run/docker.sock. Is the docker daemon running? のようなエラーが表示されている。

考えられる原因: 権限モードでビルドを実行していない。

推奨される解決策: 権限モードでビルドを実行する。

  1. Open the CodeBuild console at https://console.aws.amazon.com/codebuild/.

  2. ナビゲーションペインで [ビルドプロジェクト] を選択し、該当するビルドプロジェクトを選択します。

  3. [編集] から [環境] を選択します。

  4. [Override images]、[環境] の順に選択します。

  5. 環境イメージ、オペレーティングシステム、ランタイム、およびイメージを指定します。これらはエラーになったビルドと同じように設定されています。

  6. [特権付与] を選択します。

  7. [Update environment (環境の更新)] を選択します。

  8. [ビルドの開始] を選択してビルドを再度実行します。

警告 : ビルド実行時に "ランタイムのインストールをスキップします。このビルドイメージではランタイムバージョンの選択がサポートされていません" と表示される

問題: ビルドを実行すると、ビルドログに "ランタイムインストールのスキップランタイムのバージョン選択は、このイメージビルドに対応していません。" という警告が表示される。

考えられる原因: ビルドでバージョン 1.0 以降の Amazon Linux (AL2) 標準イメージ、またはバージョン 2.0 以降の Ubuntu 標準イメージが使用されていませんが、buildspec ファイルの runtime-versions セクションでランタイムが指定されています。

推奨される解決策: buildspec ファイルに runtime-versions セクションが含まれていないことを確認します。runtime-versions セクションは、Amazon Linux (AL2) 標準イメージのバージョン 1.0 以降または Ubuntu 標準イメージのバージョン 2.0 以降を使用する場合にのみ必要です。

エラー: ビルドの実行時に「アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレス指定する必要があります」

問題: ビルドを実行すると、DOWNLOAD_SOURCE ビルドフェーズは失敗し、「アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレス指定する必要があります。今後のリクエストはこのエンドポイントに送信してください」というエラーが発生します。

考えられる原因: 事前に構築されたソースコードは Amazon S3 バケットに格納されており、そのバケットは AWS CodeBuild ビルドプロジェクトとは異なる AWS リージョンにあります。

推奨される解決策: ビルドプロジェクトの設定を、事前に構築されたソースコードを含むバケットを指し、そのバケットがビルドプロジェクトと同じリージョンにあるように更新します。

エラー: 「error calling GetBucketAcl: either the bucket owner has changed or the service role no longer has permission to called s3:GetBucketAcl (GetBucketAcl の呼び出しエラー: バケットの所有者が変更されたか、サービスロールに s3:GetBucketAcl を呼び出すアクセス許可が付与されていません)」

問題: ビルドを実行すると、Amazon S3 バケットの所有者と GetBucketAcl アクセス許可の変更に関するエラーが表示される。

考えられる原因: s3:GetBucketACL および s3:GetBucketLocation アクセス許可を IAM ロールに追加している。これらのアクセス許可で、プロジェクトの Amazon S3 バケットを保護し、そのバケットにアクセスできるのが自分だけであることを確認します。これらのアクセス許可を追加したら、Amazon S3 バケットの所有者が変更されます。

推奨される解決策: Amazon S3 バケットの所有者であることを確認し、再度アクセス許可をお客様の IAM ロールに追加します。詳細については、「Amazon S3 バケットへのセキュアなアクセス」を参照してください。

エラー: ビルドの実行時に「アーティファクトのアップロードに失敗しました: 無効な ARN」

問題: ビルドを実行すると、UPLOAD_ARTIFACTS ビルドフェーズが失敗し、「アーティファクトのアップロードに失敗しました : 無効な ARN」というエラーが発生します。

考えられる原因: Amazon S3 出力バケット (AWS CodeBuild がビルドからの出力を格納するバケット) が、CodeBuild ビルドプロジェクトとは異なる AWS リージョンにあります。

推奨される解決策: ビルドプロジェクトの設定を、ビルドプロジェクトと同じ地域にある出力バケットを指すように更新します。

エラー:「認証情報を見つけることができません」

問題: AWS CLI を実行しようとするとき、AWS SDK を使用したり、別の同様のコンポーネントをビルドの一部として呼び出すと、AWS CLI、AWS SDK、またはコンポーネントに直接関連するビルドエラーが発生します。たとえば、「認証情報を見つけることができません」などのビルドエラーが発生することがあります。

考えられる原因:

  • ビルド環境の AWS CLI、AWS SDK またはコンポーネントのバージョンが AWS CodeBuild と互換性がありません。

  • Docker を使用するビルド環境内で Docker コンテナを実行しており、Docker コンテナは必要な AWS 認証情報にデフォルトでアクセスできません。

推奨される解決策:

  • ビルド環境に以下のバージョン以降の AWS CLI、AWS SDK、またはコンポーネントがインストールされていることを確認してください。

    • AWS CLI: 1.10.47

    • AWS SDK for C++: 0.2.19

    • AWS SDK for Go: 1.2.5

    • AWS SDK for Java: 1.11.16

    • AWS SDK for JavaScript: 2.4.7

    • AWS SDK for PHP: 3.18.28

    • AWS SDK for Python (Boto3): 1.4.0

    • AWS SDK for Ruby: 2.3.22

    • Botocore: 1.4.37

    • CoreCLR: 3.2.6-beta

    • Node.js: 2.4.7

  • ビルド環境で Docker コンテナを実行する必要があり、コンテナが AWS 認証情報を必要とする場合は、ビルド環境からコンテナに資格情報を渡す必要があります。buildspec ファイルに、次のような Docker run コマンドを含めます。この例では、aws s3 ls コマンドを使用して使用可能な Amazon S3 バケットを一覧表示しています。-e オプションは、コンテナが AWS 認証情報にアクセスするために必要な環境変数を渡します。

    docker run -e AWS_DEFAULT_REGION -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI your-image-tag aws s3 ls
  • Docker イメージを作成していて、ビルドに AWS 認証情報が必要な場合 (たとえば、Amazon S3 からファイルをダウンロードする場合)、ビルド環境から Docker ビルドプロセスに認証情報を次のようにパススルーする必要があります。

    1. Docker イメージ用ソースコードの Dockerfile に、次の ARG インストラクションを指定します。

      ARG AWS_DEFAULT_REGION ARG AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
    2. buildspec ファイルでは、以下のような Docker build コマンドを組み込みます。--build-arg オプションは、Docker ビルドプロセスが AWS 認証情報にアクセスするために必要な環境変数を設定します。

      docker build --build-arg AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION --build-arg AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI -t your-image-tag .

buildspec ファイルの以前のコマンドが、それ以降のコマンドで認識されない

問題: buildspec ファイルの 1 つ以上のコマンドの結果が、同じ buildspec ファイルの後のコマンドで認識されません。たとえば、コマンドによってローカル環境変数が設定される場合がありますが、後で実行されるコマンドがそのローカル環境変数の値を取得できない可能性があります。

考えられる原因: buildspec ファイルバージョン 0.1 では、AWS CodeBuild はビルド環境のデフォルトシェルの各インスタンスで各コマンドを実行します。つまり、各コマンドは他のすべてのコマンドとは独立して実行されます。デフォルトでは、以前のコマンドの状態に依存する単一のコマンドを実行することはできません。

推奨される解決策: ビルド仕様バージョン 0.2 を使用することをお勧めします。これにより、問題が解決されます。何らかの理由でビルド仕様バージョン 0.1 を使用する必要がある場合は、複数のコマンドを 1 つのコマンドにまとめるためにシェルコマンド連鎖演算子 (Linux の && など) を使用することをお勧めします。または、複数のコマンドを含むソースコードにシェルスクリプトを組み込み、そのシェルスクリプトを buildspec ファイルの 1 つのコマンドから呼び出します。詳細については、「ビルド環境でのシェルとコマンド」および「ビルド環境の環境変数」を参照してください。

Apache Maven が間違ったリポジトリからリファレンスアーティファクトを構築する

問題: AWS CodeBuild 提供の Java ビルド環境で Maven を使用すると、Maven はビルドおよびプラグインの依存関係を https://repo1.maven.org/maven2 で安全な中央 Maven リポジトリから取得します。これは、ビルドプロジェクトの pom.xml ファイルが別の場所を使用すると明示的に宣言した場合でも発生します。

考えられる原因: CodeBuild 提供の Java ビルド環境には、ビルド環境の /root/.m2 ディレクトリに事前にインストールされている settings.xml という名前のファイルが含まれています。この settings.xml には次の宣言が含まれています。これにより、Maven が常に https://repo1.maven.org/maven2 で、セキュアな中央 Maven リポジトリからビルドおよびプラグインの依存関係を引き出すように指示されます。

<settings> <activeProfiles> <activeProfile>securecentral</activeProfile> </activeProfiles> <profiles> <profile> <id>securecentral</id> <repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>https://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories> </profile> </profiles> </settings>

推奨される解決策: 以下を実行してください。

  1. settings.xml ファイルをソースコードに追加します。

  2. この settings.xml ファイルでは、前述の settings.xml 形式をガイドとして使用して、Maven が代わりにビルドとプラグインの依存関係を取得するリポジトリを宣言します。

  3. ビルドプロジェクトの install フェーズで、settings.xml ファイルをビルド環境の /root/.m2 ディレクトリにコピーするよう CodeBuild に指示します。たとえば、この動作を示す buildspec.yml ファイルの次のスニペットを考えてみましょう。

    version 0.2 phases: install: commands: - cp ./settings.xml /root/.m2/settings.xml

ビルドコマンドがデフォルトで root として実行される

問題: AWS CodeBuild は、ビルドコマンドをルートユーザーとして実行します。これは、関連するビルドイメージの Dockerfile によって USER インストラクションが別のユーザーに設定された場合でも発生します。

原因: CodeBuild は、デフォルトですべてのビルドコマンドをルートユーザーとして実行します。

推奨される解決策: なし。

Bourne シェル (sh) がビルドイメージに存在する必要がある

問題: AWS CodeBuild で提供されていないビルドイメージを使用し、「ビルドを完了する前にビルドコンテナが終了しました」というメッセージが表示されてビルドに失敗します。

考えられる原因: Bourne シェル (sh) がビルドイメージに含まれていません。ビルドコマンドとスクリプトを実行するために CodeBuild は sh を必要とします。

推奨される解決策: ビルドイメージに sh が含まれていない場合、イメージを使用するビルドを開始する前に必ずそれを含めてください。(CodeBuild は、ビルドイメージにすでに sh を含んでいます。)

エラー: ビルドを実行中に「CodeBuild に問題が発生しています」

問題: ビルドプロジェクトを実行しようとすると、ビルドの PROVISIONING フェーズ中に次のエラーが表示されます:「CodeBuild に問題が発生しています。」

考えられる原因: AWS CodeBuild には大きすぎる環境変数がビルドで使用されています。CodeBuild では、すべての環境変数の長さ (すべての名前と値を一緒にしたもの) が最大約 5,500 文字に達するとエラーが発生します。

推奨される解決策: Amazon EC2 Systems Manager パラメータストアを使用して大きな環境変数を保存し、buildspec ファイルでそれらを取得します。Amazon EC2 Systems Manager のパラメータストアには、4,096 文字以下の組み合わせの個々の環境変数 (名前と値を一緒にしたもの) を保存できます。大きな環境変数を保存するには、『 Amazon EC2 Systems Manager ユーザーガイド』の「Systems Manager パラメータストア」および「Systems Manager パラメータストアコンソールチュートリアル」を参照してください。これらを取得するには、「ビルド仕様の構文」の parameter-store マッピングを参照してください。

エラー: 「BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE」カスタムビルドイメージを使用した場合

問題: カスタムビルドイメージを使用するビルドを実行しようとすると、ビルドは BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE というエラーで失敗します。

考えられる原因:

  • ビルドイメージの全体的な非圧縮サイズが、ビルド環境のコンピューティングタイプの使用可能ディスクスペースよりも大きい。ビルドイメージのサイズを確認するには、Docker を使用して docker images REPOSITORY:TAG コマンドを実行します。コンピューティングタイプで使用可能なディスク容量のリストについては、「ビルド環境コンピューティングタイプ」を参照してください。

  • AWS CodeBuild には、Amazon Elastic Container Registry (Amazon ECR) からビルドイメージを取得するアクセス許可がありません。

  • リクエストした Amazon ECR イメージは、AWS アカウントを使用しているリージョンでは使用できません。

  • パブリックインターネットアクセスのない VPC でプライベートレジストリを使用しています。CodeBuild は VPC のプライベート IP アドレスからイメージをプルできません。詳細については、「 CodeBuild の AWS Secrets Manager を使用したプライベートレジストリのサンプル」を参照してください。

推奨される解決策:

  • 使用可能なディスク容量の大きなコンピューティングタイプを使用するか、カスタムビルドイメージのサイズを縮小します。

  • CodeBuild がカスタムビルドイメージをビルド環境にプルできるように、Amazon ECR のリポジトリの権限を更新します。詳細については、「Amazon ECR サンプル」を参照してください。

  • AWS アカウントで使用しているものと同じリージョンにある Amazon ECR イメージを使用します。

  • VPC でプライベートレジストリを使用する場合は、VPC にパブリックインターネットアクセスがあることを確認してください。

ファイル名が米国以外の場合にビルドが失敗する英語

問題: 英語以外の文字 (中国語の文字など) を含むファイル名のファイルを使用するビルドを実行すると、ビルドが失敗します。

考えられる原因: AWS CodeBuild によって提供されるビルド環境は、デフォルトのロケールが POSIX に設定されています。POSIX ローカリゼーション設定は、米国英語以外の文字を含む CodeBuild やファイル名との互換性が低く、関連するビルドが失敗する可能性があります。

推奨される解決策: buildspec ファイルの pre_build セクションに次のコマンドを追加します。これらのコマンドは、ビルド環境のローカライゼーション設定として米国英語 UTF-8 を使用するよう設定します。これは、米国英語以外の文字を含む CodeBuild やファイル名と高い互換性があります。

Ubuntu ベースのビルド環境の場合:

pre_build: commands: - export LC_ALL="en_US.UTF-8" - locale-gen en_US en_US.UTF-8 - dpkg-reconfigure locales

Amazon Linux ベースのビルド環境の場合:

pre_build: commands: - export LC_ALL="en_US.utf8"

Amazon EC2 パラメータストアからパラメータを取得する場合にビルドが失敗する

問題: ビルドが Amazon EC2 パラメータストアに保存されている 1 つ以上のパラメータの値を取得しようとすると、DOWNLOAD_SOURCE フェーズで「パラメータが存在しません」というエラーが発生し、ビルドが失敗します。

考えられる原因: ビルドプロジェクトが依存するサービスロールに ssm:GetParameters アクションを呼び出す権限がありません。または、ビルドプロジェクトは AWS CodeBuild によって生成された ssm:GetParameters アクションを呼び出すことができるサービスロールを使用していますが、パラメータには、/CodeBuild/ で始まらない名前が付けられています。

推奨される解決策:

  • CodeBuild によって生成されていないサービスロールの場合は、その定義を更新して CodeBuild が ssm:GetParameters アクションを呼びだせるようにします。たとえば、次のポリシーステートメントでは、ssm:GetParameters アクションを呼び出して /CodeBuild/ で始まる名前を持つパラメータを取得できます。

    { "Version": "2012-10-17", "Statement": [ { "Action": "ssm:GetParameters", "Effect": "Allow", "Resource": "arn:aws:ssm:REGION_ID:ACCOUNT_ID:parameter/CodeBuild/*" } ] }
  • CodeBuild によって生成されたサービスロールの場合は、その定義を更新して、Amazon EC2 パラメータストア内の /CodeBuild/ で始まる名前以外の名前のパラメータに CodeBuild がアクセスできるようにします。たとえば、次のポリシーステートメントでは、ssm:GetParameters アクションを呼び出して指定された名前のパラメータを取得できます。

    { "Version": "2012-10-17", "Statement": [ { "Action": "ssm:GetParameters", "Effect": "Allow", "Resource": "arn:aws:ssm:REGION_ID:ACCOUNT_ID:parameter/PARAMETER_NAME" } ] }

CodeBuild コンソールでブランチフィルタにアクセスできない

問題: AWS CodeBuild プロジェクトを作成または更新した場合、コンソールでブランチフィルタオプションを使用することはできません。

考えられる原因: ブランチフィルタオプションは廃止されました。このオプションはウェブフックフィルタグループに置き換えられています。これにより、新しい CodeBuild のビルドをトリガーするウェブフックイベントをより詳細に制御できます。

推奨される解決策: ウェブフックフィルタの導入前に作成されたブランチフィルタを移行するには、正規表現 ^refs/heads/branchName$HEAD_REF フィルタを使用してウェブフックフィルタグループを作成します。たとえば、ブランチフィルタの正規表現が ^branchName$ の場合、HEAD_REF フィルタに入力する更新後の正規表現は ^refs/heads/branchName$ です。詳細については、「BitBucket ウェブフックイベントのフィルタリング (コンソール)」および「GitHub ウェブフックイベントのフィルタリング (コンソール)」を参照してください。

このガイドの手順が CodeBuild コンソールと一致しない

問題: このガイドでは、新しいコンソールデザインの手順をサポートしています。

考えられる原因: 古いコンソールデザインを使用しています。このガイドでは、新しいコンソールデザインをサポートしています。古いバージョンのコンソールを選択すると、古い概念が反映され、本ガイドの基本的な手順がそのまま適用されます。新しいコンソールのヘルプにアクセスするには、情報アイコンを選択します。

推奨される解決策: 最新のコンソールデザインを使用します。

キャッシュをダウンロードしようとすると、「アクセスが拒否されました」というエラーメッセージが表示される

問題: キャッシュが有効なビルドプロジェクトでキャッシュをダウンロードしようとすると、次の一般的なエラーが発生します。「アクセスが拒否されました」。

考えられる原因:

  • ビルドプロジェクトの一部としてキャッシングが設定されています。

  • キャッシュは、InvalidateProjectCache API を介して最近無効化されています。

  • CodeBuild によって使用されているサービスロールには、キャッシュを保持している Amazon S3 バケットへの s3:GetObject および s3:PutObject アクセス権限がありません。

推奨される解決策: キャッシュ設定を更新した直後に初めて使用する場合、このエラーが表示されるのは普通です。このエラーが解消されない場合は、キャッシュを保持している Amazon S3 バケットへのs3:GetObject および s3:PutObject アクセス権限をサービスロールが持っているかどうかを確認する必要があります。詳細については、「S3 アクセス権限の指定」を参照してください。

エラー:「キャッシュをダウンロードできません: RequestError: 次の理由により送信リクエストが失敗しました: x509: システムのルートをロードできませんでした。ルートが指定されていません」

問題: ビルドプロジェクトの実行を試みると、ビルドが失敗し、次のエラーが表示されます。「RequestError: 次の理由により送信リクエストが失敗しました: x509: システムのルートをロードできませんでした。ルートが指定されていません」。

考えられる原因: ビルドプロジェクトの一部としてキャッシュを設定し、有効期限が切れたルート証明書を含む古い Docker イメージを使用しています。

推奨される解決策: AWS CodeBuild プロジェクトで使用中の Docker イメージを更新します。詳細については、「CodeBuild に用意されている Docker イメージ」を参照してください。

エラー : 「S3 から証明書をダウンロードできません。AccessDenied"

問題: ビルドプロジェクトを実行しようとすると、ビルドが失敗して次のエラーが表示されます「S3 から証明書をダウンロードできません。AccessDenied".

考えられる原因:

  • 証明書に正しくない S3 バケットが選択されています。

  • 証明書に誤ったオブジェクトキーが入力されています。

推奨される解決策:

  • プロジェクトを編集します。[証明書のバケット] では、SSL 証明書が保存されている S3 バケットを選択します。

  • プロジェクトを編集します。[証明書のオブジェクトキー] に S3 オブジェクトキーの名前を入力します。

エラー:「Git のクローンに失敗しました: 'your-repository-URL' にアクセスできません: SSL 証明書の問題: 自己署名証明書」

問題: ビルドプロジェクトを実行しようとすると、ビルドが次のエラーで失敗します。「Git のクローン失敗: 'your-repository-URL' にアクセスできません: SSL 証明書の問題: 自己署名証明書」。

考えられる原因: ソースリポジトリには自己署名証明書がありますが、S3 バケットから証明書をビルドプロジェクトの一部としてインストールする選択をしていません。

推奨される解決策:

  • プロジェクトを編集します。[証明書] で [S3 から証明書をインストールする] を選択します。[証明書のバケット] では、SSL 証明書が保存されている S3 バケットを選択します。[証明書のオブジェクトキー] に S3 オブジェクトキーの名前を入力します。

  • プロジェクトを編集します。GitHub Enterprise プロジェクトリポジトリに接続するときに SSL 警告を無視するには、[Insecure SSL] を選択します。

    注記

    [Insecure SSL] はテストのみに使用することが推奨されます。本番環境では使用しないでください。

エラー:「ポリシーのデフォルトバージョンが enhanced zero クリックロールの作成で作成されなかったか、enhanced zero クリックロールの作成で作成された最新バージョンではありませんでした。」

問題: コンソールでプロジェクトを更新しようとすると、次のエラーで失敗します。「ポリシーのデフォルトバージョンが enhanced zero クリックロールの作成で作成されなかったか、enhanced zero クリックロールの作成によって作成された最新バージョンではありません」。

考えられる原因:

  • 対象の AWS CodeBuild サービスロールにアタッチされたポリシーを手動で更新しました。

  • 対象の CodeBuild サービスロールにアタッチされた、前のバージョンのポリシーを選択しました。

推奨される解決策:

  • CodeBuild プロジェクトを編集し、[CodeBuild にこのサービスロールの編集を許可し、このビルドプロジェクトでの使用を可能にする] をオフにします。対象の CodeBuild サービスロールを手動で更新し、十分な権限を付与します。詳細については、「CodeBuild サービスロールを作成する」を参照してください。

  • CodeBuild プロジェクトを編集し、[Create a role (ロールを作成する)] を選択します。

エラー : 「ビルドを完了する前にビルドコンテナが終了しました。ビルドコンテナが終了した原因はメモリ不足か、Docker イメージがサポートされていないためです。エラーコード: 500」

問題: AWS CodeBuild で Microsoft Windows または Linux コンテナを使用しようとすると、PROVISIONING フェーズでエラーが発生する。

考えられる原因:

  • コンテナ OS バージョンは CodeBuild ではサポートされていません。

  • HTTP_PROXYHTTPS_PROXY、またはその両方がコンテナで指定されます。

推奨される解決策:

  • Microsoft Windows の場合、Windows コンテナをバージョン microsoft/windowsservercore:10.0.x のコンテナ OS で使用します。たとえば、microsoft/windowsservercore:10.0.14393.2125。

  • Linux の場合、Docker イメージの HTTP_PROXY および HTTPS_PROXY 設定をクリアします。または、ビルドプロジェクトで VPC 設定を指定します。

ビルドの成功または失敗を表示できない

問題: 再試行されたビルドの成功または失敗を確認することができません。

考えられる原因: ビルドのステータスを報告するオプションが有効になっていません。

推奨される解決策: CodeBuild プロジェクトを作成または更新するときは、[ビルドのステータスを報告] を有効にします。このオプションは、ビルドをトリガーするときに CodeBuild にステータスを報告するように指示します。詳細については、「reportBuildStatus」を参照してください。

Windows Server Core 2016 プラットフォームの基本イメージが見つからず、選択できない

問題: Windows Server Core 2016 プラットフォームの基本イメージを検索または選択できません。

考えられる原因: このイメージをサポートしていないリージョンを使用しています。

推奨される解決策: Windows Server Core 2016 プラットフォームの基本イメージをサポートするリージョンのいずれかを使用します。

  • US East (N. Virginia)

  • US East (Ohio)

  • US East (Ohio)

  • US West (N. California)

プロキシサーバーで CodeBuild を実行しているときの RequestError タイムアウトエラー

問題: 次のいずれかのような RequestError エラーが表示される。

  • RequestError: send request failed caused by: Post https://logs.<your-region>.amazonaws.com/: dial tcp 52.46.158.105:443: i/o timeout (CloudWatch Logs から)。

  • Error uploading artifacts: RequestError: send request failed caused by: Put https://your-bucket.s3.your-aws-region.amazonaws.com/*: dial tcp 52.219.96.208:443: connect: connection refused (Amazon S3 から)。

考えられる原因:

  • ssl-bump が適切に設定されていません。

  • 組織のセキュリティポリシーで ssl_bump を使用することが許可されていません。

  • buildspec ファイルに、proxy 要素を使用して指定されたプロキシ設定がありません。

推奨される解決策:

  • ssl-bump が適切に設定されていることを確認します。プロキシサーバーに Squid を使用している場合は、「 Squid を明示的なプロキシサーバーとして設定する」を参照してください。

  • Amazon S3 および CloudWatch Logs でプライベートエンドポイントを使用するには、次の操作を行います。

    1. プライベートサブネットのルーティングテーブルで、インターネット用トラフィックをプロキシサーバーにルーティングする追加済みのルールを削除します。詳細については、「VPC でサブネットを作成する」を参照してください。

    2. プライベート Amazon S3 エンドポイントと CloudWatch Logs エンドポイントを作成し、それらを Amazon VPC のプライベートサブネットに関連付けます。詳細については、「VPC エンドポイントサービス (AWS PrivateLink)」を参照してください。

    3. Amazon VPC の「プライベート DNS 名を有効にする」が選択されていることを確認します。詳細については、「インターフェイスエンドポイントの作成」を参照してください。

  • 明示的なプロキシサーバーに ssl-bump を使用しない場合は、proxy 要素を使用して buildspec ファイルにプロキシ設定を追加します。詳細については、「 明示的なプロキシサーバーで CodeBuild を実行する」および「ビルド仕様の構文」を参照してください。

    version: 0.2 proxy: upload-artifacts: yes logs: yes phases: build: commands:

ビルドキューのビルドが失敗するとエラー「QUEUED:INSUFFICIENT_SUBNET」が表示される

問題: ビルドキューのビルドが QUEUED: INSUFFICIENT_SUBNET のようなエラーで失敗する。

考えられる原因: VPC に指定された IPv4 CIDR ブロックが、リザーブド IP アドレスを使用している。各サブネット CIDR ブロックの最初の 4 つの IP アドレスと最後の IP アドレスは使用できず、インスタンスに割り当てることができません。たとえば、CIDR ブロック 10.0.0.0/24 を持つサブネットの場合、以下の 5 つの IP アドレスが予約されます。

  • 10.0.0.0: ネットワークアドレスです。

  • 10.0.0.1: VPC ルーター用に AWS で予約されています。

  • 10.0.0.2: AWS で予約されています。DNS サーバーの IP アドレスは、常に VPC ネットワークのベースに 2 を付加したものですが、各サブネット範囲のベースに 2 を付加したアドレスも予約されています。複数の CIDR ブロックを持つ VPC の場合、DNS サーバーの IP アドレスはプライマリ CIDR にあります。詳細については、Amazon DNS サーバーをご覧ください。

  • 10.0.0.3: 将来の利用のために AWS で予約されています。

  • 10.0.0.255: ネットワークブロードキャストアドレスです。VPC ではブロードキャストがサポートされないため、このアドレスを予約します。

推奨される解決策: VPC でリザーブド IP アドレスが使用されていることを確認します。リザーブド IP アドレスは、予約されていない IP アドレスに置き換えます。詳細については、「VPC とサブネットのサイズ設定」を参照してください。

このページの内容: