Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS endet der Support für AWS Proton. Nach dem 7. Oktober 2026 werden Sie nicht mehr auf die AWS Proton Konsole oder AWS Proton die Ressourcen zugreifen können. Ihre bereitgestellte Infrastruktur bleibt intakt. Weitere Informationen finden Sie im AWS Proton Service Deprecation and Migration Guide.
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.
Komponente CloudFormation Beispiel
Hier ist ein vollständiges Beispiel für eine AWS Proton direkt definierte Komponente und wie Sie sie in einem AWS Proton Dienst verwenden können. Die Komponente stellt einen Amazon Simple Storage Service (Amazon S3) -Bucket und die zugehörige Zugriffsrichtlinie bereit. Die Service-Instanz kann auf diesen Bucket verweisen und ihn verwenden. Der Bucket-Name basiert auf den Namen der Umgebung, des Dienstes, der Dienstinstanz und der Komponente, was bedeutet, dass der Bucket mit einer bestimmten Instanz der Komponentenvorlage verknüpft ist, die eine bestimmte Dienstinstanz erweitert. Entwickler können auf der Grundlage dieser Komponentenvorlage mehrere Komponenten erstellen, um Amazon S3-Buckets für unterschiedliche Service-Instances und funktionale Anforderungen bereitzustellen.
Das Beispiel behandelt das Erstellen der verschiedenen erforderlichen CloudFormation Infrastructure-as-Code-Dateien (IaC) und das Erstellen einer erforderlichen Rolle AWS Identity and Access Management (IAM). Im Beispiel werden die Schritte nach den Rollen der Besitzer gruppiert.
Schritte für Administratoren
Um Entwicklern die Verwendung von Komponenten mit einem Dienst zu ermöglichen
-
Erstellen Sie eine AWS Identity and Access Management (IAM-) Rolle, die die Ressourcen begrenzt, die direkt definierte Komponenten, die in Ihrer Umgebung ausgeführt werden, bereitstellen können. AWS Proton übernimmt diese Rolle später, um direkt definierte Komponenten in der Umgebung bereitzustellen.
Verwenden Sie für dieses Beispiel die folgende Richtlinie:
Beispiel direkt definierte Komponentenrolle
-
Geben Sie die Rolle an, die Sie im vorherigen Schritt erstellt haben, wenn Sie die Umgebung erstellen oder aktualisieren. Geben Sie in der AWS Proton Konsole auf der Seite „Umgebung konfigurieren“ eine Komponentenrolle an. Wenn Sie die AWS Proton API oder verwenden AWS CLI, geben Sie die
componentRoleArnder CreateEnvironment oder UpdateEnvironment API-Aktionen an. -
Erstellen Sie eine Dienstvorlage, die auf eine direkt definierte Komponente verweist, die an die Dienstinstanz angehängt ist.
Das Beispiel zeigt, wie eine robuste Dienstvorlage geschrieben wird, die nicht kaputt geht, wenn eine Komponente nicht an die Dienstinstanz angehängt ist.
Beispiel CloudFormation Service-IAC-Datei, die eine Komponente verwendet
# service/instance_infrastructure/cloudformation.yaml Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: TaskRoleArn: !Ref TaskRole ContainerDefinitions: - Name: '{{service_instance.name}}' # ... {% if service_instance.components.default.outputs | length > 0 %} Environment: {{ service_instance.components.default.outputs | proton_cfn_ecs_task_definition_formatted_env_vars }} {% endif %} # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy {{ service_instance.components.default.outputs | proton_cfn_iam_policy_arns }} # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ... -
Erstellen Sie eine neue Nebenversion der Servicevorlage, die direkt definierte Komponenten als unterstützt deklariert.
-
Vorlagenpaket in Amazon S3 — Wenn Sie in der AWS Proton Konsole eine Service-Vorlagenversion erstellen, wählen Sie für Unterstützte Komponentenquellen die Option Direkt definiert aus. Wenn Sie die AWS Proton API oder verwenden AWS CLI, geben Sie dies
DIRECTLY_DEFINEDimsupportedComponentSourcesParameter der CreateServiceTemplateVersion oder UpdateServiceTemplateVersion API-Aktionen an. -
Vorlagensynchronisierung — Übernehmen Sie eine Änderung an Ihrem Service-Template-Bundle-Repository, das Sie
DIRECTLY_DEFINEDals Element vonsupported_component_sources:in der.template-registration.yamlDatei im Hauptversionsverzeichnis angeben. Weitere Informationen über diese Datei finden Sie unter Servicevorlagen synchronisieren.
-
-
Veröffentlichen Sie die neue Nebenversion der Servicevorlage. Weitere Informationen finden Sie unter Vorlagen registrieren und veröffentlichen.
-
Stellen Sie sicher, dass Entwickler, die diese Service-Vorlage verwenden, die IAM-Rolle haben.
proton:CreateComponent
Schritte für Entwickler
Um eine direkt definierte Komponente mit einer Dienstinstanz zu verwenden
-
Erstellen Sie einen Dienst, der die Dienstvorlagenversion verwendet, die der Administrator mit Komponentenunterstützung erstellt hat. Aktualisieren Sie alternativ eine Ihrer vorhandenen Service-Instances, um die neueste Vorlagenversion zu verwenden.
-
Schreiben Sie eine IaC-Vorlagendatei für Komponenten, die einen Amazon S3-Bucket und eine zugehörige Zugriffsrichtlinie bereitstellt und diese Ressourcen als Ausgaben verfügbar macht.
Beispiel Komponenten-IAC-Datei CloudFormation
# cloudformation.yaml # A component that defines an S3 bucket and a policy for accessing the bucket. Resources: S3Bucket: Type: AWS::S3::Bucket Properties: BucketName: '{{environment.name}}-{{service.name}}-{{service_instance.name}}-{{component.name}}' S3BucketAccessPolicy: Type: AWS::IAM::ManagedPolicy Properties: PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: - 's3:Get*' - 's3:List*' - 's3:PutObject' Resource: !GetAtt S3Bucket.Arn Outputs: BucketName: Description: "Bucket to access" Value: !GetAtt S3Bucket.Arn BucketAccessPolicyArn: Value: !Ref S3BucketAccessPolicy -
Wenn Sie die AWS Proton API oder verwenden AWS CLI, schreiben Sie eine Manifestdatei für die Komponente.
Beispiel direkt definiertes Komponentenmanifest
infrastructure: templates: - file: "cloudformation.yaml" rendering_engine: jinja template_language: cloudformation -
Erstellen Sie eine direkt definierte Komponente. AWS Proton nimmt die Komponentenrolle an, die der Administrator für die Bereitstellung der Komponente definiert hat.
Wählen Sie in der AWS Proton Konsole auf der Seite
Komponenten die Option Komponente erstellen aus. Geben Sie für die Komponenteneinstellungen einen Komponentennamen und eine optionale Komponentenbeschreibung ein. Wählen Sie für Komponentenanhang die Option Die Komponente an eine Dienstinstanz anhängen aus. Wählen Sie Ihre Umgebung, Ihren Dienst und Ihre Dienstinstanz aus. Wählen Sie CloudFormation als Komponentenquelle die Option und dann die IAC-Komponenten-Datei aus. Anmerkung
Sie müssen kein Manifest bereitstellen — die Konsole erstellt eines für Sie.
Wenn Sie die AWS Proton API oder verwenden AWS CLI, verwenden Sie die CreateComponent API-Aktion. Legen Sie eine Komponente
nameund optional festdescription. Stellen SieenvironmentNameserviceName, und einserviceInstanceName. SetzetemplateSourceundmanifestauf die Pfade der Dateien, die du erstellt hast.Anmerkung
Die Angabe eines Umgebungsnamens ist optional, wenn Sie Dienst- und Dienstinstanznamen angeben. Die Kombination dieser beiden ist in Ihrem AWS Konto einzigartig und AWS Proton kann die Umgebung von der Dienstinstanz aus bestimmen.
-
Aktualisieren Sie Ihre Dienstinstanz, um sie erneut bereitzustellen. AWS Proton verwendet Ausgaben Ihrer Komponente in der gerenderten Service-Instance-Vorlage, damit Ihre Anwendung den Amazon S3-Bucket verwenden kann, den die Komponente bereitgestellt hat.