Hinzufügen von Repository- und Quellcode-Komponenten 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 Repository- und Quellcode-Komponenten zu einem Blueprint

Ein Repository wird von Amazon CodeCatalyst zum Speichern von Code verwendet. Das Repository verwendet einen Namen als Eingabe. Die meisten Komponenten werden in einem Repository gespeichert, z. B. Quellcodedateien, Workflows und andere Komponenten wie verwaltete Entwicklungsumgebungen (MDE). Die Quell-Repository-Komponente exportiert auch Komponenten, die für die Verwaltung von Dateien und statischen Assets verwendet werden. Repositorys haben Namensbeschränkungen. Weitere Informationen finden Sie unter Speichern Sie Code mit Quell-Repositorys in und arbeiten Sie gemeinsam daran CodeCatalyst.

const repository = new SourceRepository(this, { title: 'my-new-repository-title', });

Um Amazon CodeCatalyst Blueprints, Repository- und Quellcode-Komponenten zu importieren

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

import {...} from '@caws-blueprint-component/caws-source-repositories'

Eine Datei hinzufügen

Sie können mit dem SourceFile Konstrukt eine Textdatei in ein Repository schreiben. Die Operation ist einer der häufigsten Anwendungsfälle und benötigt ein Repository, einen Dateipfad und Textinhalte. Wenn der Dateipfad in einem Repository nicht existiert, erstellt die Komponente alle erforderlichen Ordner.

new SourceFile(repository, `path/to/my/file/in/repo/file.txt`, 'my file contents');
Anmerkung

Wenn Sie zwei Dateien an denselben Speicherort innerhalb desselben Repositorys schreiben, überschreibt die neueste Implementierung die vorherige. Sie können die Funktion verwenden, um generierten Code auf mehrere Ebenen zu legen. Dies ist besonders nützlich, um den Code zu erweitern, den die benutzerdefinierten Blueprints möglicherweise generiert haben.

Eine generische Datei hinzufügen

Sie können beliebige Bits in Ihr Repository schreiben. Sie können aus einem Puffer lesen und das File Konstrukt verwenden.

new File(repository, `path/to/my/file/in/repo/file.img`, new Buffer(...)); new File(repository, `path/to/my/file/in/repo/new-img.img`, new StaticAsset('path/to/image.png').content());

Dateien werden kopiert

Sie können mit generiertem Code beginnen, indem Sie den Startcode kopieren und einfügen und dann weiteren Code auf dieser Basis generieren. Platzieren Sie den Code in dem static-assets Verzeichnis und zielen Sie dann auf diesen Code mit dem StaticAsset Konstrukt ab. Der Pfad beginnt in diesem Fall immer im static-assets Stammverzeichnis.

const starterCode = new StaticAsset('path/to/file/file.txt') const starterCodeText = new StaticAsset('path/to/file/file.txt').toString() const starterCodeRawContent = new StaticAsset('path/to/image/hello.png').content() const starterCodePath = new StaticAsset('path/to/image/hello.png').path() // starterCodePath is equal to 'path/to/image/hello.png'

Eine Unterklasse von StaticAsset istSubstitutionAsset. Die Unterklasse funktioniert genauso, aber stattdessen können Sie stattdessen eine Schnurrbart-Substitution über der Datei ausführen. Dies kann für die Generierung von Stilen nützlich sein. copy-and-replace

Die statische Asset-Substitution verwendet eine Moustache Templating-Engine, um die statischen Dateien zu rendern, die in das generierte Quell-Repository übertragen werden. Die Regeln für Moustache Templates werden beim Rendern angewendet, was bedeutet, dass alle Werte standardmäßig HTML-kodiert sind. Um HTML ohne Escape-Code zu rendern, verwenden Sie die Triple Moustache Syntax. {{{name}}} Weitere Informationen finden Sie in den Regeln für Schnurrbartvorlagen.

Anmerkung

Das Ausführen eines Ersatzes für Dateien, die nicht textinterpretierbar sind, kann zu Fehlern führen.

const starterCodeText = new SubstitionAsset('path/to/file/file.txt').subsitite({ 'my_variable': 'subbed value1', 'another_variable': 'subbed value2' })

Ausrichtung auf mehrere Dateien

Statische Assets unterstützen das globale Targeting über eine statische Funktion on StaticAsset und ihre UnterklassenfindAll(...), die eine Liste statischer Assets mit ihren Pfaden, Inhalten und mehr zurückgibt, die vorinstalliert sind. Sie können die Liste mit File Konstruktionen verketten, um Inhalte zu kopieren und in das Verzeichnis einzufügen. static-assets

new File(repository, `path/to/my/file/in/repo/file.img`, new Buffer(...)); new File(repository, `path/to/my/file/in/repo/new-img.img`, new StaticAsset('path/to/image.png').content());

Ein neues Repository erstellen und Dateien hinzufügen

Sie können eine Repository-Komponente verwenden, um ein neues Repository in einem generierten Projekt zu erstellen. Anschließend können Sie dem erstellten Repository Dateien oder Workflows hinzufügen.

import { SourceRepository } from '@amazon-codecatalyst/codecatalyst-source-repositories'; ... const repository = new SourceRepository(this, { title: 'myRepo' });

Das folgende Beispiel zeigt, wie Dateien und Workflows zu einem vorhandenen Repository hinzugefügt werden:

import { SourceFile } from '@amazon-codecatalyst/codecatalyst-source-repositories'; import { Workflow } from '@amazon-codecatalyst/codecatalyst-workflows'; ... new SourceFile(repository, 'README.md', 'This is the content of my readme'); new Workflow(this, repository, {/**...workflowDefinition...**/});

Durch die Kombination der beiden Codeteile wird ein einzelnes Repository myRepo mit einer Quelldatei README.md und einem CodeCatalyst Workflow im Stammverzeichnis generiert.