設計図への環境コンポーネントの追加 - Amazon CodeCatalyst

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

設計図への環境コンポーネントの追加

カスタムブループリントウィザードは、ウィザードによって公開されるOptionsインターフェイスから動的に生成されます。ブループリントは、公開されたタイプからのユーザーインターフェイス (UI) コンポーネントの生成をサポートします。

Amazon CodeCatalyst ブループリント環境コンポーネントをインポートするには

blueprint.ts ファイルで、以下を追加します。

import {...} from '@amazon-codecatalyst/codecatalyst-environments'

開発環境の作成

次の例は、アプリケーションをクラウドにデプロイする方法を示しています。

export interface Options extends ParentOptions { ... myNewEnvironment: EnvironmentDefinition{ thisIsMyFirstAccountConnection: AccountConnection{ thisIsARole: Role['lambda', 's3', 'dynamo']; }; }; }

インターフェイスは、単一のアカウント接続 () を持つ新しい環境 (myNewEnvironment) を要求する UI コンポーネントを生成しますthisIsMyFirstAccountConnection。 アカウント接続 (thisIsARole) のロールは、最低限必要なロール機能['lambda', 's3', 'dynamo']として でも生成されます。すべてのユーザーがアカウント接続を持っているわけではないため、ユーザーがアカウントに接続しない場合や、アカウントをロールに接続しない場合にチェックする必要があります。ロールには の注釈を付けることもできます@inlinePolicies。詳細については、「@inlinePolicy ./path/to/policy/file.json」を参照してください。

環境コンポーネントには nameと が必要ですenvironmentType。次のコードは、最低限必要なデフォルトの形状です。

{ ... "myNewEnvironment": { "name": "myProductionEnvironment", "environmentType": "PRODUCTION" }, }

UI コンポーネントは、さまざまなフィールドの入力を求めます。フィールドに入力すると、設計図が完全に展開された形状になります。defaults.json テストと開発の目的で、 ファイルの完全なモックを含めると便利です。

モックインターフェイスの例

シンプルなモックインターフェイス

{ ... "thisIsMyEnvironment": { "name": "myProductionEnvironment", "environmentType": "PRODUCTION", "thisIsMySecondAccountConnection": { "id": "12345678910", "name": "my-account-connection-name", "secondAdminRole": { "arn": "arn:aws:iam::12345678910:role/ConnectedQuokkaRole", "name": "ConnectedQuokkaRole", "capabilities": [ "lambda", "s3", "dynamo" ] } } } }

複雑なモックインターフェイス

export interface Options extends ParentOptions { /** * The name of an environment * @displayName This is a Environment Name * @collapsed */ thisIsMyEnvironment: EnvironmentDefinition{ /** * comments about the account that is being deployed into * @displayName This account connection has an overriden name * @collapsed */ thisIsMyFirstAccountConnection: AccountConnection{ /** * Blah blah some information about the role that I expect * e.g. here's a copy-pastable policy: [to a link] * @displayName This role has an overriden name */ adminRole: Role['admin', 'lambda', 's3', 'cloudfront']; /** * Blah blah some information about the second role that I expect * e.g. here's a copy-pastable policy: [to a link] */ lambdaRole: Role['lambda', 's3']; }; /** * comments about the account that is being deployed into */ thisIsMySecondAccountConnection: AccountConnection{ /** * Blah blah some information about the role that I expect * e.g. here's a copy-pastable policy: [to a link] */ secondAdminRole: Role['admin', 'lambda', 's3', 'cloudfront']; /** * Blah blah some information about the second role that I expect * e.g. here's a copy-pastable policy: [to a link] */ secondLambdaRole: Role['lambda', 's3']; }; }; }

完全なモックインターフェイス

{ ... "thisIsMyEnvironment": { "name": "my-production-environment", "environmentType": "PRODUCTION", "thisIsMySecondAccountConnection": { "id": "12345678910", "name": "my-connected-account", "secondAdminRole": { "name": "LambdaQuokkaRole", "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole", "capabilities": [ "admin", "lambda", "s3", "cloudfront" ] }, "secondLambdaRole": { "name": "LambdaQuokkaRole", "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole", "capabilities": [ "lambda", "s3" ] } }, "thisIsMyFirstAccountConnection": { "id": "12345678910", "name": "my-connected-account", "adminRole": { "name": "LambdaQuokkaRole", "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole", "capabilities": [ "admin", "lambda", "s3", "cloudfront" ] }, "lambdaRole": { "name": "LambdaQuokkaRole", "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole", "capabilities": [ "lambda", "s3" ] } } }, }