翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: Amazon S3 にアーティファクトをアップロードする
このチュートリアルでは、いくつかのビルドアクション を含む CodeCatalyst ワークフローを使用して Amazon S3 バケットにアーティファクトをアップロードする方法について説明します。これらのアクションは、ワークフローの開始時に連続して実行されます。最初のビルドアクションは、 Hello.txt
と の 2 つのファイルを生成しGoodbye.txt
、それらをビルドアーティファクトにバンドルします。2 番目のビルドアクションは、アーティファクトを Amazon S3 にアップロードします。コミットをソースリポジトリにプッシュするたびに実行するようにワークフローを設定します。
トピック
前提条件
開始するには、以下が必要です。
-
接続 AWS されたアカウントを持つ CodeCatalyst スペースが必要です。詳細については、「スペースの作成」を参照してください。
-
スペースには、空の Start from scratch CodeCatalyst プロジェクトが必要です。
codecatalyst-artifact-project
詳細については、「Amazon での空のプロジェクトの作成 CodeCatalyst」を参照してください。
-
プロジェクトには、次の CodeCatalyst 環境が必要です。
codecatalyst-artifact-environment
この環境を次のように設定します。
-
開発 など、任意のタイプを選択します。
-
アカウントをその AWS アカウントに接続します。
-
デフォルトの IAM ロール で、任意のロールを選択します。後で別のロールを指定します。
詳細については、「環境を使用した AWS アカウント および VPCs CodeCatalystへのデプロイ」を参照してください。
-
ステップ 1: AWS ロールを作成する
このステップでは、後でワークフローのビルドアクションに割り当てる AWS IAM ロールを作成します。このロールは、ビルド CodeCatalyst アクションに、 AWS アカウントにアクセスし、アーティファクトが保存される Amazon S3 に書き込むアクセス許可を付与します。ロールはビルドロール と呼ばれます。
注記
別のチュートリアル用に作成したビルドロールが既にある場合は、このチュートリアルでも使用できます。次の手順で示されているアクセス許可と信頼ポリシーがあることを確認してください。
IAM ロールの詳細については、「 ユーザーガイド」の「IAM ロールAWS AWS Identity and Access Management 」を参照してください。
ビルドロールを作成するには
-
次のように、ロールのポリシーを作成します。
-
にサインインします AWS。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、ポリシー を選択します。
-
ポリシーの作成を選択します。
-
[JSON] タブを選択します。
-
既存のコードを削除します。
-
次のコードを貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": "*" } ] }
注記
ロールを初めて使用してワークフローアクションを実行するときは、リソースポリシーステートメントでワイルドカードを使用し、使用可能になった後にリソース名でポリシーの範囲を絞り込みます。
"Resource": "*"
-
[次へ: タグ] を選択します。
-
[次へ: レビュー] を選択します。
-
名前 で、次のように入力します。
codecatalyst-s3-build-policy
-
[ポリシーの作成] を選択します。
これで、アクセス許可ポリシーが作成されました。
-
-
次のようにビルドロールを作成します。
-
ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。
-
カスタム信頼ポリシー を選択します。
-
既存のカスタム信頼ポリシーを削除します。
-
次のカスタム信頼ポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
[次へ] をクリックします。
-
アクセス許可ポリシー で、そのチェックボックスを検索
codecatalyst-s3-build-policy
して選択します。 -
[次へ] をクリックします。
-
ロール名 には、次のように入力します。
codecatalyst-s3-build-role
-
ロールの説明 には、次のように入力します。
CodeCatalyst build role
-
[ロールの作成] を選択します。
これで、信頼ポリシーとアクセス許可ポリシーを使用してビルドロールが作成されました。
-
ステップ 2: Amazon S3 バケットを作成する
このステップでは、 Hello.txt
および Goodbye.txt
アーティファクトをアップロードする Amazon S3 バケットを作成します。
Amazon S3 バケットを作成するには
https://console.aws.amazon.com/s3/
でAmazon S3 コンソールを開きます。 -
メインペインで、バケットの作成 を選択します。
-
バケット名 には、次のように入力します。
codecatalyst-artifact-bucket
-
[AWS リージョン] で、リージョンを選択します。このチュートリアルでは、米国西部 (オレゴン) us-west-2 を選択したことを前提としています。Amazon S3 でサポートされているリージョンの詳細については、「」の「Amazon Simple Storage Service エンドポイントとクォータ」を参照してくださいAWS 全般のリファレンス。
-
ページの下部で、バケットの作成 を選択します。
-
先ほど作成したバケットの名前をコピーします。例:
codecatalyst-artifact-bucket
これで、米国西部 (オレゴン) us-west-2 リージョンcodecatalyst-artifact-bucket
に という名前のバケットが作成されました。
ステップ 3: ソースリポジトリを作成する
このステップでは、 でソースリポジトリを作成します CodeCatalyst。このリポジトリは、チュートリアルのワークフロー定義ファイルを保存するために使用されます。
ソースリポジトリの詳細については、「」を参照してくださいソースリポジトリの作成。
ソースリポジトリを作成するには
https://codecatalyst.aws/
で CodeCatalyst コンソールを開きます。 -
プロジェクト に移動します
codecatalyst-artifact-project
。 -
ナビゲーションペインで [コード] を選択してから、[ソースリポジトリ] を選択します。
-
[リポジトリの追加] を選択し、[リポジトリの作成] を選択します。
-
リポジトリ名 で、次のように入力します。
codecatalyst-artifact-source-repository
-
[作成] を選択します。
これで、 というリポジトリが作成されましたcodecatalyst-artifact-source-repository
。
ステップ 4: ワークフローを作成する
このステップでは、順番に実行される以下の構成要素で構成されるワークフローを作成します。
-
トリガー — このトリガーは、変更をソースリポジトリにプッシュすると、ワークフローの実行を自動的に開始します。トリガーの詳細については、「」を参照してくださいトリガーを使用したワークフローの自動実行の開始。
-
というビルドアクション
GenerateFiles
– トリガー時に、GenerateFiles
アクションはHello.txt
と の 2 つのファイルを作成しGoodbye.txt
、 という出力アーティファクトにパッケージ化しますcodecatalystArtifact
。 -
という別のビルドアクション
Upload
–GenerateFiles
アクションが完了すると、Upload
アクションは AWS CLI コマンドaws s3 sync
を実行して、codecatalystArtifact
およびソースリポジトリのファイルを Amazon S3 バケットにアップロードします。 AWS CLI はコンピューティングプラットフォームに CodeCatalystプリインストールおよび事前設定されているため、インストールまたは設定する必要はありません。CodeCatalyst コンピューティングプラットフォームでパッケージ化されたソフトウェアの詳細については、「」を参照してくださいランタイム環境の Docker イメージの指定。の
aws s3 sync
コマンドの詳細については、「 コマンドAWS CLI リファレンス AWS CLI」の「Sync」を参照してください。
ビルドアクションの詳細については、「」を参照してくださいワークフローによる構築。
ワークフローを作成するには
-
ナビゲーションペインで CI/CD を選択し、ワークフロー を選択します。
-
ワークフローの作成 を選択します。
-
YAML サンプルコードを削除します。
-
次の YAML コードを追加します。
注記
次の YAML コードでは、必要に応じて
Connections:
セクションを省略できます。このセクションを省略する場合は、環境のデフォルト IAM ロール フィールドで指定されたロールに、「」で説明されているアクセス許可と信頼ポリシーが含まれていることを確認する必要がありますステップ 1: AWS ロールを作成する。デフォルトの IAM ロールで環境を設定する方法の詳細については、「」を参照してください環境を作成する。Name: codecatalyst-artifact-workflow SchemaVersion: 1.0 Triggers: - Type: Push Branches: - main Actions: GenerateFiles: Identifier: aws/build@v1 Configuration: Steps: # Create the output files. - Run: echo "Hello, World!" > "Hello.txt" - Run: echo "Goodbye!" > "Goodbye.txt" Outputs: Artifacts: - Name: codecatalystArtifact Files: - "**/*" Upload: Identifier: aws/build@v1 DependsOn: - GenerateFiles Environment: Name:
codecatalyst-artifact-environment
Connections: - Name:codecatalyst-account-connection
Role:codecatalyst-s3-build-role
Inputs: Artifacts: - codecatalystArtifact Configuration: Steps: # Upload the output artifact to the S3 bucket. - Run: aws s3 sync . s3://codecatalyst-artifact-bucket
上記のコードで、以下を置き換えます。
-
codecatalyst-artifact-environment
で作成した環境の名前。 前提条件 -
codecatalyst-account-connection
で作成したアカウント接続の名前前提条件。 -
codecatalyst-s3-build-role
で作成したビルドロールの名前ステップ 1: AWS ロールを作成する。 -
codecatalyst-artifact-bucket
に、 で作成した Amazon S3 の名前を入力しますステップ 2: Amazon S3 バケットを作成する。
このファイルのプロパティの詳細については、「」を参照してくださいビルドおよびテストアクションの YAML 定義。
-
-
(オプション) 検証 を選択して、コミットする前に YAML コードが有効であることを確認します。
-
[Commit] (コミット) を選択します。
-
コミットワークフローダイアログボックスで、次のように入力します。
-
ワークフローファイル名 の場合、デフォルト のままにします
codecatalyst-artifact-workflow
。 -
コミットメッセージ には、次のように入力します。
add initial workflow file
-
リポジトリ で、 を選択しますcodecatalyst-artifact-source-repository。
-
ブランチ名 で、メイン を選択します。
-
[Commit] (コミット) を選択します。
これでワークフローが作成されました。ワークフローの実行は、ワークフローの上部で定義されているトリガーが原因で自動的に開始されます。具体的には、
codecatalyst-artifact-workflow.yaml
ファイルをソースリポジトリにコミット (およびプッシュ) すると、トリガーによってワークフロー実行が開始されます。 -
進行中のワークフロー実行を表示するには
-
ナビゲーションペインで CI/CD を選択し、ワークフロー を選択します。
-
先ほど作成したワークフローを選択します:
codecatalyst-artifact-workflow
。 -
GenerateFiles を選択して、最初のビルドアクションの進行状況を表示します。
-
アップロードを選択して、2 番目のビルドアクションの進行状況を確認します。
-
アップロードアクションが終了したら、次の操作を行います。
-
ワークフローの実行が成功したら、次の手順に進みます。
-
ワークフローの実行に失敗した場合は、ログを選択して問題をトラブルシューティングします。
-
ステップ 5: 結果を確認する
ワークフローが実行されたら、Amazon S3 サービスに移動してcodecatalyst-artifact-bucket
バケットを確認します。これで、次のファイルとフォルダが含まれるはずです。
. |— .aws/ |— .git/ |Goodbye.txt |Hello.txt |REAME.md
Goodbye.txt
および Hello.txt
ファイルはアーcodecatalystArtifact
ティファクトの一部であったため、アップロードされました。.aws/
、.git/
、および README.md
ファイルは、ソースリポジトリにあったためアップロードされました。
クリーンアップ
これらのサービスに対して課金されない AWS ように、 CodeCatalyst および でクリーンアップします。
でクリーンアップするには CodeCatalyst
https://codecatalyst.aws/
で CodeCatalyst コンソールを開きます。 -
codecatalyst-artifact-source-repository
ソースリポジトリを削除します。 -
codecatalyst-artifact-workflow
ワークフローを削除します。
でクリーンアップするには AWS
-
Amazon S3 で次のようにクリーンアップします。
https://console.aws.amazon.com/s3/
でAmazon S3 コンソールを開きます。 -
codecatalyst-artifact-bucket
バケット内のファイルを削除します。 -
codecatalyst-artifact-bucket
バケットを削除します。
-
IAM で次のようにクリーンアップします。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
codecatalyst-s3-build-policy
を削除します。 -
codecatalyst-s3-build-role
を削除します。