翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: 構成可能なPDKブループリントを使用したフルスタックアプリケーションの作成
Amazon CodeCatalyst には、プロジェクトを迅速に開始できるように、さまざまな設計図が用意されています。ブループリントで作成されたプロジェクトには、ソースリポジトリ、サンプルソースコード、CI/CD ワークフロー、ビルドレポートとテストレポート、統合された問題追跡ツールなど、必要なリソースが含まれています。ただし、プロジェクトを徐々に構築したり、設計図によって作成された既存のプロジェクトに機能を追加したりする場合があります。設計図を使用してこれを行うこともできます。このチュートリアルでは、基盤を設定し、すべてのプロジェクトコードを 1 つのリポジトリに保存できる 1 つのブループリントの使用を開始する方法を示します。そこから、都合の良いときに最初のブループリントの上に他のブループリントを追加することで、追加のリソースとインフラストラクチャを柔軟に組み込むことができます。このビルディングブロック方式により、複数のプロジェクトで特定の要件に対応できます。
このチュートリアルでは、複数の AWS Project Development Kit (AWS PDK) ブループリントをまとめて構成し、React ウェブサイト、Smithy API、およびそれを にデプロイするサポートCDKインフラストラクチャで構成されるアプリケーションを作成する方法を示しますAWS。AWS PDK には、一般的なパターンの構成要素と、プロジェクトを管理および構築するための開発ツールが用意されています。詳細については、AWSPDK GitHub 「ソースリポジトリ
次のPDK設計図は、組み合わせ可能な方法でアプリケーションを構築するために相互に使用するように設計されています。
Monorepo
- モノレポ内のプロジェクト間の相互依存関係を管理するルートレベルのプロジェクトを作成します。このプロジェクトでは、ビルドキャッシュと依存関係の視覚化も提供します。 タイプセーフ API
- Smithy または OpenAPI v3 のいずれかで定義APIできる を作成し、ビルド時のコード生成を管理して、タイプセーフAPIな方法で を実装して操作できるようにします。を API Gateway APIにデプロイし、自動入力検証を設定するCDKコンストラクトを供給。 Cloudscape React ウェブサイト
- Cognito Auth と事前に統合されている Cloudscape と (オプションで) 作成した を使用して構築された React ベースのウェブサイトを作成します。これによりAPI、 API を安全に呼び出すことができます。 インフラストラクチャ
- アプリケーションのデプロイに必要なすべての CDK関連インフラストラクチャを設定するプロジェクトを作成します。また、ビルドするたびにCDKコードに基づいて図を生成するように事前設定されています。 DevOps
- Project AWS Development Kit (AWS) にあるコンストラクトと互換性のある DevOps ワークフローを作成しますPDK。
このチュートリアルには、デプロイされたアプリケーションを表示し、他のユーザーをそのアプリケーションを操作するよう招待し、プルリクエストがマージされたときに、接続されたAWSアカウントのリソースに自動的に構築およびデプロイされるプルリクエストを使用してコードを変更する方法の手順も含まれています。
PDK ブループリントで構成されるプロジェクトを作成すると、プロジェクトは次のリソースを使用してプロジェクトに CodeCatalyst 作成されます。
モノレポとして設定されたソースリポジトリ。
静的コード分析とライセンスチェックを実行するワークフロー、およびデフォルトのブランチに変更が加えられるたびにサンプルコードを構築してデプロイするワークフロー。アーキテクチャ図は、コードを変更するたびに生成されます。
作業の計画と追跡に使用できる問題ボードとバックログ。
自動レポートを含むテストレポートスイート。
トピック
前提条件
プロジェクトを作成および更新するには、のセットアップと へのサインイン CodeCatalyst次のように でタスクを完了している必要があります。
-
にサインインするための AWS Builder ID が必要です CodeCatalyst。
-
スペースに属し、そのスペースにスペース管理者またはパワーユーザーロールを割り当てます。詳細については、スペースの作成、ユーザーにスペース許可を付与する、およびスペース管理者ロールを参照してください。
-
スペースに関連付けられたAWSアカウントがあり、サインアップ時に作成したIAMロールがある。例えば、サインアップ中に、 CodeCatalystWorkflowDevelopmentRole- というロールポリシーを持つサービスロールを作成するオプションがあります。
spaceName
ロールポリシー。ロールには一意の識別子CodeCatalystWorkflowDevelopmentRole-
が付加された名前が付けられます。ロールとロールポリシーの詳細については、「」を参照してくださいCodeCatalystWorkflowDevelopmentRole-spaceName サービスロールについて。ロールを作成する手順については、「」を参照してくださいアカウントとスペースのCodeCatalystWorkflowDevelopmentRole-spaceNameロールの作成。spaceName
ステップ 1: monorepo プロジェクトを作成する
PDK - Monorepo ブループリントから始めて、基盤として機能するモノレポコードベースを作成し、PDKブループリントを追加できるようにします。
- Monorepo PDK ブループリントを使用してプロジェクトを作成するには
https://codecatalyst.aws/
で CodeCatalyst コンソールを開きます。 -
CodeCatalyst コンソールで、プロジェクトを作成するスペースに移動します。
-
スペースダッシュボードで、[プロジェクトの作成] を選択します。
-
設計図 で開始 を選択します。
-
PDK - モノレポの設計図を選択し、次へ を選択します。
-
プロジェクトの名前 に、プロジェクトに割り当てる名前とそれに関連するリソース名を入力します。名前はスペース内で一意でなければなりません。
-
プロジェクトリソース で、次の操作を行います。
プライマリプログラミング言語 で、プロジェクトコードを開発する言語を選択します。 TypeScript、Java、または Python から選択できます。
コード設定の選択
ソースリポジトリのテキスト入力フィールドに、ソースリポジトリの名前を入力します。これにより、新しいリポジトリが作成されるか、既存のリンクされたリポジトリから選択します。既存のリポジトリは空である必要があります。詳細については、「ソースリポジトリのリンク」を参照してください。
(オプション) パッケージマネージャーのドロップダウンメニューからパッケージマネージャーを選択します。これは、プライマリプログラミング言語 TypeScript として を選択した場合にのみ必要です。
-
(オプション) 行ったプロジェクトパラメータの選択に基づいて生成されるコードをプレビューするには、「プロジェクトプレビューの生成」から「コードを表示」を選択します。
-
(オプション) 設計図のカードから詳細を表示 を選択すると、設計図のアーキテクチャの概要、必要な接続とアクセス許可、設計図が作成するリソースの種類など、設計図に関する特定の詳細が表示されます。
-
モノレポプロジェクトを作成するには、プロジェクトの作成を選択します。作成されたルートレベルのプロジェクトは、モノレポ内のプロジェクト間の相互依存関係を管理し、ビルドキャッシュと依存関係の管理を提供します。
プロジェクトのブループリントの詳細については、「」を参照してください CodeCatalyst ブループリントを使用した包括的なプロジェクトの作成。
PDK - モノレポ設計図は、プロジェクトの基礎のみを生成します。ブループリントを使用して実用的なアプリケーションを作成するには、タイプセーフ 、Cloudscape React ウェブサイトAPI、インフラストラクチャ、 などの他のPDKブループリントを追加する必要があります DevOps。次のステップでは、プロジェクトに Type Safe API を追加します。
ステップ 2: プロジェクトAPIにタイプセーフを追加する
PDK - タイプセーフAPI設計図では、Smithy または OpenAI v3 APIを使用して を定義できます。定義からランタイムパッケージを生成します。これにはAPI、 とやり取りするためのクライアントAPIと、 を実装するためのサーバー側のコードが含まれますAPI。また、設計図では、APIオペレーションごとに型安全を持つCDKコンストラクトも生成されます。既存のPDKモノレポプロジェクトにブループリントを追加して、プロジェクトにAPI機能を追加できます。
- PDK 安全API設計図を追加するには
-
モノレポプロジェクトのナビゲーションペインで、ブループリント を選択し、ブループリント を追加 を選択します。
-
PDK - 安全API設計図を選択し、次へ を選択します。
-
「設計図の設定」で、設計図パラメータを設定します。
モデル言語 で、APIモデルが定義されている言語を選択します。
名前空間テキスト入力フィールドに、 の名前空間を入力しますAPI。
API 名前テキスト入力フィールドに、 の名前を入力しますAPI。
CDK 言語 APIで、 をデプロイするCDKインフラストラクチャを記述する任意の言語を選択します。
ハンドラー言語 (複数可) ドロップダウンメニューを選択し、APIオペレーションのハンドラーを実装する言語を選択します。
ドキュメント形式 (複数可) ドロップダウンメニューを選択し、APIドキュメントの生成に使用する形式を選択します。
-
コード変更タブで、提案された変更を確認します。プルリクエストに表示される違いは、プルリクエストの作成時のプロジェクトへの変更を示しています。
-
ブループリントの適用時に提案された変更に満足したら、ブループリントの追加 を選択します。
プルリクエストを作成したら、コメントを追加できます。コメントは、プルリクエスト、またはファイル内の個々の行、およびプルリクエスト全体に追加できます。ファイルなどのリソースへのリンクは、
@
署名の後にファイルの名前を付けることで追加できます。注記
ブループリントは、プルリクエストが承認されてマージされるまで適用されません。詳細については、「プルリクエストの確認」および「プルリクエストのマージ」を参照してください。
-
Status 列から、「Pending pull request for the PDK - Type Safe API blueprint row」を選択し、開いているプルリクエストのリンクを選択します。
-
マージ を選択し、希望するマージ戦略を選択し、マージ を選択して適用されたブループリントからの変更を組み込みます。
プルリクエストがマージされると、モノレポプロジェクト内に新しい
packages/apis/
フォルダが生成されます。このフォルダには、設定されたタイプセーフ に関連するすべてのAPIソースコードが含まれますAPI。mypdkapi
-
ナビゲーションペインでブループリント を選択して、 PDK- タイプセーフAPIのステータスが最新 と表示されることを確認します。
ステップ 3: プロジェクトに Cloudscape React ウェブサイトを追加する
PDK - Cloudscape React ウェブサイトの設計図はウェブサイトを生成します。オプションの パラメータ (タイプセーフ APIs) を関連付けて、認証済みのタイプセーフクライアントと、さまざまな APIをテストするインタラクティブAPIエクスプローラーをセットアップするようにウェブサイトを自動的に設定できます。
PDK- Cloudscape React ウェブサイトの設計図を追加するには
-
モノレポプロジェクトのナビゲーションペインで、ブループリント を選択し、ブループリントの追加 を選択します。
-
PDK - Cloudscape React ウェブサイトの設計図を選択し、次へ を選択します。
-
「設計図の設定」で、設計図パラメータを設定します。
ウェブサイト名テキスト入力フィールドに、ウェブサイトの名前を入力します。
Type Safe APIs ドロップダウンメニューを選択し、ウェブサイト内で統合するAPIブループリントを選択します。を渡すと、認証されたクライアントAPIが設定され、必要な依存関係、APIエクスプローラー、その他の機能が追加されます。
-
コード変更タブで、提案された変更を確認します。プルリクエストに表示される違いは、プルリクエストの作成時のプロジェクトへの変更を示しています。
-
ブループリントの適用時に提案された変更に満足したら、ブループリントの追加 を選択します。
プルリクエストを作成したら、コメントを追加できます。コメントは、プルリクエスト、またはファイル内の個々の行、およびプルリクエスト全体に追加できます。ファイルなどのリソースへのリンクは、
@
署名の後にファイルの名前を付けることで追加できます。注記
ブループリントは、プルリクエストが承認されてマージされるまで適用されません。詳細については、「プルリクエストの確認」および「プルリクエストのマージ」を参照してください。
-
ステータス 列から、 PDK - Cloudscape React ウェブサイトの設計図行のプルリクエストの保留中 を選択し、開いているプルリクエストのリンクを選択します。
-
マージ を選択し、希望するマージ戦略を選択し、マージ を選択して適用されたブループリントからの変更を組み込みます。
プルリクエストがマージされると、モノレポプロジェクト内に新しい
packages/websites/
フォルダが生成され、新しいウェブサイトのすべてのソースコードが含まれます。my-website-name
-
ナビゲーションペインでブループリント を選択して、 PDK - Cloudscape React ウェブサイトのステータスに最新の が表示されることを確認します。
次に、 PDK - インフラストラクチャブループリントを追加して、ウェブサイトをAWSクラウドにデプロイするインフラストラクチャを生成します。
ステップ 4: アプリケーションをAWSクラウドにデプロイするためのインフラストラクチャを生成する
PDK - インフラストラクチャの設計図は、ウェブサイトと をデプロイするためのすべてのCDKコードを含むパッケージを設定しますAPI。また、デフォルトで図の生成とプロトタイプナグパックへの準拠も提供します。
- PDK インフラストラクチャブループリントを追加するには
-
モノレポプロジェクトのナビゲーションペインで、ブループリント を選択し、ブループリントの追加 を選択します。
-
PDK - インフラストラクチャの設計図を選択し、次へ を選択します。
-
「設計図の設定」で、設計図パラメータを設定します。
CDK 言語 で、インフラストラクチャを開発する言語を選択します。
スタック名テキスト入力フィールドに、設計図用に生成された CloudFormation スタックの名前を入力します。
注記
ワークフローを設定する次のステップでは、このスタック名に注意してください DevOps 。
Type Safe APIs ドロップダウンメニューを選択し、ウェブサイトに統合するAPIブループリントを選択します。
Cloudscape React TS Websites ドロップダウンメニューを選択し、インフラストラクチャ内にデプロイするウェブサイトの設計図を選択します (例: PDK - Cloudscape React Website )。
-
コード変更タブで、提案された変更を確認します。プルリクエストに表示される違いは、プルリクエストの作成時のプロジェクトへの変更を示しています。
-
ブループリントの適用時に提案された変更に満足したら、ブループリントの追加 を選択します。
プルリクエストを作成したら、コメントを追加できます。コメントは、プルリクエスト、またはファイル内の個々の行、およびプルリクエスト全体に追加できます。ファイルなどのリソースへのリンクは、
@
署名の後にファイルの名前を付けることで追加できます。注記
ブループリントは、プルリクエストが承認されてマージされるまで適用されません。詳細については、「プルリクエストの確認」および「プルリクエストのマージ」を参照してください。
-
Status 列から、「Pending pull request for the PDK - Infrastructure blueprint row」を選択し、開いているプルリクエストのリンクを選択します。
-
マージ を選択し、希望するマージ戦略を選択し、マージ を選択して適用されたブループリントからの変更を組み込みます。
プルリクエストがマージされると、モノレポプロジェクト内に新しい
packages/infra
フォルダが生成されます。これには、プロジェクトをAWSクラウドにデプロイするインフラストラクチャが含まれます。 -
ナビゲーションペインで、ブループリント を選択して、 PDK - インフラストラクチャのステータスに最新の が表示されることを確認します。
次に、 PDK - DevOpsブループリントを追加してアプリケーションをデプロイします。
ステップ 5: プロジェクトをデプロイする DevOps ワークフローを設定する
PDK - DevOps ブループリントは、設定で指定されたAWSアカウントとロールを使用してプロジェクトを構築およびデプロイするために必要な DevOps ワークフローを生成します。
PDK DevOps ブループリントを追加するには
-
モノレポプロジェクトのナビゲーションペインで、ブループリント を選択し、ブループリントの追加 を選択します。
-
PDK - DevOpsブループリントを選択し、次へ を選択します。
-
「設計図の設定」で、設計図パラメータを設定します。
現在の環境でブートストラップCDKを選択します。
スタック名テキスト入力フィールドに、デプロイする CloudFormation スタックの名前を入力します。これは、 PDK- インフラストラクチャ設計図ステップ 4: アプリケーションをAWSクラウドにデプロイするためのインフラストラクチャを生成するの で設定されたスタック名と一致する必要があります。
AWS アカウント接続ドロップダウンメニューを選択し、リソースに使用するAWSアカウントを選択します。詳細については、「スペース AWS アカウント への の追加」を参照してください。
アプリケーションのデプロイに使用するロールドロップダウンメニューを選択し、プロジェクトアプリケーションのデプロイに使用するIAMロールを選択します。
注記
IAM ロールを作成するときは、
SourceArn
をプロジェクト設定内の現在のProjectID
に制限します。詳細については、「CodeCatalystWorkflowDevelopmentRole-spaceName サービスロールについて」を参照してください。リージョンドロップダウンメニューを選択し、モノレポプロジェクトをデプロイするリージョンを選択します。デプロイは、必要なAWSサービスが存在するリージョンでのみ機能します。詳細については、AWS「リージョン別のサービス
」を参照してください。
-
コード変更タブで、提案された変更を確認します。プルリクエストに表示される違いは、プルリクエストの作成時のプロジェクトへの変更を示しています。
-
ブループリントの適用時に提案された変更に満足したら、ブループリントの追加 を選択します。
プルリクエストを作成したら、コメントを追加できます。コメントは、プルリクエスト、またはファイル内の個々の行、およびプルリクエスト全体に追加できます。ファイルなどのリソースへのリンクは、
@
署名の後にファイルの名前を付けることで追加できます。注記
ブループリントは、プルリクエストが承認されてマージされるまで適用されません。詳細については、「プルリクエストの確認」および「プルリクエストのマージ」を参照してください。
-
Status 列から、「Pending pull request for the PDK - Infrastructure blueprint row」を選択し、開いているプルリクエストのリンクを選択します。
-
マージ を選択し、希望するマージ戦略を選択し、マージ を選択して適用されたブループリントからの変更を組み込みます。
プルリクエストがマージされると、モノレポプロジェクト内に新しい
.codecatalyst/workflows
フォルダが生成されます。 -
ナビゲーションペインでブループリント を選択して、 のステータス PDK - DevOps に最新の が表示されることを確認します。
注記
PDK - DevOps 設計図とそれ以降のすべてのPDK設計図への変更は、この時点から大幅に遅くなります。これは、ビルドとデプロイが将来繰り返し可能になるように、バックグラウンドでロックファイルが生成されるためです。これにより、サポートされているすべての言語のすべてのパッケージのロックファイルが生成されます。
ステップ 6: リリースワークフローを確認し、ウェブサイトを表示する
前のステップを完了したら、リリースワークフローを確認して、プロジェクトが構築されていることを確認します。
リリースワークフローを確認してウェブサイトを表示するには
-
モノレポプロジェクトのナビゲーションペインで、CI/CD を選択し、ワークフロー を選択します。
-
リリースワークフローでは、最新のワークフロー実行を選択して詳細を表示します。詳細については、「1 回の実行のステータスと詳細の表示」を参照してください。
-
ワークフローが正常に実行されたら、ワークフロー内の最後のアクション (Deploy-B eta-ap-souteast-2 など) を選択し、Variables を選択します。
-
Variables テーブルにあるリンクをコピーして貼り付けて、デプロイされたウェブサイトを表示します (例:
MyPDKApi
websiteDistributionDomainXXXXX) を新しいブラウザウィンドウに名前付けします。ウェブサイトにログインするには、Amazon Cognito アカウントが必要です。デフォルトでは、ユーザープールは自己登録を許可するように設定されていません。
-
AWS Cognito コンソール
に移動します。 -
ユーザープールテーブルから、 PDK - DevOpsブループリントによって作成されたユーザープールと一致するユーザープール名を選択します。これは、変数テーブル (例: infra
calculate
betaUserIdentityinfracalculate
betaUserIdentityIdentityPoolIdXXXXX。詳細については、「ユーザープールの開始方法」を参照してください。 -
[ユーザーの作成] を選択します。
-
ユーザー情報パラメータを設定します。
「招待メッセージ」で、「招待メールを送信する」を選択します。
ユーザー名テキスト入力フィールドにユーザー名を入力します。
E メールアドレスのテキスト入力フィールドにユーザー名を入力します。
一時パスワード で、パスワードの生成 を選択します。
-
[ユーザーの作成] を選択します。
-
ユーザー情報パラメータに入力した E メールアカウントに移動し、一時パスワードを含む E メールを開きます。パスワードを書き留めておきます。
-
デプロイされたウェブサイトに戻り、作成したユーザー名と受け取った一時パスワードを入力し、「サインイン」を選択します。
-
-
(オプション) ワークフローの実行が正常に完了したら、生成された図を表示することもできます。のアーティファクトタブを選択し CodeCatalyst、ダイアグラム行のダウンロードを選択し、ダウンロードしたファイルを開きます (複数可)。
PDK プロジェクトのコラボレーションと反復
プロジェクトを設定したら、ソースコードを変更することができます。他のスペースメンバーを招待してプロジェクトに取り組むこともできます。PDK ブループリントを使用すると、アプリケーションを繰り返し構築できます。必要なときに必要なときに必要なものだけを追加しながら、各ブループリントの設定を完全に制御できます。
トピック
ステップ 1: メンバーをプロジェクトに招待する
コンソールを使用して、プロジェクトにユーザーを招待できます。スペースのメンバーを招待したり、スペースの外部から名前を追加したりできます。
プロジェクトにユーザーを招待するには、プロジェクト管理者またはスペース管理者ロールでサインインする必要があります。
Space 管理者ロールを持つユーザーは、スペース内のすべてのプロジェクトに暗黙的にアクセスできるため、プロジェクトに招待する必要はありません。
プロジェクトにユーザーを招待すると (スペース管理者ロールを割り当てずに)、ユーザーはプロジェクトメンバーテーブルの下のプロジェクト、およびスペースの下のプロジェクトメンバーテーブルに表示されます。
プロジェクト設定タブからメンバーをプロジェクトに招待するには
-
プロジェクトに移動します。
ヒント
上部のナビゲーションバーに表示するプロジェクトを選択できます。
-
ナビゲーションペインで、プロジェクト設定 を選択します。
-
[メンバー] タブを選択します。
-
プロジェクトメンバー で、新しいメンバーの招待 を選択します。
-
新しいメンバーの E メールアドレスを入力し、このメンバーのロールを選択し、招待 を選択します。ロールの詳細については、「ユーザーロールによるアクセスの許可」をご参照ください。
プロジェクト概要ページからプロジェクトにメンバーを招待するには
-
プロジェクトに移動します。
ヒント
上部のナビゲーションバーに表示するプロジェクトを選択できます。
-
メンバー + ボタンを選択します。
-
新しいメンバーの E メールアドレスを入力し、このメンバーのロールを選択し、招待 を選択します。ロールの詳細については、「ユーザーロールによるアクセスの許可」をご参照ください。
ステップ 2: 共同作業と追跡作業に関する問題を作成する
CodeCatalyst は、問題のあるプロジェクトに関連する機能、タスク、バグ、その他の作業を追跡するのに役立ちます。問題を作成して、必要な作業やアイデアを追跡できます。デフォルトでは、問題を作成すると、バックログに追加されます。進行中の作業を追跡するボードに問題を移動できます。特定のプロジェクトメンバーに問題を割り当てることもできます。このステップでは、PDKプロジェクトに変更を加えるための問題を作成します。
問題を作成するには
https://codecatalyst.aws/
で CodeCatalyst コンソールを開きます。 -
問題を作成するモノレポプロジェクトに移動します。
-
プロジェクトのホームページで、「問題の作成」を選択します。または、ナビゲーションペインで問題 を選択します。
-
問題の作成 を選択します。
注記
グリッドビューを使用するときに、問題をインラインで追加することもできます。
-
問題のタイトルを入力します。
-
(オプション) 説明 を入力します。この問題については、次の説明を入力します:
a change in the src/mysfit_data.json file.
。Markdown を使用して書式を追加できます。 -
(オプション) 問題のステータス、優先度、推定を選択します。
-
(オプション) 既存のラベルを追加するか、新しいラベルを作成して + ラベルを追加 を選択して追加します。
既存のラベルを追加するには、リストからラベルを選択します。フィールドに検索語を入力すると、その語句を含むすべてのラベルをプロジェクトで検索できます。
新しいラベルを作成して追加するには、作成するラベルの名前を検索フィールドに入力し、Enter キーを押します。
-
(オプション) + 担当者を追加 を選択して、担当者を追加します。+ Add me を選択すると、自分自身を担当者としてすばやく追加できます。
ヒント
Amazon Q に問題を割り当てることで、Amazon Q で問題の解決を試みることができます。詳細については、「チュートリアル: CodeCatalyst 生成 AI 機能を使用して開発作業を高速化する」を参照してください。
この機能を使用するには、空間に対して生成 AI 機能を有効にする必要があります。詳細については、「生成 AI 機能の管理」を参照してください。
-
(オプション) 既存のカスタムフィールドを追加するか、新しいカスタムフィールドを作成します。問題には複数のカスタムフィールドを含めることができます。
既存のカスタムフィールドを追加するには、リストからカスタムフィールドを選択します。フィールドに検索語を入力すると、プロジェクト内のその語を含むすべてのカスタムフィールドを検索できます。
新しいカスタムフィールドを作成して追加するには、検索フィールドに作成するカスタムフィールドの名前を入力し、Enter キーを押します。次に、作成するカスタムフィールドのタイプを選択し、値を設定します。
-
問題の作成 を選択します。右下隅に通知が表示されます。問題が正常に作成された場合は、問題が正常に作成されたことを示す確認メッセージが表示されます。問題が正常に作成されなかった場合は、失敗の理由を示すエラーメッセージが表示されます。その後、再試行を選択して問題を編集して作成を再試行するか、破棄を選択して問題を破棄します。どちらのオプションも通知を却下します。
注記
プルリクエストを作成するときに、プルリクエストを問題にリンクすることはできません。ただし、作成後に編集してプルリクエストへのリンクを追加できます。
詳細については、「で問題のある作業を追跡して整理する CodeCatalyst」を参照してください。
ステップ 3: ソースリポジトリを表示する
Amazon でプロジェクトに関連付けられたソースリポジトリを表示できます CodeCatalyst。のソースリポジトリの場合 CodeCatalyst、リポジトリの概要ページには、そのリポジトリ内の情報とアクティビティの概要が次のように表示されます。
-
リポジトリがある場合は、その説明
-
リポジトリ内のブランチの数
-
リポジトリのオープンプルリクエストの数
-
リポジトリの関連ワークフローの数
-
デフォルトブランチのファイルとフォルダ、または選択したブランチ
-
表示されたブランチへの最後のコミットのタイトル、作成者、および日付
-
README.md ファイルが含まれている場合、Markdown でレンダリングされた README.md ファイルの内容
このページには、リポジトリのコミット、ブランチ、プルリクエストへのリンクと、個々のファイルをすばやく開いたり、表示したり、編集したりする方法も記載されています。
注記
リンクされたリポジトリに関するこの情報は、 CodeCatalyst コンソールでは表示できません。リンクされたリポジトリに関する情報を表示するには、リポジトリのリストにあるリンクを選択して、リポジトリをホストするサービスでそのリポジトリを開きます。
プロジェクトのソースリポジトリに移動するには
-
プロジェクトに移動し、次のいずれかを実行します。
プロジェクトの概要ページで、リストから目的のリポジトリを選択し、リポジトリの表示 を選択します。
-
ナビゲーションペインで [コード] を選択してから、[ソースリポジトリ] を選択します。ソースリポジトリ で、リストからリポジトリの名前を選択します。リポジトリのリストをフィルタリングするには、フィルターバーにリポジトリ名の一部を入力します。
-
リポジトリのホームページで、リポジトリの内容と、プルリクエストやワークフローの数など、関連するリソースに関する情報を表示します。デフォルトでは、デフォルトのブランチの内容が表示されます。ドロップダウンリストから別のブランチを選択して、ビューを変更できます。
ヒント
プロジェクトの概要ページからプロジェクトコードを表示を選択して、プロジェクトのリポジトリにすばやく移動することもできます。
ステップ 4: 開発環境を作成してコードを変更する
このステップでは、開発環境を作成し、コードを変更してメインブランチにマージします。このチュートリアルではシンプルなAWSPDKプロジェクトについて説明しますが、AWSPDK GitHub リポジトリ
新しいブランチを使用して開発環境を作成するには
-
monorepo プロジェクトのナビゲーションペインで、次のいずれかを実行します。
概要 を選択し、「開発環境」セクションに移動します。
コード を選択し、開発環境 を選択します。
コード を選択し、ソースリポジトリ を選択し、開発環境を作成するモノレポリポジトリを選択します。
-
サポートされている をドロップダウンメニューIDEから選択します。詳細については、「開発環境でサポートされている統合開発環境」を参照してください。
-
[リポジトリのクローン] を選択します。
-
クローンするリポジトリを選択し、[新しいブランチで作業する] を選択し、[ブランチ名] フィールドにブランチ名を入力し、[ブランチの作成元] ドロップダウンメニューから新しいブランチを作成するブランチを選択します。
注記
ソースリポジトリページまたは特定のソースリポジトリから開発環境を作成する場合、リポジトリを選択する必要はありません。開発環境は、ソースリポジトリページから選択したソースリポジトリから作成されます。
-
(オプション) エイリアス - オプションで、開発環境のエイリアスを入力します。
-
(オプション) 開発環境設定の編集ボタンを選択して、開発環境のコンピューティング、ストレージ、またはタイムアウト設定を編集します。
-
(オプション) Amazon Virtual Private Cloud (Amazon VPC) - オプション で、ドロップダウンメニューから開発環境に関連付けるVPC接続を選択します。
スペースにデフォルトVPCが設定されている場合、開発環境はその に接続された状態で実行されますVPC。これを上書きするには、別のVPC接続を関連付けます。また、 VPCに接続された開発環境は AWS Toolkit をサポートしていないことに注意してください。
注記
VPC 接続を使用して開発環境を作成すると、 内に新しいネットワークインターフェイスが作成されますVPC。 CodeCatalyst は、関連付けられたVPCロールを使用してこのインターフェイスとやり取りします。また、IPv4CIDRブロックが
172.16.0.0/12
IP アドレス範囲に設定されていないことを確認してください。 -
[Create] (作成) を選択します。開発環境の作成中は、開発環境のステータス列に [開始中] と表示され、開発環境が作成されると、ステータス列に [実行中] と表示されます。
開発環境が実行されたら、プルリクエストがマージされたときに、接続されたAWSアカウントのリソースに自動的に構築およびデプロイされるプルリクエストを使用してコードを変更 CodeCatalyst することで、 で生成されたサンプルアプリケーションを使用できます。モノレポは devfile を供給して、必要なすべてのグローバル依存関係とランタイムが自動的に存在するようにします。
プロジェクトのコードを変更するには
-
開発環境の作業ターミナルでモノレポプロジェクトに移動し、次のコマンドを実行してプロジェクトの依存関係をインストールします。
npx projen install
-
API オペレーション例
packages/apis/
を定義する に移動します。このチュートリアルでは、2 つの数値を一緒に追加するシンプルなmypdkapi
/model/src/main/smithy/operations/say-hello.smithyCalculate
オペレーションを構築します。コードを変更して、入力と出力を含むこのオペレーションを定義します。例:
$version: "2" namespace com.aws @http(method: "
POST
", uri: "/calculate
") @handler(language: "typescript") operationCalculate
{ input := {@required numberA: Integer @required numberB: Integer
} output := {@required result: Integer
} }この
@handler
特性は、このオペレーションを で記述された AWS Lambda ハンドラーとして実装APIすることを Type Safe に指示します TypeScript。Type Safe APIは、このオペレーションのスタブを生成し、 に実装できるようにします TypeScript。@required
特性が追加されます。つまり、デプロイされるAPIゲートウェイによって実行時に適用されます。詳細については、「Smithy ドキュメント」を参照してください。 -
/say-hello.smithy
ファイル名をコードの変更と一致する名前に変更します (例:calculate.smithy
)。 -
に移動し
packages/apis/
、コードを変更してオペレーションをフックします。で定義されたmypdkapi
/model/src/main/smithy/main.smithyCalculate
オペレーションを公開/calculate.smithy
するには、このファイルのoperations
フィールドに一覧表示します。例:
$version: "2" namespace com.aws use aws.protocols#restJson1 /// A sample smithy api @restJson1 service MyPDKApi { version: "1.0" operations: [
Calculate
] errors: [ BadRequestError NotAuthorizedError InternalFailureError ] } -
次のコマンドを実行して、変更を構築します。
npx projen build
注記
オプションで、
--parallel X
フラグを渡すことができます。これにより、ビルドがX
コア全体に分散されます。@handler
特性が追加されているため、ビルドが完了すると次のファイルが生成されます。-
/packages/apis/
mypdkapi
/handlers/typescript/src/calculate.ts
-
/packages/apis/
mypdkapi
/handlers/typescript/test/calculate.test.ts
-
-
に移動し
packages/apis/
、コードを変更します。このファイルは、 に対して呼び出されるサーバーハンドラーですAPI。mypdkapi
/handlers/typescript/src/calculate.ts
import { calculateHandler, CalculateChainedHandlerFunction, INTERCEPTORS, Response, LoggingInterceptor, } from 'mypdkapi-typescript-runtime'; /** * Type-safe handler for the Calculate operation */ export const calculate: CalculateChainedHandlerFunction = async (request) => { LoggingInterceptor.getLogger(request).info('Start Calculate Operation'); const { input } = request; return
Response.success
({result: input.body.numberA + input.body.numberB,
}); }; /** * Entry point for the AWS Lambda handler for the Calculate operation. * The calculateHandler method wraps the type-safe handler and manages marshalling inputs and outputs */ export const handler = calculateHandler(...INTERCEPTORS, calculate); -
/packages/apis/
ファイルに移動し、コードを変更してユニットテストを更新します。mypdkapi
/handlers/typescript/test/calculate.test.ts
例:
import { CalculateChainedRequestInput,
CalculateResponseContent,
} from 'mypdkapi-typescript-runtime'; import { calculate, } from '../src/calculate'; // Common request arguments const requestArguments = { chain: undefined as never, event: {} as any, context: {} as any, interceptorContext: { logger: { info: jest.fn(), }, }, } satisfies Omit<CalculateChainedRequestInput, 'input'>; describe('Calculate', () => { it('should return correct sum
', async () => { const response = await calculate({ ...requestArguments, input: { requestParameters: {}, body: {numberA: 1, numberB: 2
} }, }); expect(response.statusCode).toBe(200
); expect((response.body asCalculateResponseContent
).result
).toEqual(3
); }); }); -
/packages/infra/main/src/constructs/apis/
ファイルに移動し、コードを変更して、CDKインフラストラクチャ内のmypdkapi.ts
Calculate
オペレーションの統合を追加します。API コンストラクトには統合プロパティがあり、前に追加した実装を渡すことができます。Calculate
オペレーションには Smithy モデルで@handler
特性を使用しているため、事前に設定された生成されたCalculateFunction
CDKコンストラクトを使用して、ハンドラーの実装をポイントできます。例:
import { UserIdentity } from "@aws/pdk/identity"; import { Authorizers,
Integrations
} from "@aws/pdk/type-safe-api"; import { Stack } from "aws-cdk-lib"; import { Cors } from "aws-cdk-lib/aws-apigateway"; import { AccountPrincipal, AnyPrincipal, Effect, PolicyDocument, PolicyStatement, } from "aws-cdk-lib/aws-iam"; import { Construct } from "constructs"; import { Api,CalculateFunction
} from "calculateapi-typescript-infra"; /** * Api construct props. */ export interface CalculateApiProps { /** * Instance of the UserIdentity. */ readonly userIdentity: UserIdentity; } /** * Infrastructure construct to deploy a Type Safe API. */ export class CalculateApi extends Construct { /** * API instance */ public readonly api: Api; constructor(scope: Construct, id: string, props?: CalculateApiProps) { super(scope, id); this.api = new Api(this, id, { defaultAuthorizer: Authorizers.iam(), corsOptions: { allowOrigins: Cors.ALL_ORIGINS, allowMethods: Cors.ALL_METHODS, }, integrations:{ calculate: { integration: Integrations.lambda(new CalculateFunction(this, "CalculateFunction")) }
}, policy: new PolicyDocument({ statements: [ // Here we grant any AWS credentials from the account that the prototype is deployed in to call the api. // Machine to machine fine-grained access can be defined here using more specific principals (eg roles or // users) and resources (ie which api paths may be invoked by which principal) if required. // If doing so, the cognito identity pool authenticated role must still be granted access for cognito users to // still be granted access to the API. new PolicyStatement({ effect: Effect.ALLOW, principals: [new AccountPrincipal(Stack.of(this).account)], actions: ["execute-api:Invoke"], resources: ["execute-api:/*"], }), // Open up OPTIONS to allow browsers to make unauthenticated preflight requests new PolicyStatement({ effect: Effect.ALLOW, principals: [new AnyPrincipal()], actions: ["execute-api:Invoke"], resources: ["execute-api:/*/OPTIONS/*"], }), ], }), }); // Grant authenticated users access to invoke the api props?.userIdentity.identityPool.authenticatedRole.addToPrincipalPolicy( new PolicyStatement({ effect: Effect.ALLOW, actions: ["execute-api:Invoke"], resources: [this.api.api.arnForExecuteApi("*", "/*", "*")], }), ); } } -
次のコマンドを実行して、変更を構築します。
npx projen build
プロジェクトの構築が完了したら、更新された生成図を表示できます。図は、 にあります/packages/infra/main/cdk.out/cdkgraph/diagram.png
。この図は、関数がどのように追加され、API作成された に接続されるかを示しています。CDK コードが変更されると、この図も更新されます。
リポジトリのメインブランチにプッシュしてマージすることで、変更をデプロイできるようになりました。
ステップ 5: コードの変更をプッシュしてマージする
コードの変更をコミットしてプッシュし、ソースリポジトリのメインブランチにマージできます。
変更を特徴量ブランチにプッシュするには
-
次のコマンドを実行して、変更をコミットして特徴量ブランチにプッシュします。
git add .
git commit -m "
my commit message
"git push
変更をプッシュすると、機能ブランチの新しいワークフロー実行がトリガーされ、 CodeCatalyst コンソールで表示できます。その後、プルリクエストを作成して、変更をソースリポジトリのメインブランチにマージできます。機能ブランチをメインブランチにマージすると、リリースワークフローがトリガーされます。プルリクエストを問題にリンクすることもできます。
プルリクエストを作成して問題にリンクするには
-
monorepo プロジェクトで、次のいずれかを実行します。
-
ナビゲーションペインで、コード を選択し、プルリクエスト を選択し、プルリクエストの作成 を選択します。
-
リポジトリのホームページで、「詳細」を選択し、「プルリクエストの作成」を選択します。
-
プロジェクトページで、プルリクエストの作成 を選択します。
-
-
ソースリポジトリ で、指定されたソースリポジトリがコミットされたコードを含むリポジトリであることを確認します。このオプションは、リポジトリのメインページからプルリクエストを作成していない場合にのみ表示されます。
-
送信先ブランチ で、レビュー後にコードをマージするメインブランチを選択します。
-
ソースブランチ で、コミットされたコードを含む機能ブランチを選択します。
-
プルリクエストのタイトル に、他のユーザーがレビューする必要がある内容と理由を理解するのに役立つタイトルを入力します。
-
(オプション) プルリクエストの説明 で、問題へのリンクや変更の説明などの情報を入力します。
ヒント
プルリクエストに含まれる変更の説明 CodeCatalyst を自動的に生成するには、説明の書き込み を選択します。プルリクエストに追加した後、自動的に生成された説明を変更できます。
この機能を使用するには、空間に対して生成 AI 機能を有効にする必要があります。詳細については、「Amazon での生成 AI 機能の管理 CodeCatalyst」を参照してください。
-
「問題」で「問題にリンク」を選択し、「」で作成した問題を選択しますステップ 2: 共同作業と追跡作業に関する問題を作成する。問題のリンクを解除するには、リンク解除アイコンを選択します。
-
(オプション) 必要なレビューワー で、必要なレビューワーを追加 を選択します。プロジェクトメンバーのリストから選択して追加します。必要なレビューワーは、プルリクエストを送信先ブランチにマージする前に、変更を承認する必要があります。
注記
レビューワーを必須レビューワーとオプションのレビューワーの両方として追加することはできません。自分自身をレビューワーとして追加することはできません。
-
(オプション) オプションのレビューワー で、オプションのレビューワーを追加 を選択します。プロジェクトメンバーのリストから選択して追加します。オプションのレビューワーは、プルリクエストを送信先ブランチにマージする前に、変更を要件として承認する必要はありません。
-
プルリクエストは、レビュー担当者または自分自身によってレビューされ、メインブランチにマージされる必要があります。詳細については、「プルリクエストのマージ」を参照してください。
変更がソースリポジトリのメインブランチにマージされると、新しいワークフローが自動的にトリガーされます。
-
マージが完了したら、問題を「完了」に移動できます。
-
ナビゲーションペインで、問題 を選択します。
-
で作成された問題を選択しステップ 2: 共同作業と追跡作業に関する問題を作成する、ステータスドロップダウンを選択し、完了 を選択します。
-
リリースワークフローは、正常に実行された後にアプリケーションをデプロイするため、変更を表示できます。
リリースワークフローを確認してウェブサイトを表示するには
-
モノレポプロジェクトのナビゲーションペインで、CI/CD を選択し、ワークフロー を選択します。
-
リリースワークフローでは、最新のワークフロー実行を選択して詳細を表示します。詳細については、「1 回の実行のステータスと詳細の表示」を参照してください。
-
ワークフローが正常に実行されたら、ワークフローの最後のアクション (Deploy-B eta-ap-souteast-2) を選択し、変数 を選択します。
-
からリンクをコピーして貼り付けて、デプロイされたウェブサイトを表示する
MyPDKApi
websiteDistributionDomain新しいブラウザウィンドウに行に名前XXXXXを付けます。 -
で作成したユーザー名とパスワードを入力しステップ 6: リリースワークフローを確認し、ウェブサイトを表示する、「サインイン」を選択します。
-
(オプション) アプリケーションの変更をテストします。
-
POST ドロップダウンメニューを選択します。
-
numberA
と に 2 つの値を入力しnumber B
、実行 を選択します。 -
レスポンス本文 で結果を確認します。
-
時間の経過とともに、PDK設計図のカタログバージョンが変更される可能性があります。プロジェクトのブループリントをカタログバージョンに変更して、最新の変更を最新の状態に保つことができます。プロジェクトのブループリントバージョンを変更する前に、コードの変更と影響を受ける環境を表示できます。詳細については、「プロジェクトのブループリントバージョンの変更」を参照してください。