チュートリアル: Amazon S3 にアーティファクトをアップロードする - Amazon CodeCatalyst

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

チュートリアル: 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

ビルドロールを作成するには
  1. 次のように、ロールのポリシーを作成します。

    1. にサインインします AWS。

    2. でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/

    3. ナビゲーションペインで、ポリシー を選択します。

    4. [ポリシーの作成] を選択します。

    5. JSON タブを選択します。

    6. 既存のコードを削除します。

    7. 次のコードを貼り付けます。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": "*" } ] }
      注記

      ロールがワークフローアクションの実行に初めて使用されるときは、リソースポリシーステートメントでワイルドカードを使用し、使用可能になった後にリソース名でポリシーをスコープダウンします。

      "Resource": "*"
    8. [Next: Tags] (次へ: タグ) を選択します。

    9. [次へ: レビュー] を選択します。

    10. 名前 に、次のように入力します。

      codecatalyst-s3-build-policy
    11. [Create policy] を選択します。

      これで、アクセス許可ポリシーが作成されました。

  2. 次のようにビルドロールを作成します。

    1. ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。

    2. カスタム信頼ポリシー を選択します。

    3. 既存のカスタム信頼ポリシーを削除します。

    4. 次のカスタム信頼ポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. [Next (次へ)] を選択します。

    6. アクセス許可ポリシー で、そのチェックボックスを検索codecatalyst-s3-build-policyして選択します。

    7. [Next (次へ)] を選択します。

    8. ロール名 には、次のように入力します。

      codecatalyst-s3-build-role
    9. ロールの説明 には、次のように入力します。

      CodeCatalyst build role
    10. [ロールの作成] を選択します。

    これで、信頼ポリシーとアクセス許可ポリシーを使用してビルドロールが作成されました。

ステップ 2: Amazon S3 バケットを作成する

このステップでは、 Hello.txtおよび Goodbye.txtアーティファクトをアップロードする Amazon S3 バケットを作成します。

Amazon S3 バケットを作成するには
  1. で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/s3/

  2. メインペインで、バケットの作成 を選択します。

  3. バケット名 には、次のように入力します。

    codecatalyst-artifact-bucket
  4. [AWS リージョン] で、リージョンを選択します。このチュートリアルでは、米国西部 (オレゴン) us-west-2 を選択したことを前提としています。Amazon S3 でサポートされているリージョンの詳細については、「」の「Amazon Simple Storage Service エンドポイントとクォータ」を参照してくださいAWS 全般のリファレンス

  5. ページの下部で、バケットの作成 を選択します。

  6. 作成したバケットの名前をコピーします。例:

    codecatalyst-artifact-bucket

これで、米国西部 (オレゴン) us-west-2 リージョンcodecatalyst-artifact-bucketで という名前のバケットが作成されました。

ステップ 3: ソースリポジトリを作成する

このステップでは、 にソースリポジトリを作成します CodeCatalyst。このリポジトリは、チュートリアルのワークフロー定義ファイルを保存するために使用されます。

ソースリポジトリの詳細については、「」を参照してくださいソースリポジトリの作成

ソースリポジトリを作成するには
  1. https://codecatalyst.aws/ で CodeCatalyst コンソールを開きます。

  2. プロジェクト に移動しますcodecatalyst-artifact-project

  3. ナビゲーションペインで [コード] を選択してから、[ソースリポジトリ] を選択します。

  4. [リポジトリの追加] を選択し、[リポジトリの作成] を選択します。

  5. リポジトリ名 で、次のように入力します。

    codecatalyst-artifact-source-repository
  6. [Create] (作成) を選択します。

これで、 というリポジトリが作成されましたcodecatalyst-artifact-source-repository

ステップ 4: ワークフローを作成する

このステップでは、連続して実行される以下の構成要素で構成されるワークフローを作成します。

  • トリガー – このトリガーは、ソースリポジトリに変更をプッシュすると、ワークフローを自動的に開始します。トリガーの詳細については、「」を参照してくださいトリガーを使用してワークフローを自動的に開始する

  • というビルドアクション GenerateFiles- トリガー時に、GenerateFilesアクションは Hello.txt2 つのファイルと を作成しGoodbye.txt、 という出力アーティファクトにパッケージ化しますcodecatalystArtifact

  • という別のビルドアクション Upload- GenerateFilesアクションが完了すると、Uploadアクションは AWS CLI コマンドを実行してaws s3 synccodecatalystArtifactおよびソースリポジトリ内のファイルを Amazon S3 バケットにアップロードします。 AWS CLI はコンピューティングプラットフォームに CodeCatalyst事前インストールおよび事前設定されているため、インストールまたは設定する必要はありません。

    CodeCatalyst コンピューティングプラットフォームでパッケージ化されたソフトウェアの詳細については、「」を参照してくださいランタイム環境イメージの指定。 AWS CLIのaws s3 syncコマンドの詳細については、 AWS CLI コマンドリファレンス「同期」を参照してください。

ビルドアクションの詳細については、「」を参照してくださいワークフローを使用した構築

ワークフローを作成するには
  1. ナビゲーションペインで CI/CD を選択し、ワークフロー を選択します。

  2. ワークフローの作成 を選択します。

  3. YAML サンプルコードを削除します。

  4. 次の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

    上記のコードで、以下を置き換えます。

    このファイルのプロパティの詳細については、「」を参照してくださいビルドアクションとテストアクション YAML

  5. (オプション) 検証を選択して、コミットする前にYAMLコードが有効であることを確認します。

  6. [Commit] (コミット) を選択します。

  7. ワークフローをコミットダイアログボックスで、次のように入力します。

    1. ワークフローファイル名 の場合、デフォルトの のままにしますcodecatalyst-artifact-workflow

    2. コミットメッセージ には、次のように入力します。

      add initial workflow file
    3. リポジトリ で、 を選択しますcodecatalyst-artifact-source-repository

    4. ブランチ名 で、メイン を選択します。

    5. [Commit] (コミット) を選択します。

    これでワークフローが作成されました。ワークフローの上部に定義されているトリガーが原因で、ワークフローの実行が自動的に開始されます。具体的には、codecatalyst-artifact-workflow.yamlファイルをソースリポジトリにコミット (およびプッシュ) すると、トリガーによってワークフローの実行が開始されます。

ワークフロー実行の進行状況を表示するには
  1. ナビゲーションペインで CI/CD を選択し、ワークフロー を選択します。

  2. 作成したワークフローを選択します。 codecatalyst-artifact-workflow

  3. GenerateFiles を選択して、最初のビルドアクションの進行状況を表示します。

  4. アップロードを選択すると、2 番目のビルドアクションの進行状況が表示されます。

  5. アップロードアクションが完了したら、以下を実行します。

    • ワークフローの実行が成功したら、次の手順に進みます。

    • ワークフローの実行が失敗した場合は、ログを選択して問題をトラブルシューティングします。

ステップ 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
  1. https://codecatalyst.aws/ で CodeCatalyst コンソールを開きます。

  2. codecatalyst-artifact-source-repository ソースリポジトリを削除します。

  3. codecatalyst-artifact-workflow ワークフローを削除します。

でクリーンアップするには AWS
  1. Amazon S3 で次のようにクリーンアップします。

    1. で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/s3/

    2. codecatalyst-artifact-bucket バケット内のファイルを削除します。

    3. codecatalyst-artifact-bucket バケットを削除します。

  2. でIAM次のようにクリーンアップします。

    1. でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/

    2. codecatalyst-s3-build-policy を削除します。

    3. codecatalyst-s3-build-role を削除します。