Hinzufügen von Umgebungskomponenten zu einem Blueprint - Amazon CodeCatalyst

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Hinzufügen von Umgebungskomponenten zu einem Blueprint

Der Assistent für benutzerdefinierte Blueprints wird dynamisch über die Options Oberfläche generiert, die über den Assistenten verfügbar gemacht wird. Blueprints unterstützen das Generieren von Benutzeroberflächenkomponenten (UI) aus verfügbaren Typen.

So importieren Sie Amazon CodeCatalyst Blueprints-Umgebungskomponenten

Fügen Sie in Ihrer blueprint.ts Datei Folgendes hinzu:

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

Entwicklungsumgebungen erstellen

Das folgende Beispiel zeigt, wie Sie Ihre Anwendung in der Cloud bereitstellen:

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

Die Schnittstelle generiert eine UI-Komponente, die nach einer neuen Umgebung (myNewEnvironment) mit einer einzigen Kontoverbindung () fragtthisIsMyFirstAccountConnection. Es wird auch eine Rolle für die Kontoverbindung (thisIsARole) generiert, die mindestens die erforderlichen Rollenfunktionen enthält. ['lambda', 's3', 'dynamo'] Nicht alle Benutzer haben Kontoverbindungen, daher sollten Sie prüfen, ob ein Benutzer ein Konto nicht oder kein Konto mit einer Rolle verbindet. Rollen können auch mit @inlinePolicies Anmerkungen versehen werden. Weitere Informationen finden Sie unter @inlinePolicy. /path/to/policy/file.json.

Für die Umgebungskomponente ist ein name AND environmentType erforderlich. Der folgende Code ist die mindestens erforderliche Standardform:

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

Die UI-Komponente fordert Sie dann zur Eingabe verschiedener Felder auf. Wenn Sie die Felder ausfüllen, erhält der Blueprint eine vollständig erweiterte Form. Für Test- und Entwicklungszwecke kann es für Sie hilfreich sein, das vollständige Modell in die defaults.json Datei aufzunehmen.

Liste der Umgebungen

Wenn Sie ein Array vom Typ angeben, EnvironmentDefinition wird eine Liste von Umgebungen in der Benutzeroberfläche des Assistenten generiert.

export interface Options extends ParentOptions { ... /** @showName readOnly */ myEnvironments: EnvironmentDefinition<{ thisIsMyFirstAccountConnection: AccountConnection<{ thisIsARole: Role<['lambda', 's3', 'dynamo']>; }>; }>[]; }

Das folgende Beispiel zeigt die Standardeinstellungen für eine Umgebungsliste:

{ ... "myEnvironments": [ { "name": "myProductionEnvironment", "environmentType": "PRODUCTION" }, { "name": "myDevelopmentEnvironment", "environmentType": "DEVELOPMENT" }, ] }

Beispiele für simulierte Benutzeroberflächen

Einfache Scheinschnittstelle

{ ... "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" ] } } } }

Komplexe Scheinschnittstelle

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']; }; }; }

Vollständige Scheinschnittstelle

{ ... "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" ] } } }, }