Erstellen - AWS CloudFormation

Erstellen

Anforderungen mit RequestType als Create werden an den Anbieter einer benutzerdefinierten Ressource gesendet, wenn der template developer einen Stack erstellt, der eine benutzerdefinierte Ressource enthält.

Anfrage

Erstellenanforderungen enthalten die folgenden Felder:

RequestType

Create aus.

RequestId

Eine eindeutige ID für die Anforderung

ResponseURL

Die Antwort-URL gibt einen vorsignierten S3-Bucket an, der Antworten vom custom resource provider an AWS CloudFormation empfängt.

ResourceType

Der vom Developer der Vorlagen gewählte Ressourcentyp der benutzerdefinierten Ressource in der AWS 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 template developer gewählte Name (logische ID) der benutzerdefinierten Ressource in der AWS CloudFormation-Vorlage

StackId

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

ResourceProperties

Dieses Feld enthält die Inhalte des Properties-Objekts, das vom template developer gesendet wurde. Die Inhalte werden vom custom resource provider 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-east-2:namespace:stack/stack-name/guid",
   "ResourceProperties" : {
      "key1" : "string",
      "key2" : [ "list" ],
      "key3" : { "key4" : "map" }
   }
}

Antworten

Herzlichen Glückwunsch

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

Status

Der Wert muss SUCCESS sein.

RequestId

Eine eindeutige ID für die Anforderung Dieser Antwortwert sollte unverändert aus der Anforderung kopiert werden.

LogicalResourceId

Der vom template developer gewählte Name (logische ID) der benutzerdefinierten Ressource in der AWS CloudFormation-Vorlage Dieser Antwortwert sollte unverändert aus der Anforderung kopiert werden.

StackId

Der Amazon-Ressourcenname (ARN), der den Stack identifiziert, der die benutzerdefinierte Ressource enthält Dieser Antwortwert sollte unverändert aus der Anforderung kopiert werden.

PhysicalResourceId

Dieser Wert sollte ein eindeutiger Bezeichner für den Anbieter der benutzerdefinierten Ressource sein und kann bis zu 1 KB groß sein. Der Wert muss eine Zeichenfolge, die nicht leer ist, und für alle Antworten für dieselbe Ressource identisch sein.

NoEcho

Optional. Gibt an, ob das Ergebnis der benutzerdefinierten Ressource maskiert wird, wenn es mithilfe der Fn::GetAtt-Funktion abgerufen wird. Wenn diese Option auf true festgelegt ist, werden alle zurückgegebenen Werte mit Sternchen (*****) maskiert. Dies gilt nicht für Werte im Metadata-Abschnitt der Vorlage. AWS CloudFormation transformiert, ändert und überarbeitet keine Informationen, die Sie im Metadata-Abschnitt einfügen. Der Standardwert ist false.

Weitere Informationen zum Maskieren vertraulicher Daten mit NoEcho enthält die bewährte Methode Keine Anmeldeinformationen in Ihre Vorlagen einbetten.

Daten

Optional. Die vom custom resource provider definierten Name-Wert-Paare, die mit der Antwort zu senden sind. Sie können auf die hier bereitgestellten Werte über den Namen in der Vorlage mit Fn::GetAtt zugreifen.

Wichtig

Falls die Namen-Wert-Paare vertrauliche Informationen enthalten, verwenden Sie das Feld NoEcho, um die Ausgabe der benutzerdefinierten Ressource zu maskieren. Andernfalls sind die Werte über APIs sichtbar, die Eigenschaftswerte anzeigen (wie etwa DescribeStackEvents).

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-east-2:namespace:stack/stack-name/guid (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

Der Wert muss FAILED sein.

Grund

Beschreibt den Grund für eine Fehlerantwort.

RequestId

Eine eindeutige ID für die Anforderung Dieser Antwortwert sollte unverändert aus der Anforderung kopiert werden.

LogicalResourceId

Der vom template developer gewählte Name (logische ID) der benutzerdefinierten Ressource in der AWS CloudFormation-Vorlage Dieser Antwortwert sollte unverändert aus der Anforderung kopiert werden.

StackId

Der Amazon-Ressourcenname (ARN), der den Stack identifiziert, der die benutzerdefinierte Ressource enthält Dieser Antwortwert sollte unverändert aus der Anforderung kopiert werden.

PhysicalResourceId

Dieser Wert sollte ein eindeutiger Bezeichner für den Anbieter der benutzerdefinierten Ressource sein und kann bis zu 1 KB groß sein. Der Wert muss eine Zeichenfolge, die nicht leer ist, und für alle Antworten für dieselbe Ressource identisch sein.

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-east-2:namespace:stack/stack-name/guid (copied from request)",
   "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor"
}