Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Importazione di risorse esistenti in uno stack
Questo argomento mostra come importare elementi esistenti AWS risorse in uno stack esistente descrivendole in un modello. Per cercare invece le risorse esistenti e generare automaticamente un modello da utilizzare per importare risorse esistenti CloudFormation o replicare le risorse in un nuovo account, consulta. Genera modelli da risorse esistenti con il generatore IaC
Prerequisiti
Prima di iniziare, devi disporre di quanto segue:
-
Un modello che descrive l'intero stack, incluse le risorse che fanno già parte dello stack e le risorse da importare. Salva il modello localmente o in un bucket Amazon S3.
Per ottenere una copia del modello di uno stack in esecuzione
-
Apri la CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation/
. -
Dall'elenco degli stack, scegli lo stack da cui vuoi recuperare il modello.
-
Nel riquadro dei dettagli dello stack, scegli la scheda Modello, quindi scegli Copia negli appunti.
-
Incolla il codice in un editor di testo per iniziare ad aggiungere altre risorse al modello.
-
-
Per ogni risorsa che desideri importare, includi quanto segue:
-
le proprietà e i valori delle proprietà che definiscono la configurazione corrente della risorsa.
-
l'identificatore univoco della risorsa, ad esempio il nome della risorsa. Per ulteriori informazioni, consulta Identificatori di risorse.
-
Argomenti
Modello di esempio
In questa procedura dettagliata, supponiamo che tu stia utilizzando il seguente modello di esempio, chiamatoTemplateToImport.json
, che specifica due tabelle DynamoDB. ServiceTable
è attualmente parte dello stack ed GamesTable
è la tabella che desideri importare.
Nota
Questo modello è inteso solo come esempio. Per utilizzarlo per scopi di test, sostituisci le risorse di esempio con le risorse del tuo account.
{
"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
}
}
}
}
}
Importa una risorsa esistente in uno stack utilizzando il AWS Management Console
Nota
Il AWS CloudFormation la console non supporta l'uso della funzione intrinseca Fn: :Transform durante l'importazione di risorse. Puoi utilizzare il plugin AWS Command Line Interface per importare risorse che utilizzano la funzione intrinseca Fn: :Transform.
Accedere a AWS Management Console e apri il AWS CloudFormation console in https://console.aws.amazon.com/cloudformazione.
-
Nella pagina Stacks (Stack), scegliere lo stack in cui importare le risorse.
-
Scegliere Stack actions (Operazioni stack), quindi scegliere Import resources into stack (Importa risorse nello stack).
-
Rivedere la pagina Import overview (Panoramica importazione), quindi scegliere Next (Successivo).
-
Nella pagina Specify model (Specifica modello), fornire il modello aggiornato utilizzando uno dei metodi descritti di seguito, quindi scegliere Next (Successivo).
-
Scegli Amazon S3 URL, quindi specifica URL il modello nella casella di testo.
-
Scegliere Upload a template file (Carica un file modello), quindi cercare il modello.
-
-
Nella pagina Identify resources (Identifica risorse), identifica ogni risorsa di destinazione. Per ulteriori informazioni, consulta Identificatori di risorse.
-
In Identifier property (Proprietà identificatore), scegliere il tipo di identificatore di risorsa. Ad esempio, la risorsa
AWS::DynamoDB::Table
può essere identificata utilizzando la proprietàTableName
. -
In Identifier value (Valore identificatore), digitare il valore effettivo della proprietà. Ad esempio, il
TableName
per la risorsaGamesTable
nel modello di esempio è
.Games
-
Scegli Next (Successivo).
-
-
Nella pagina Specify stack details (Specifica dettagli stack), aggiornare i parametri, quindi scegliere Next (Successivo). Questo crea automaticamente un set di modifiche.
Nota
L'operazione di importazione ha esito negativo se si modificano i parametri esistenti che iniziano un'operazione di creazione, aggiornamento o eliminazione.
-
Sulla recensione
stack-name
nella pagina, esamina le risorse da importare, quindi scegli Importa risorse. In questo modo si esegue automaticamente il set di modifiche creato nell'ultimo passaggio. Tutti i tag a livello di stack vengono applicati alle risorse importate in questo momento. Per ulteriori informazioni, consulta Configura le opzioni dello stack.Viene visualizzata la pagina Events (Eventi) per lo stack.
-
(Facoltativo) Eseguire il rilevamento della deviazione nello stack per assicurarsi che il modello e la configurazione effettiva delle risorse importate corrispondano. Per ulteriori informazioni sul rilevamento della deriva, vedere. Rileva la deriva su un'intera CloudFormation pila
-
(Facoltativo) Se le risorse importate non corrispondono alle configurazioni dei modelli previste, correggi le configurazioni dei modelli o aggiorna direttamente le risorse. Per ulteriori informazioni sull'importazione di risorse che derivano dalla deriva, vedere. Risoluzione della deviazione con un'operazione di importazione
Importa una risorsa esistente in uno stack utilizzando il AWS CLI
-
Per sapere quali proprietà identificano ogni tipo di risorsa nel modello, esegui il get-template-summary comando, specificando l'S3 URL del modello. Ad esempio, la risorsa
AWS::DynamoDB::Table
può essere identificata utilizzando la proprietàTableName
. Per la risorsaGamesTable
nel modello di esempio, il valore diTableName
èGames
. Avrai bisogno di queste informazioni nel passaggio successivo.aws cloudformation get-template-summary \ --template-url
https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json
Per ulteriori informazioni, consulta Identificatori di risorse.
-
Componi un elenco di risorse effettive da importare e i relativi identificatori univoci nel seguente JSON formato di stringa.
[{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]
In alternativa, potete specificare i parametri JSON -formatted in un file di configurazione.
Ad esempio, per importare
GamesTable
, è possibile creare unResourcesToImport.txt
file che contiene la seguente configurazione.[ { "ResourceType":"AWS::DynamoDB::Table", "LogicalResourceId":"GamesTable", "ResourceIdentifier": { "TableName":"Games" } } ]
-
Per creare un set di modifiche, utilizzate il seguente create-change-set comando e sostituite il testo segnaposto. Per l'opzione
--change-set-type
, specifica il valore diIMPORT
. Per l'--resources-to-import
opzione, sostituite la JSON stringa di esempio con la JSON stringa effettiva appena creata.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"}}]'
Nota
--resources-to-import
non supporta inlineYAML. I requisiti per l'escape tra virgolette nella JSON stringa variano a seconda del terminale. Per ulteriori informazioni, vedete Uso delle virgolette all'interno delle stringhe nella AWS Command Line Interface Guida per l'utente.In alternativa, è possibile utilizzare un file URL come input per l'
--resources-to-import
opzione, come illustrato nell'esempio seguente.--resources-to-import
file://ResourcesToImport.txt
-
Esaminare il set di modifiche per assicurarsi che vengano importate le risorse corrette.
aws cloudformation describe-change-set \ --change-set-name
ImportChangeSet
--stack-nameTargetStack
-
Per avviare il set di modifiche e importare le risorse, utilizzate il execute-change-set comando seguente e sostituite il testo segnaposto. Tutti i tag a livello di stack vengono applicati alle risorse importate in questo momento. Per ulteriori informazioni, consulta Configura le opzioni dello stack. Al completamento dell'operazione
(IMPORT_COMPLETE)
, le risorse vengono importate correttamente.aws cloudformation execute-change-set \ --change-set-name
ImportChangeSet
--stack-nameTargetStack
-
(Facoltativo) Eseguire il rilevamento della deviazione sullo stack
IMPORT_COMPLETE
per assicurarsi che il modello e la configurazione effettiva delle risorse importate corrispondano. Per ulteriori informazioni sul rilevamento della deriva, vedere. Rileva la deriva su un'intera CloudFormation pila-
Esegue il rilevamento della deriva sullo stack specificato.
aws cloudformation detect-stack-drift --stack-name
TargetStack
In caso di successo, questo comando restituisce il seguente output di esempio.
{ "Stack-Drift-Detection-Id" : "624af370-311a-11e8-b6b7-500cexample" }
-
Visualizza lo stato di avanzamento di un'operazione di rilevamento della deriva per l'ID di rilevamento della deriva dello stack specificato.
aws cloudformation describe-stack-drift-detection-status \ --stack-drift-detection-id
624af370-311a-11e8-b6b7-500cexample
-
Visualizza le informazioni sulla deriva per le risorse per le quali è stata verificata la deriva nello stack specificato.
aws cloudformation describe-stack-resource-drifts --stack-name
TargetStack
-
-
(Facoltativo) Se le risorse importate non corrispondono alle configurazioni dei modelli previste, correggi le configurazioni dei modelli o aggiorna direttamente le risorse. Per ulteriori informazioni sull'importazione di risorse alla deriva, vedere. Risoluzione della deviazione con un'operazione di importazione