翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: Amazon S3 にアーティファクトをアップロードする
このチュートリアルでは、いくつかのビルドアクション を含む Amazon ワークフローを使用して CodeCatalyst、Amazon S3 バケットにアーティファクトをアップロードする方法について説明します。これらのアクションは、ワークフローの開始時に連続して実行されます。最初のビルドアクションは、 Hello.txt
と の 2 つのファイルを生成しGoodbye.txt
、それらをビルドアーティファクトにバンドルします。2 番目のビルドアクションは、アーティファクトを Amazon S3 にアップロードします。コミットをソースリポジトリにプッシュするたびに実行されるようにワークフローを設定します。
トピック
前提条件
開始するには、以下が必要です。
-
接続された AWS アカウントを持つ CodeCatalyst スペースが必要です。詳細については、「スペースの作成」を参照してください。
-
スペースには、次の名前の空のプロジェクトが必要です。
codecatalyst-artifact-project
このプロジェクトを作成するには、最初から開始 オプションを使用します。
詳細については、「Amazon での空のプロジェクトの作成 CodeCatalyst」を参照してください。
-
プロジェクトには、以下と呼ばれる CodeCatalyst 環境が必要です。
codecatalyst-artifact-environment
この環境を次のように設定します。
-
Development などの任意のタイプを選択します。
-
AWS アカウントに を接続します。
-
デフォルトのIAMロール で、任意のロールを選択します。後で別のロールを指定します。
詳細については、「AWS アカウント と へのデプロイ VPCs」を参照してください。
-
ステップ 1: AWS ロールを作成する
このステップでは、後でワークフローのビルドアクションに割り当てるロールを作成します AWS IAM。このロールは、 AWS ビルド CodeCatalyst アクションにアカウントにアクセスして、アーティファクトが保存される 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": "*"
-
[Next: Tags] (次へ: タグ) を選択します。
-
[次へ: レビュー] を選択します。
-
名前 に、次のように入力します。
codecatalyst-s3-build-policy
-
[Create policy] を選択します。
これで、アクセス許可ポリシーが作成されました。
-
-
次のようにビルドロールを作成します。
-
ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。
-
カスタム信頼ポリシー を選択します。
-
既存のカスタム信頼ポリシーを削除します。
-
次のカスタム信頼ポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
[Next (次へ)] を選択します。
-
アクセス許可ポリシー で、そのチェックボックスを検索
codecatalyst-s3-build-policy
して選択します。 -
[Next (次へ)] を選択します。
-
ロール名 には、次のように入力します。
codecatalyst-s3-build-role
-
ロールの説明 には、次のように入力します。
CodeCatalyst build role
-
[ロールの作成] を選択します。
これで、信頼ポリシーとアクセス許可ポリシーを使用してビルドロールが作成されました。
-
ステップ 2: Amazon S3 バケットを作成する
このステップでは、 Hello.txt
および Goodbye.txt
アーティファクトをアップロードする Amazon S3 バケットを作成します。
Amazon S3 バケットを作成するには
で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/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
-
[Create] (作成) を選択します。
これで、 というリポジトリが作成されました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 コンピューティングプラットフォームでパッケージ化されたソフトウェアの詳細については、「」を参照してくださいランタイム環境イメージの指定。 AWS CLIの
aws s3 sync
コマンドの詳細については、 AWS CLI コマンドリファレンスの「同期」を参照してください。
ビルドアクションの詳細については、「」を参照してくださいワークフローを使用した構築。
ワークフローを作成するには
-
ナビゲーションペインで 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 で次のようにクリーンアップします。
で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/s3/
。 -
codecatalyst-artifact-bucket
バケット内のファイルを削除します。 -
codecatalyst-artifact-bucket
バケットを削除します。
-
でIAM次のようにクリーンアップします。
でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/
。 -
codecatalyst-s3-build-policy
を削除します。 -
codecatalyst-s3-build-role
を削除します。