Vorlagendateien für einpacken 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.

Vorlagendateien für einpacken AWS Proton

Nachdem Sie Ihre Umgebungs- und Serviceinfrastruktur als Code (IaC)-Dateien und ihre jeweiligen 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 des 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 wird immer eine einzelne IaC-Vorlagendatei angegeben, sowohl für als auch für CloudFormation Terraform. Weitere Informationen zu Komponenten finden Sie unter AWS Proton-Komponenten.

Die Manifestdatei muss dem im folgenden Beispiel gezeigten Format und Inhalt entsprechen.

CloudFormation Manifestdateiformat:

Mit listen CloudFormationSie eine einzelne Datei auf.

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

Terraform-Manifestdateiformat:

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 enthält nur Dateien, deren Namen mit enden.tf. Andere Dateien werden ignoriert.

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

CodeBuild-basiertes Bereitstellungsmanifestdateiformat:

Bei der CodeBuild-basierten Bereitstellung geben Sie die Bereitstellung und Aufhebung der Bereitstellung von Shell-Befehlen 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 der () bereitzustellen AWS Cloud Development Kit (AWS CDK) (bereitzustellen) und bereitzustellen (zerstörenAWS 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 habenproton-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 Servicevorlagenpaket eingerichtet haben, gzippen Sie die Verzeichnisse in einen Tarbium und laden sie in einen Amazon Simple Storage Service (Amazon S3)-Bucket hoch, in dem sie abrufen AWS Proton kann, oder in ein Git-Repository für die Vorlagensynchronisierung .

Wenn Sie eine Nebenversion einer Umgebung oder eine Servicevorlage erstellen, die Sie bei registriert haben AWS Proton, geben Sie den Pfad zu Ihrer Umgebung oder Ihrem Servicevorlagenpaket an, die sich in Ihrem S3-Bucket befindet. AWS Proton speichert sie mit der neuen Unterversion der Vorlage. Sie können die neue Unterversion der Vorlage auswählen, um Umgebungen oder Services mit zu erstellen oder zu aktualisieren AWS Proton.

Paketumbruch für Umgebungsvorlagen

Es gibt zwei Arten von Umgebungsvorlagen-Bundles, die Sie für erstellen AWS Proton.

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

  • 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 files. AWS Proton throws keinen Fehler ein, wenn das Infrastrukturverzeichnis und die Dateien enthalten sind.

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

CloudFormation Verzeichnisstruktur des Umgebungsvorlagen-Bundles:

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

Verzeichnisstruktur des Terraform-Umgebungsvorlagen-Bundles:

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

Paketumbruch der Servicevorlage

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

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

Anmerkung

Sie können nicht mehr ändern, pipelineProvisioning nachdem die Servicevorlage erstellt wurde.

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

CloudFormation Verzeichnisstruktur des -Servicevorlagenpakets:

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

Verzeichnisstruktur des Terraform-Servicevorlagenpakets:

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