Anfrage für benutzerdefinierte CloudFormation-Ressourcen erstellen - AWS CloudFormation

Anfrage für benutzerdefinierte CloudFormation-Ressourcen erstellen

Wenn der Vorlagenentwickler einen Stack erstellt, der eine benutzerdefinierte Ressource enthält, sendet CloudFormation eine Anfrage an den Anbieter der benutzerdefinierten Ressource mit dem Wert RequestType auf Create. Diese Anfrage erfolgt speziell bei der Erstellung der benutzerdefinierten Ressource.

Eine Einführung in benutzerdefinierte Ressourcen und ihre Funktionsweise finden Sie unter Erstellen Sie eine benutzerdefinierte Bereitstellungslogik mit benutzerdefinierten Ressourcen.

Anforderung

Erstellenanforderungen enthalten die folgenden Felder:

RequestType

Create.

RequestId

Eine eindeutige ID für die Anforderung.

ResponseURL

Die Antwort-URL identifiziert einen vorsignierten S3-Bucket, der Antworten vom benutzerdefinierten Ressourcenanbieter auf CloudFormation erhält.

ResourceType

Der vom Entwickler der Vorlage gewählte Ressourcentyp der benutzerdefinierten Ressource in der CloudFormation-Vorlage. Namen für benutzerdefinierte Ressourcentypen dürfen bis zu 60 Zeichen lang sein und sowohl alphanumerische Zeichen als auch folgende Zeichen enthalten: _@-.

LogicalResourceId

Der vom Entwickler der Vorlagen gewählte Name (logische ID) der benutzerdefinierten Ressource in der CloudFormation-Vorlage.

StackId

Der Amazon-Ressourcenname (ARN), der den Stack identifiziert, der die benutzerdefinierte Ressource enthält.

ResourceProperties

Dieses Feld enthält den Inhalt des Properties-Objekts, das vom Vorlagen-Entwickler gesendet wurde. Sein Inhalt wird durch benutzerdefinierte Ressourcenanbieter definiert.

Beispiel

{ "RequestType" : "Create", "RequestId" : "unique id for this create request", "ResponseURL" : "pre-signed-url-for-create-response", "ResourceType" : "Custom::MyCustomResourceType", "LogicalResourceId" : "name of resource in template", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10", "ResourceProperties" : { "key1" : "string", "key2" : [ "list" ], "key3" : { "key4" : "map" } } }

Antworten

Herzlichen Glückwunsch

Wenn die Erstellungs-Anforderung erfolgreich ist, muss eine Antwort an den Amazon-S3-Bucket gesendet werden, die die folgenden Felder enthält:

Status

Muss sein. SUCCESS.

RequestId

Eine eindeutige ID für die Anforderung. Dieser Rückgabewert sollte wörtlich auf Basis der Anforderung kopiert werden.

LogicalResourceId

Der vom Entwickler der Vorlagen gewählte Name (logische ID) der benutzerdefinierten Ressource in der CloudFormation-Vorlage. Dieser Rückgabewert sollte wörtlich auf Basis der Anforderung kopiert werden.

StackId

Der Amazon-Ressourcenname (ARN), der den Stack identifiziert, der die benutzerdefinierte Ressource enthält. Dieser Rückgabewert sollte wörtlich auf Basis der Anforderung kopiert werden.

PhysicalResourceId

Dieser Wert sollte eine eindeutige Kennung für den Anbieter der benutzerdefinierten Ressource sein und kann bis zu 1 KB groß sein. Der Wert muss eine nicht leere Zeichenfolge sein und muss für alle Antworten für dieselbe Ressource identisch sein.

Der für eine PhysicalResourceId zurückgegebene Wert kann benutzerdefinierte Vorgänge zur Ressourcenaktualisierung ändern. Wenn der zurückgegebene Wert derselbe ist, wird es als normale Aktualisierung betrachtet. Wenn der zurückgegebene Wert nicht derselbe ist, erkennt CloudFormation die Aktualisierung als Ersatz und sendet eine Anforderung zum Löschen an die alte Ressource. Weitere Informationen finden Sie unter AWS::CloudFormation::CustomResource.

NoEcho

Optional. Gibt an, ob die Ausgabe der benutzerdefinierten Ressource maskiert wird, wenn sie mithilfe der Fn::GetAtt-Funktion abgerufen wird. Wenn diese Option auf true gesetzt ist. werden alle zurückgegebenen Werte mit Sternchen (*****) maskiert außer denen, die im Metadata Abschnitt der Vorlage gespeichert sind. CloudFormation transformiert, ändert oder bearbeitet keine Informationen im Metadata Abschnitt. Der Standardwert ist false.

Weitere Informationen über die Verwendung von NoEcho zur Maskierung sensibler Informationen finden Sie in der bewährten Methode Keine Anmeldeinformationen in Vorlagen einbetten .

Data

Optional. Die vom benutzerdefinierten Ressourcenanbieter definierten Namen-Wert-Paare, die mit der Antwort gesendet werden. Sie können auf die hier namentlich angegebenen Werte in der Vorlage mit Fn::GetAtt zugreifen.

Wichtig

Wenn die Namen-Wert-Paare vertrauliche Informationen enthalten, sollten Sie das NoEcho-Feld benutzen, um die Ausgabe der benutzerdefinierten Ressource zu maskieren. Andernfalls sind die Werte durch APIs sichtbar, die Eigenschaftswerte (wie DescribeStackEvents) enthalten.

Beispiel

{ "Status" : "SUCCESS", "RequestId" : "unique id for this create request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10 (copied from request)", "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data for key 1", "keyThatCanBeUsedInGetAtt2" : "data for key 2" } }

Fehlgeschlagen

Wenn die Erstellenanfrage fehlschlägt, muss eine Antwort an den S3-Bucket gesendet werden, die die folgenden Felder enthält:

Status

Muss sein. FAILED.

Reason

Beschreibt den Grund für eine Reaktion auf einen Fehler.

RequestId

Eine eindeutige ID für die Anforderung. Dieser Rückgabewert sollte wörtlich auf Basis der Anforderung kopiert werden.

LogicalResourceId

Der vom Entwickler der Vorlagen gewählte Name (logische ID) der benutzerdefinierten Ressource in der CloudFormation-Vorlage. Dieser Rückgabewert sollte wörtlich auf Basis der Anforderung kopiert werden.

StackId

Der Amazon-Ressourcenname (ARN), der den Stack identifiziert, der die benutzerdefinierte Ressource enthält. Dieser Rückgabewert sollte wörtlich auf Basis der Anforderung kopiert werden.

PhysicalResourceId

Dieser Wert sollte eine eindeutige Kennung für den Anbieter der benutzerdefinierten Ressource sein und kann bis zu 1 KB groß sein. Der Wert muss eine nicht leere Zeichenfolge sein und muss für alle Antworten für dieselbe Ressource identisch sein.

Der für eine PhysicalResourceId zurückgegebene Wert kann benutzerdefinierte Vorgänge zur Ressourcenaktualisierung ändern. Wenn der zurückgegebene Wert derselbe ist, wird es als normale Aktualisierung betrachtet. Wenn der zurückgegebene Wert nicht derselbe ist, erkennt CloudFormation die Aktualisierung als Ersatz und sendet eine Anforderung zum Löschen an die alte Ressource. Weitere Informationen finden Sie unter AWS::CloudFormation::CustomResource.

Beispiel

{ "Status" : "FAILED", "Reason" : "Required failure reason string", "RequestId" : "unique id for this create request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10 (copied from request)", "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor" }