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.
Importieren vorhandener Ressourcen in einen Stack
In diesem Thema erfahren Sie, wie Sie vorhandene importieren AWS Ressourcen in einen vorhandenen Stack, indem Sie sie in einer Vorlage beschreiben. Informationen dazu, wie Sie stattdessen nach vorhandenen Ressourcen suchen und automatisch eine Vorlage generieren können, mit der Sie vorhandene Ressourcen in ein neues Konto importieren CloudFormation oder Ressourcen in einem neuen Konto replizieren können, finden Sie unterGenerieren Sie Vorlagen aus vorhandenen Ressourcen mit dem IaC-Generator.
Voraussetzungen
Sie benötigen Folgendes, um starten zu können:
-
Eine Vorlage, die den gesamten Stack beschreibt, einschließlich der Ressourcen, die bereits Teil des Stacks sind, und der zu importierenden Ressourcen. Speichern Sie die Vorlage lokal oder in einem Amazon S3 S3-Bucket.
Um eine Kopie der Vorlage eines laufenden Stacks zu erhalten
-
Öffnen Sie die CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation/
. -
Wählen Sie aus der Liste der Stacks den Stapel aus, aus dem Sie die Vorlage abrufen möchten.
-
Wählen Sie im Bereich mit den Stack-Details die Registerkarte Vorlage und dann In die Zwischenablage kopieren aus.
-
Fügen Sie den Code in einen Texteditor ein, um weitere Ressourcen zur Vorlage hinzuzufügen.
-
-
Fügen Sie für jede Ressource, die Sie importieren möchten, Folgendes hinzu:
-
die Eigenschaften und Eigenschaftswerte, die die aktuelle Konfiguration der Ressource definieren.
-
der eindeutige Bezeichner für die Ressource, z. B. der Ressourcenname. Weitere Informationen finden Sie unter Ressourcen-Identifikatoren.
-
Themen
--Beispielvorlage
In dieser exemplarischen Vorgehensweise gehen wir davon aus, dass Sie die folgende Beispielvorlage namens TemplateToImport.json
verwenden, die zwei DynamoDB-Tabellen spezifiziert. ServiceTable
ist derzeit Teil des Stacks und GamesTable
ist die Tabelle, die Sie importieren möchten.
Anmerkung
Diese Vorlage dient nur als Beispiel. Um sie für Ihre eigenen Testzwecke zu verwenden, ersetzen Sie die Beispielressourcen durch Ressourcen aus Ihrem Konto.
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "Import test",
"Resources": {
"ServiceTable": {
"Type": "AWS::DynamoDB::Table",
"Properties": {
"TableName": "Service",
"AttributeDefinitions": [
{
"AttributeName": "key",
"AttributeType": "S"
}
],
"KeySchema": [
{
"AttributeName": "key",
"KeyType": "HASH"
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 5,
"WriteCapacityUnits": 1
}
}
},
"GamesTable": {
"Type": "AWS::DynamoDB::Table",
"DeletionPolicy": "Retain",
"Properties": {
"TableName": "Games",
"AttributeDefinitions": [
{
"AttributeName": "key",
"AttributeType": "S"
}
],
"KeySchema": [
{
"AttributeName": "key",
"KeyType": "HASH"
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 5,
"WriteCapacityUnits": 1
}
}
}
}
}
Importieren Sie eine vorhandene Ressource in einen Stack mit dem AWS Management Console
Anmerkung
Das Tool AWS CloudFormation Die Konsole unterstützt die Verwendung der systemeigenen Funktion Fn: :Transform beim Importieren von Ressourcen nicht. Sie können das AWS Command Line Interface um Ressourcen zu importieren, die die systemeigene Funktion Fn: :Transform verwenden.
Melden Sie sich an bei AWS Management Console und öffne das AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.
-
Wählen Sie auf der Seite Stacks den Stack aus, in den Sie Ressourcen importieren möchten.
-
Wählen Sie Stack-Aktionen und dann Ressourcen in Stack importieren aus.
-
Überprüfen Sie die Seite Importübersicht und wählen Sie dann Weiter aus.
-
Geben Sie auf der Seite Vorlage angeben Ihre aktualisierte Vorlage mit einer der folgenden Methoden an und wählen Sie dann Weiter aus.
-
Wählen Sie Amazon S3 URL und geben Sie dann das URL für Ihre Vorlage im Textfeld an.
-
Wählen Sie Vorlagendatei hochladen aus und suchen Sie dann nach Ihrer Vorlage.
-
-
Identifizieren Sie auf der Seite Ressourcen identifizieren jede Zielressource. Weitere Informationen finden Sie unter Ressourcen-Identifikatoren.
-
Wählen Sie unter Bezeichnereigenschaft den Typ des Ressourcenbezeichners aus. Beispielsweise kann die
AWS::DynamoDB::Table
-Ressource mit derTableName
-Eigenschaft identifiziert werden. -
Geben Sie unter Bezeichnerwert den tatsächlichen Eigenschaftswert ein. Beispielsweise ist der
TableName
für dieGamesTable
-Ressource in der Beispielvorlage
.Games
-
Wählen Sie Weiter.
-
-
Aktualisieren Sie auf der Seite Stack-Details angeben alle Parameter und wählen Sie dann Weiter aus. Dadurch wird automatisch ein Änderungssatz erstellt.
Anmerkung
Der Importvorgang schlägt fehl, wenn Sie vorhandene Parameter ändern, die einen Erstellungs-, Aktualisierungs- oder Löschvorgang initiieren.
-
Zum Testbericht
stack-name
Überprüfen Sie auf der Seite die zu importierenden Ressourcen und wählen Sie dann Ressourcen importieren aus. Dadurch wird der im letzten Schritt erstellte Änderungssatz automatisch ausgeführt. Alle Tags auf Stack-Ebene werden zu diesem Zeitpunkt auf importierte Ressourcen angewendet. Weitere Informationen finden Sie unter Konfigurieren Sie die Stack-Optionen.Die Seite Ereignisse für den Stack wird angezeigt.
-
(Optional) Führen Sie die Abweichungserkennung für den Stack aus, um sicherzustellen, dass die Vorlage und die tatsächliche Konfiguration der importierten Ressourcen übereinstimmen. Weitere Informationen zur Erkennung von Abweichungen finden Sie unterDrift auf einem ganzen CloudFormation Stack erkennen.
-
(Optional) Wenn die importierten Ressourcen nicht mit den erwarteten Vorlagenkonfigurationen übereinstimmen, korrigieren Sie entweder die Vorlagenkonfigurationen oder aktualisieren Sie die Ressourcen direkt. Weitere Informationen zum Importieren von Ressourcen, die nicht berücksichtigt wurden, finden Sie unterBeheben von Abweichungen mit einer Importoperation.
Importieren Sie eine vorhandene Ressource in einen Stapel mithilfe der AWS CLI
-
Um zu erfahren, welche Eigenschaften die einzelnen Ressourcentypen in der Vorlage identifizieren, führen Sie den get-template-summary Befehl aus und geben Sie dabei den S3 URL der Vorlage an. Beispielsweise kann die
AWS::DynamoDB::Table
-Ressource mit derTableName
-Eigenschaft identifiziert werden. Für dieGamesTable
-Ressource in der Beispielvorlage lautet der Wert vonTableName
Games
. Sie benötigen diese Informationen im nächsten Schritt.aws cloudformation get-template-summary \ --template-url
https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json
Weitere Informationen finden Sie unter Ressourcen-Identifikatoren.
-
Stellen Sie eine Liste der tatsächlich zu importierenden Ressourcen und ihrer eindeutigen Kennungen im folgenden JSON Zeichenkettenformat zusammen.
[{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]
Alternativ können Sie die Parameter im JSON -Format in einer Konfigurationsdatei angeben.
Um beispielsweise zu importieren
GamesTable
, könnten Sie eine erstellenResourcesToImport.txt
Datei, die die folgende Konfiguration enthält.[ { "ResourceType":"AWS::DynamoDB::Table", "LogicalResourceId":"GamesTable", "ResourceIdentifier": { "TableName":"Games" } } ]
-
Um einen Änderungssatz zu erstellen, verwenden Sie den folgenden create-change-set Befehl und ersetzen Sie den Platzhaltertext. Geben Sie für die Option
--change-set-type
einen Wert vonIMPORT
an. Ersetzen Sie für--resources-to-import
diese Option die JSON Beispielzeichenfolge durch die tatsächliche JSON Zeichenfolge, die Sie gerade erstellt haben.aws cloudformation create-change-set \ --stack-name
TargetStack
--change-set-nameImportChangeSet
\ --change-set-typeIMPORT
\ --template-urlhttps://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json
\ --resources-to-import'[{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]'
Anmerkung
--resources-to-import
unterstützt Inline nichtYAML. Die Anforderungen für das Maskieren von Anführungszeichen in der JSON Zeichenfolge variieren je nach Terminal. Weitere Informationen finden Sie unter Verwenden von Anführungszeichen innerhalb von Zeichenketten im AWS Command Line Interface Benutzerleitfaden.Alternativ können Sie eine Datei URL als Eingabe für die
--resources-to-import
Option verwenden, wie im folgenden Beispiel gezeigt.--resources-to-import
file://ResourcesToImport.txt
-
Überprüfen Sie den Änderungssatz, um sicherzustellen, dass die richtigen Ressourcen importiert werden.
aws cloudformation describe-change-set \ --change-set-name
ImportChangeSet
--stack-nameTargetStack
-
Verwenden Sie den folgenden execute-change-set Befehl und ersetzen Sie den Platzhaltertext, um den Änderungssatz zu initiieren und die Ressourcen zu importieren. Alle Tags auf Stack-Ebene werden zu diesem Zeitpunkt auf importierte Ressourcen angewendet. Weitere Informationen finden Sie unter Konfigurieren Sie die Stack-Optionen. Nach erfolgreichem Abschluss des Vorgangs
(IMPORT_COMPLETE)
werden die Ressourcen erfolgreich importiert.aws cloudformation execute-change-set \ --change-set-name
ImportChangeSet
--stack-nameTargetStack
-
(Optional) Führen Sie die Abweichungserkennung für den
IMPORT_COMPLETE
-Stack aus, um sicherzustellen, dass die Vorlage und die tatsächliche Konfiguration der importierten Ressourcen übereinstimmen. Weitere Informationen zur Erkennung von Abweichungen finden Sie unterDrift auf einem ganzen CloudFormation Stack erkennen.-
Führt die Drifterkennung für den angegebenen Stack aus.
aws cloudformation detect-stack-drift --stack-name
TargetStack
Bei Erfolg gibt dieser Befehl die folgende Beispielausgabe zurück.
{ "Stack-Drift-Detection-Id" : "624af370-311a-11e8-b6b7-500cexample" }
-
Zeigt den Fortschritt eines Drift-Erkennungsvorgangs für die angegebene Stack-Drift-Erkennungs-ID an.
aws cloudformation describe-stack-drift-detection-status \ --stack-drift-detection-id
624af370-311a-11e8-b6b7-500cexample
-
Zeigt Drift-Informationen für die Ressourcen an, die im angegebenen Stack auf Drift überprüft wurden.
aws cloudformation describe-stack-resource-drifts --stack-name
TargetStack
-
-
(Optional) Wenn die importierten Ressourcen nicht mit den erwarteten Vorlagenkonfigurationen übereinstimmen, korrigieren Sie entweder die Vorlagenkonfigurationen oder aktualisieren Sie die Ressourcen direkt. Weitere Informationen zum Importieren von Ressourcen, die nicht mehr zur Verfügung stehen, finden Sie unterBeheben von Abweichungen mit einer Importoperation.