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

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

チュートリアル: 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 」を参照してください。

ビルドロールを作成するには
  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. [次へ: タグ] を選択します。

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

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

      codecatalyst-s3-build-policy
    11. [ポリシーの作成] を選択します。

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

  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. [次へ] をクリックします。

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

    7. [次へ] をクリックします。

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

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

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

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

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

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

Amazon S3 バケットを作成するには
  1. https://console.aws.amazon.com/s3/でAmazon 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. [作成] を選択します。

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

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

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

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

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

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

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

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

ワークフローを作成するには
  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. https://console.aws.amazon.com/s3/でAmazon 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 を削除します。