Modulressourcen in CloudFormation-Vorlagen referenzieren - AWS CloudFormation

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.

Modulressourcen in CloudFormation-Vorlagen referenzieren

In CloudFormation-Vorlagen müssen Sie oft Eigenschaften für eine Ressource festlegen, die auf dem Namen oder der Eigenschaft einer anderen Ressource basieren. Weitere Informationen finden Sie unter Ressourcen referenzieren.

Um eine in einem Modul enthaltene Ressource in Ihrer CloudFormation-Vorlage zu referenzieren, müssen Sie zwei logische Namen kombinieren:

  • Der logische Name, den Sie dem Modul selbst gegeben haben, als Sie es in Ihre Vorlage aufgenommen haben.

  • Der logische Name der spezifischen Ressource innerhalb dieses Moduls.

Sie können diese beiden logischen Namen mit oder ohne einen Punkt (.) zwischen ihnen kombinieren. Wenn der logische Name des Moduls beispielsweise MyModule und der logische Name der Ressource MyBucketlautet, können Sie sich auf diese Ressource entweder als MyModule.MyBucket oder MyModuleMyBucketbeziehen.

Um die logischen Namen der Ressourcen innerhalb eines Moduls zu finden, können Sie das Schema des Moduls konsultieren, das in der CloudFormation-Registrierung verfügbar ist, oder die Operation DescribeType verwenden. Das Schema listet alle Ressourcen und ihre logischen Namen auf, die Teil des Moduls sind.

Sobald Sie den vollständigen logischen Namen haben, können Sie CloudFormation-Funktionen wie GetAtt und Ref verwenden, um auf Eigenschaftswerte von Modulressourcen zuzugreifen.

Sie haben zum Beispiel ein Modul My::S3::SampleBucket::MODULE, das eine Ressource AWS::S3::Bucket mit dem logischen Namen S3Bucketenthält. Um mit der Funktion Ref auf den Namen dieses Buckets zu verweisen, kombinieren Sie den Namen des Moduls in Ihrer Vorlage (MyBucket) mit dem logischen Namen der Ressource im Modul (S3Bucket). Der vollständige logische Name lautet entweder MyBucket.S3Bucket oder MyBucketS3Bucket.

Beispielvorlage

Die folgende Beispielvorlage erstellt einen S3-Bucket unter Verwendung des Moduls My::S3::SampleBucket::MODULE . Außerdem wird eine Amazon SQS-Warteschlange erstellt und ihr Name mit dem Bucket-Namen aus dem Modul identisch gemacht. Außerdem gibt die Vorlage den Amazon Resource Name (ARN) des erstellten S3-Buckets aus.

# Template that uses My::S3::SampleBucket::MODULE Parameters: BucketName: Description: Name for your sample bucket Type: String Resources: MyBucket: Type: My::S3::SampleBucket::MODULE Properties: BucketName: !Ref BucketName exampleQueue: Type: AWS::SQS::Queue Properties: QueueName: !Ref MyBucket.S3Bucket Outputs: BucketArn: Value: !GetAtt MyBucket.S3Bucket.Arn