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.
Angabe von Eingabedaten für die Verwendung in Vertragstests
Standardmäßig CloudFormation führt der Vertragstests mithilfe von Eingabeeigenschaften durch, die aus den Mustern generiert wurden, die Sie in Ihrem Hook-Schema definieren. Die meisten Hooks sind jedoch so komplex, dass die Eingabeeigenschaften für die vorherige Erstellung oder Aktualisierung von Provisioning-Stacks ein Verständnis der bereitgestellten Ressource erfordern. Um dieses Problem zu lösen, können Sie die Eingabe angeben, die das Unternehmen bei der Durchführung seiner CloudFormation Vertragstests verwendet.
CloudFormation bietet Ihnen zwei Möglichkeiten, die Eingabedaten anzugeben, die bei der Durchführung von Vertragstests verwendet werden sollen:
-
Überschreibt die Datei
Die Verwendung einer
overridesDatei bietet eine einfache Möglichkeit, Eingabedaten für bestimmte Eigenschaften anzugebenpreCreate, die CloudFormation währendpreUpdateund beipreDeleteBetriebstests verwendet werden können. -
Eingabedateien
Sie können auch mehrere
inputDateien verwenden, um Eingabedaten für den Vertragstest anzugeben, wenn:-
Sie möchten oder müssen unterschiedliche Eingabedaten für Erstellungs-, Aktualisierungs- und Löschvorgänge oder ungültige Daten für Tests angeben.
-
Sie möchten mehrere verschiedene Eingabedatensätze angeben.
-
Eingabedaten mithilfe einer Override-Datei angeben
Das Folgende ist ein Beispiel für die Eingabedaten von Amazon S3 Hook unter Verwendung der overrides Datei.
{ "CREATE_PRE_PROVISION": { "AWS::S3::Bucket": { "resourceProperties": { "/BucketName": "encryptedbucket-us-west-2-contractor", "/BucketEncryption/ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "aws:kms" } } ] } }, "AWS::SQS::Queue": { "resourceProperties": { "/QueueName": "MyQueueContract", "/KmsMasterKeyId": "hellocontract" } } }, "UPDATE_PRE_PROVISION": { "AWS::S3::Bucket": { "resourceProperties": { "/BucketName": "encryptedbucket-us-west-2-contractor", "/BucketEncryption/ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "aws:kms" } } ] }, "previousResourceProperties": { "/BucketName": "encryptedbucket-us-west-2-contractor", "/BucketEncryption/ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "aws:kms" } } ] } } }, "INVALID_UPDATE_PRE_PROVISION": { "AWS::S3::Bucket": { "resourceProperties": { "/BucketName": "encryptedbucket-us-west-2-contractor", "/BucketEncryption/ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "AES256" } } ] }, "previousResourceProperties": { "/BucketName": "encryptedbucket-us-west-2-contractor", "/BucketEncryption/ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "aws:kms" } } ] } } }, "INVALID": { "AWS::SQS::Queue": { "resourceProperties": { "/QueueName": "MyQueueContract", "/KmsMasterKeyId": "KMS-KEY-ARN" } } } }
Angeben von Eingabedaten mithilfe von Eingabedateien
Verwenden Sie input Dateien, um verschiedene Arten von Eingabedaten anzugeben, die verwendet werden CloudFormation sollen: preCreate Eingabe, preUpdate Eingabe und ungültige Eingabe. Jede Art von Daten wird in einer separaten Datei angegeben. Sie können auch mehrere Sätze von Eingabedaten für Vertragstests angeben.
Um input Dateien anzugeben, die CloudFormation bei Vertragstests verwendet werden sollen, fügen Sie dem Stammverzeichnis Ihres Hooks-Projekts einen inputs Ordner hinzu. Fügen Sie dann Ihre Eingabedateien hinzu.
Geben Sie an, welche Art von Eingabedaten eine Datei enthält, indem Sie die folgenden Namenskonventionen verwenden, wobei eine Ganzzahl nsteht:
-
inputs_: Verwenden Sie Dateien mitn_pre_create.jsonpreCreateHandlern, um Eingaben für die Erstellung der Ressource anzugeben. -
inputs_: Verwenden Sie Dateien mitn_pre_update.jsonpreUpdateHandlern, um Eingaben für die Aktualisierung der Ressource anzugeben. -
inputs_: Verwenden Sie Dateien mitn_pre_delete.jsonpreDeleteHandlern, um Eingaben für das Löschen der Ressource anzugeben. -
inputs_: Zur Angabe ungültiger Eingaben zum Testen.n_invalid.json
Um mehrere Sätze von Eingabedaten für Vertragstests anzugeben, erhöhen Sie die Ganzzahl in den Dateinamen, um Ihre Eingabedatensätze zu ordnen. Ihr erster Satz von Eingabedateien sollte beispielsweise den Namen inputs_1_pre_create.jsoninputs_1_pre_update.json, und inputs_1_pre_invalid.json haben. Ihr nächster Satz würde den Namen inputs_2_pre_create.json inputs_2_pre_update.jsoninputs_2_pre_invalid.json, und usw. tragen.
Jede Eingabedatei ist eine JSON-Datei, die nur die Ressourceneigenschaften enthält, die beim Testen verwendet werden sollen.
Das Folgende ist ein Beispielverzeichnis inputs für die Amazon S3 Angabe von Eingabedaten mithilfe von Eingabedateien.
inputs_1_pre_create.json-
Das Folgende ist ein Beispiel für den
inputs_1_pre_create.jsonVertragstest.{ "AWS::S3::Bucket": { "resourceProperties": { "AccessControl": "BucketOwnerFullControl", "AnalyticsConfigurations": [], "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "aws:kms" } } ] }, "BucketName": "encryptedbucket-us-west-2" } }, "AWS::SQS::Queue": { "resourceProperties": { "QueueName": "MyQueue", "KmsMasterKeyId": "KMS-KEY-ARN" } } } inputs_1_pre_update.json-
Das Folgende ist ein Beispiel für den
inputs_1_pre_update.jsonVertragstest.{ "AWS::S3::Bucket": { "resourceProperties": { "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "aws:kms" } } ] }, "BucketName": "encryptedbucket-us-west-2" }, "previousResourceProperties": { "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "aws:kms" } } ] }, "BucketName": "encryptedbucket-us-west-2" } } } inputs_1_invalid.json-
Das Folgende ist ein Beispiel für den
inputs_1_invalid.jsonVertragstest.{ "AWS::S3::Bucket": { "resourceProperties": { "AccessControl": "BucketOwnerFullControl", "AnalyticsConfigurations": [], "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] }, "BucketName": "encryptedbucket-us-west-2" } }, "AWS::SQS::Queue": { "resourceProperties": { "NotValid": "The property of this resource is not valid." } } } inputs_1_invalid_pre_update.json-
Das Folgende ist ein Beispiel für den
inputs_1_invalid_pre_update.jsonVertragstest.{ "AWS::S3::Bucket": { "resourceProperties": { "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "AES256" } } ] }, "BucketName": "encryptedbucket-us-west-2" }, "previousResourceProperties": { "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "BucketKeyEnabled": true, "ServerSideEncryptionByDefault": { "KMSMasterKeyID": "KMS-KEY-ARN", "SSEAlgorithm": "aws:kms" } } ] }, "BucketName": "encryptedbucket-us-west-2" } } }