Verpacken Sie die Vorlagendateien für AWS Proton - AWS Proton

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.

Verpacken Sie die Vorlagendateien für AWS Proton

Nachdem Sie Ihre Umgebung und Dienstinfrastruktur als Codedateien (IaC) und die entsprechenden Schemadateien vorbereitet haben, müssen Sie sie in Verzeichnissen organisieren. Sie müssen auch eine Manifest-YAML-Datei erstellen. Die Manifestdatei listet die IaC-Dateien in einem Verzeichnis, die Rendering-Engine und die Vorlagensprache auf, die zur Entwicklung der IaC in dieser Vorlage verwendet wurde.

Anmerkung

Eine Manifestdatei kann auch unabhängig von Vorlagenpaketen als direkte Eingabe für direkt definierte Komponenten verwendet werden. In diesem Fall spezifiziert sie immer eine einzelne IaC-Vorlagendatei, sowohl für Terraform als auch für Terraform CloudFormation . Weitere Informationen zu Komponenten finden Sie unter. AWS Proton Komponenten

Die Manifestdatei muss dem Format und dem Inhalt entsprechen, die im folgenden Beispiel gezeigt werden.

CloudFormation Manifest-Dateiformat:

Mit CloudFormation listen Sie eine einzelne Datei auf.

infrastructure: templates: - file: "cloudformation.yaml" rendering_engine: jinja template_language: cloudformation

Terraform-Manifest-Dateiformat:

Mit Terraform können Sie explizit eine einzelne Datei auflisten oder den Platzhalter verwenden, * um jede der Dateien in einem Verzeichnis aufzulisten.

Anmerkung

Der Platzhalter umfasst nur Dateien, deren Namen mit enden. .tf Andere Dateien werden ignoriert.

infrastructure: templates: - file: "*" rendering_engine: hcl template_language: terraform

CodeBuildbasiertes Provisioning-Manifest-Dateiformat:

Bei der CodeBuild basierten Bereitstellung geben Sie Shell-Befehle für die Bereitstellung und Deprovisionierung an.

Anmerkung

Zusätzlich zum Manifest sollte Ihr Paket alle Dateien enthalten, von denen Ihre Befehle abhängen.

Das folgende Beispielmanifest verwendet die CodeBuild basierte Bereitstellung, um Ressourcen mithilfe von () bereitzustellen (bereitzustellen) und zu deprovisionieren (zu zerstören). AWS Cloud Development Kit (AWS CDK) AWS CDK Das Vorlagenpaket sollte auch den CDK-Code enthalten.

Während der Bereitstellung erstellt AWS Proton eine Eingabedatei mit Werten für Eingabeparameter, die Sie im Schema der Vorlage mit dem Namen definiert haben. proton-input.json

infrastructure: templates: - rendering_engine: codebuild settings: image: aws/codebuild/amazonlinux2-x86_64-standard:4.0 runtimes: nodejs: 16 provision: - npm install - npm run build - npm run cdk bootstrap - npm run cdk deploy -- --require-approval never --outputs-file proton-outputs.json - jq 'to_entries | map_values(.value) | add | to_entries | map({key:.key, valueString:.value})' < proton-outputs.json > outputs.json - aws proton notify-resource-deployment-status-change --resource-arn $RESOURCE_ARN --status IN_PROGRESS --outputs file://./outputs.json deprovision: - npm install - npm run build - npm run cdk destroy project_properties: VpcConfig: VpcId: "{{ environment.inputs.codebuild_vpc_id }}" Subnets: "{{ environment.inputs.codebuild_subnets }}" SecurityGroupIds: "{{ environment.inputs.codebuild_security_groups }}"

Nachdem Sie die Verzeichnisse und Manifestdateien für Ihre Umgebung oder Ihr Service-Template-Paket eingerichtet haben, komprimieren Sie die Verzeichnisse in einen Tar-Ball und laden sie in einen Amazon Simple Storage Service (Amazon S3) -Bucket hoch, wo Sie sie abrufen AWS Proton können, oder in ein Git-Repository zur Vorlagensynchronisierung.

Wenn Sie eine Nebenversion einer Umgebung oder einer Service-Vorlage erstellen, bei der Sie sich registriert haben AWS Proton, geben Sie den Pfad zu Ihrem Umgebungs- oder Service-Vorlagen-Bundle-Tarball an, der sich in Ihrem S3-Bucket befindet. AWS Proton speichert es zusammen mit der neuen Nebenversion der Vorlage. Sie können die neue Nebenversion der Vorlage auswählen, um Umgebungen oder Dienste zu erstellen oder zu aktualisieren AWS Proton.

Zusammenfassung des Pakets mit den Umgebungsvorlagen

Es gibt zwei Arten von Umgebungsvorlagenpaketen, für AWS Proton die Sie erstellen.

  • Um ein Umgebungsvorlagenpaket für eine Standardumgebungsvorlage zu erstellen, organisieren Sie das Schema, die Infrastructure-as-Code-Dateien (IaC) und die Manifestdatei in Verzeichnissen, wie in der folgenden Verzeichnisstruktur des Umgebungsvorlagen-Bundles dargestellt.

  • Um ein Umgebungsvorlagenpaket für eine vom Kunden verwaltete Umgebungsvorlage zu erstellen, geben Sie nur die Schemadatei und das Verzeichnis an. Schließen Sie das Infrastrukturverzeichnis und die Dateien nicht ein. AWS Proton gibt einen Fehler aus, wenn das Infrastrukturverzeichnis und die Dateien enthalten sind.

Weitere Informationen finden Sie unter Vorlagen registrieren und veröffentlichen.

CloudFormation Verzeichnisstruktur des Umgebungsvorlagenpakets:

/schema schema.yaml /infrastructure manifest.yaml cloudformation.yaml

Verzeichnisstruktur des Paketpakets für Terraform-Umgebungsvorlagen:

/schema schema.yaml /infrastructure manifest.yaml environment.tf

Zusammenfassung des Servicevorlagenpakets

Um ein Servicevorlagenpaket zu erstellen, müssen Sie das Schema, die Infrastructure-as-Code-Dateien (IaC) und die Manifestdateien in Verzeichnissen organisieren, wie im Beispiel für die Verzeichnisstruktur des Service Template-Bundles gezeigt.

Wenn Sie keine Service-Pipeline in Ihr Vorlagenpaket aufnehmen, schließen Sie das Pipeline-Verzeichnis und die Pipeline-Dateien nicht ein und legen Sie das fest, "pipelineProvisioning": "CUSTOMER_MANAGED" wenn Sie die Servicevorlage erstellen, die diesem Vorlagenpaket zugeordnet werden soll.

Anmerkung

Sie können keine Änderungen vornehmen, pipelineProvisioning nachdem die Servicevorlage erstellt wurde.

Weitere Informationen finden Sie unter Vorlagen registrieren und veröffentlichen.

CloudFormation Verzeichnisstruktur des Dienstvorlagenpakets:

/schema schema.yaml /instance_infrastructure manifest.yaml cloudformation.yaml /pipeline_infrastructure manifest.yaml cloudformation.yaml

Verzeichnisstruktur des Terraform-Dienstvorlagenpakets:

/schema schema.yaml /instance_infrastructure manifest.yaml instance.tf /pipeline_infrastructure manifest.yaml pipeline.tf