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.

Um Amazon CodeCatalyst Blueprints-Umgebungskomponenten zu importieren

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. Eine Rolle für die Kontoverbindung (thisIsARole) wird ebenfalls generiert, wobei ['lambda', 's3', 'dynamo'] mindestens die Rollenfunktionen erforderlich sind. 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/zur/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 hilfreich sein, das vollständige Modell in die defaults.json Datei aufzunehmen.

Beispiele für Scheinschnittstellen

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