翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: パイプラインレベルの変数を使用する
このチュートリアルでは、パイプラインレベルで変数を追加し、変数値を出力する CodeBuild ビルドアクションを実行するパイプラインを作成します。
重要
パイプラインの作成の一環として、お客様が提供する S3 アーティファクトバケットがアーティファクト CodePipeline に によって使用されます。(これは S3 ソースアクションに使用されるバケットとは異なります)。S3 アーティファクトバケットがパイプラインのアカウントとは異なるアカウントにある場合は、S3 アーティファクトバケットが によって所有 AWS アカウント されており、安全で信頼できることを確認してください。
前提条件
開始する前に、以下を実行する必要があります。
-
CodeCommit リポジトリを作成します。
-
リポジトリに .txt ファイルを追加します。
ステップ 1: パイプラインを作成してプロジェクトをビルドする
このセクションでは、次のアクションを使用してパイプラインを作成します。
-
CodeCommit リポジトリへの接続があるソースステージ。
-
ビルドアクションを含む AWS CodeBuild ビルドステージ。
ウィザードを使用してパイプラインを作成するには
-
で CodePipeline コンソールにサインインしますhttps://console.aws.amazon.com/codepipeline/
。 -
[ようこそ] ページ、[開始方法] ページ、または [パイプライン] ページで、[パイプラインの作成] を選択します。
-
[ステップ 1: パイプラインの設定を選択する] の [パイプライン名] に「
MyVariablesPipeline
」と入力します。 -
[パイプラインのタイプ] で、デフォルトの選択を [V2] のままにします。パイプラインのタイプによって特徴および価格が異なります。詳細については、「パイプラインのタイプ」を参照してください。
-
[サービスロール] で、[New service role (新しいサービスロール)] を選択します。
注記
代わりに既存の CodePipeline サービスロールを使用する場合は、サービスロールポリシーに
codeconnections:UseConnection
IAM アクセス許可を追加していることを確認してください。 CodePipeline サービスロールの手順については、 CodePipeline 「サービスロール へのアクセス許可を追加する」を参照してください。 -
[変数] で、[変数の追加] を選択します。[名前] に「
timeout
」と入力します。[デフォルト] に「1000」と入力します。説明として「Timeout
」と入力します。これにより、パイプラインの実行開始時に値を宣言できる変数が作成されます。変数名は
[A-Za-z0-9@\-_]+
と一致する必要があり、空文字列以外であれば任意の名前で構いません。 -
[詳細設定] では、デフォルト値のままにします。アーティファクトストアで、[Default location] (デフォルトの場所)を選択し、パイプライン用に選択したリージョン内のパイプラインのデフォルトのアーティファクトストア (デフォルトとして指定された Amazon S3 アーティファクトバケットなど) を使用します。
注記
これはソースコードのソースバケットではありません。パイプラインのアーティファクトストアです。パイプラインごとに S3 バケットなどの個別のアーティファクトストアが必要です。
[Next (次へ)] を選択します。
-
ステップ 2: [Add source stage] (ソースステージの追加) ページで、ソースステージを追加します。
-
[ソースプロバイダ] で、AWS CodeCommit を選択します。
-
[リポジトリ名] と [ブランチ名] で、リポジトリとブランチを選択します。
[Next (次へ)] を選択します。
-
-
[Add build stage (ビルドステージの追加)] で、ビルドステージを追加します。
-
[ビルドプロバイダ] で、[AWS CodeBuild] を選択します。[リージョン] がデフォルトでパイプラインリージョンになることを許可します。
-
[プロジェクトを作成] を選択します。
-
[プロジェクト名] に、このビルドプロジェクトの名前を入力します。
-
[環境イメージ] で、[Managed image (マネージド型イメージ)] を選択します。[Operating system] で、[Ubuntu] を選択します。
-
[ランタイム] で、[Standard (標準)] を選択します。[イメージ] で、[aws/codebuild/standard:5.0] を選択します。
-
[サービスロール] で、[New service role (新しいサービスロール)] を選択します。
注記
CodeBuild サービスロールの名前を書き留めます。このチュートリアルの最後のステップでは、ロール名が必要になります。
-
[Buildspec] の Build specifications (ビルド仕様) で、[Insert build commands] (ビルドコマンドの挿入) を選択します。エディタに切り替え を選択し、ビルドコマンド に以下を貼り付けます。buildspec では、カスタム変数
$CUSTOM_VAR1
を使用してパイプライン変数をビルドログに出力します。次のステップでは、$CUSTOM_VAR1
出力変数を環境変数として作成します。version: 0.2 #env: #variables: # key: "value" # key: "value" #parameter-store: # key: "value" # key: "value" #git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 #commands: # - command # - command #pre_build: #commands: # - command # - command build: commands: - echo $CUSTOM_VAR1 #post_build: #commands: # - command # - command artifacts: files: - '*' # - location name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
-
CodePipeline「」を選択します。これによりコンソール CodePipelineに戻り、ビルドコマンドを使用して設定を行う CodeBuild プロジェクトが作成されます。ビルドプロジェクトは、サービスロールを使用して AWS のサービス アクセス許可を管理します。このステップには数分かかる場合があります。
-
[環境変数 - オプション] で、パイプラインレベルの変数によって解決されるビルドアクションの入力変数として環境変数を作成するには、[環境変数の追加] を選択します。これにより、buildspec で指定した変数が
$CUSTOM_VAR1
として作成されます。[名前] に「CUSTOM_VAR1
」と入力します。[値] には「#{variables.timeout}
」と入力します。[タイプ] で、[Plaintext
] を選択します。環境変数の
#{variables.timeout}
値は、パイプラインレベルの変数名前空間variables
と、ステップ 6 でパイプライン用にtimeout
作成されたパイプラインレベルの変数に基づいています。 -
[Next (次へ)] を選択します。
-
-
[Step 4: Add deploy stage (ステップ 4: デプロイステージの追加)] ページで、[Skip deploy stage (デプロイステージのスキップ)] を選択し、[スキップ] を選択して警告メッセージを受け入れます。[Next (次へ)] を選択します。
-
[Step 5: Review (ステップ 5: 確認)] で、[パイプラインの作成] を選択します。
ステップ 2: 変更をリリースしてログを表示する
-
パイプラインが正常に実行されたら、成功したビルドステージで [詳細を表示] を選択します。
詳細ページで、[ログ] タブを選択します。 CodeBuild ビルド出力を表示します。このコマンドは、入力された変数の値を出力します。
-
左側のナビゲーションで、[履歴] を選択します。
最近の実行を選択し、[変数] タブを選択します。パイプライン変数の解決された値を表示します。