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à.
Esempi di comandi di funzionamento CloudFormation dello stack per e AWS CLI PowerShell
I seguenti esempi da riga di comando mostrano come eseguire CloudFormation azioni individuali con and. AWS CLI PowerShell Questi esempi includono solo le azioni più comunemente utilizzate. Per un elenco completo, consulta la Guida AWS CloudFormation APIdi riferimento.
Gli esempi di questo argomento utilizzano la convenzione di una barra rovesciata (\) per indicare che una lunga riga di comando continua sulla riga successiva.
Annulla un aggiornamento dello stack
Utilizzate il cancel-update-stack
comando per annullare un aggiornamento dello stack. Per ulteriori informazioni, consulta Annullare un aggiornamento dello stack.
- CLI
-
- AWS CLI
-
Per annullare un aggiornamento dello stack in corso
Il cancel-update-stack
comando seguente annulla un aggiornamento dello stack nello stack: myteststack
aws cloudformation cancel-update-stack --stack-name myteststack
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: annulla un aggiornamento sullo stack specificato.
Stop-CFNUpdateStack -StackName "myStack"
Rollback di un aggiornamento
Utilizzare il continue-update-rollback
comando per continuare a ripristinare un aggiornamento. Per ulteriori informazioni, consulta Rollback di un aggiornamento.
- CLI
-
- AWS CLI
-
Per riprovare il rollback dell'aggiornamento
L'continue-update-rollback
esempio seguente riprende un'operazione di rollback da un aggiornamento dello stack precedentemente non riuscito.
aws cloudformation continue-update-rollback \
--stack-name my-stack
Questo comando non produce alcun output.
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: continua il rollback dello stack denominato, che dovrebbe trovarsi nello stato 'UPDATE_ ROLLBACK _FAILED'. Se il rollback continuato ha esito positivo, lo stack entrerà nello stato '_ _'. UPDATE ROLLBACK COMPLETE
Resume-CFNUpdateRollback -StackName "myStack"
Creare uno stack
Utilizzare il create-stack
comando per creare uno stack. Devi fornire il nome dello stack, la posizione di un modello valido e i parametri di input. I nomi delle chiavi dei parametri distinguono tra maiuscole e minuscole. Se digiti erroneamente il nome della chiave di un parametro, CloudFormation non crea lo stack e segnala che il modello non contiene quel parametro.
Per impostazione predefinita, il describe-stacks
comando restituisce i valori dei parametri. Per evitare che vengano restituiti valori di parametri sensibili come le password, includi una NoEcho
proprietà impostata su TRUE
nel CloudFormation modello.
L'utilizzo dell'attributo NoEcho
non maschera le informazioni memorizzate nei seguenti elementi:
Si consiglia vivamente di non utilizzare questi meccanismi per includere informazioni sensibili, come password o segreti.
Anziché incorporare informazioni riservate direttamente nei CloudFormation modelli, consigliamo di utilizzare parametri dinamici nel modello di pila per fare riferimento a informazioni sensibili archiviate e gestite all'esterno CloudFormation, ad esempio nel AWS Systems Manager Parameter Store o. AWS Secrets Manager
Per ulteriori informazioni, consulta la procedura Non incorporare le credenziali nei modelli consigliata.
Gli esempi seguenti mostrano come creare un nuovo stack con il nome, il modello e i parametri di input specificati.
- CLI
-
- AWS CLI
-
Per creare uno stack AWS CloudFormation
Il create-stacks
comando seguente crea uno stack con il nome myteststack
utilizzando il sampletemplate.json
modello:
aws cloudformation create-stack --stack-name myteststack
--template-body file://sampletemplate.json
--parameters ParameterKey=KeyPairName,ParameterValue=TestKey
ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2
Output:
{
"StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896"
}
Per ulteriori informazioni, consulta Stacks nella Guida per l'AWS CloudFormation utente.
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione ('' e PK1 'PK2' rappresentano i nomi dei parametri dichiarati nel contenuto del modello, '' e PV1 'PV2' rappresentano i valori di tali parametri. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, non verrà ripristinato.
New-CFNStack -StackName "myStack" `
-TemplateBody "{TEMPLATE CONTENT HERE}" `
-Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) `
-DisableRollback $true
Esempio 2: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione ('' e PK1 'PK2' rappresentano i nomi dei parametri dichiarati nel contenuto del modello, '' e PV1 'PV2' rappresentano i valori di tali parametri. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato.
$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter
$p1.ParameterKey = "PK1"
$p1.ParameterValue = "PV1"
$p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter
$p2.ParameterKey = "PK2"
$p2.ParameterValue = "PV2"
New-CFNStack -StackName "myStack" `
-TemplateBody "{TEMPLATE CONTENT HERE}" `
-Parameter @( $p1, $p2 ) `
-OnFailure "ROLLBACK"
Esempio 3: crea un nuovo stack con il nome specificato. Il modello è ottenuto da Amazon S3 URL con parametri di personalizzazione ('PK1' rappresenta il nome di un parametro dichiarato nel contenuto del modello, 'PV1' rappresenta il valore del parametro. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come specificare - DisableRollback $false).
New-CFNStack -StackName "myStack" `
-TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
-Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
Esempio 4: crea un nuovo stack con il nome specificato. Il modello è ottenuto da Amazon S3 URL con parametri di personalizzazione ('PK1' rappresenta il nome di un parametro dichiarato nel contenuto del modello, 'PV1' rappresenta il valore del parametro. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come specificare - DisableRollback $false). La notifica specificata AENs riceverà gli eventi pubblicati relativi allo stack.
New-CFNStack -StackName "myStack" `
-TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
-Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } `
-NotificationARN @( "arn1", "arn2" )
In alternativa, è possibile specificare la AWS Systems Manager posizione di un file modello.
- AWS CLI
-
Il create-stack
comando seguente crea uno stack con il nome myteststack
utilizzando un AWS Systems Manager documento per il modelloURL.
aws cloudformation create-stack --stack-name myteststack
\
--template-url "ssm-doc://arn:aws:ssm:us-east-1:123456789012:document/documentName"
Output:
{
"StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896"
}
Crea una pila che includa le trasformazioni
Usa il deploy
comando per creare uno stack che includa le trasformazioni.
Per creare una pila da un modello che include trasformazioni, è necessario utilizzare un set di modifiche. Invece di creare un set di modifiche e quindi avviarlo, utilizzate il deploy
comando per combinare questi passaggi in un unico comando.
- AWS CLI
-
Il deploy
comando seguente crea uno stack con il nome, il modello e i parametri di input specificati.
aws cloudformation deploy --stack-name myteststack
\
--template /path_to_template/my-template.json
\
--parameter-overrides Key1=Value1 Key2=Value2
Eliminazione di uno stack
Utilizzate il delete-stack
comando per eliminare uno stack. Per ulteriori informazioni, consulta Eliminare uno stack dalla console CloudFormation .
- CLI
-
- AWS CLI
-
Per eliminare una pila
L'delete-stack
esempio seguente elimina lo stack specificato.
aws cloudformation delete-stack \
--stack-name my-stack
Questo comando non produce alcun output.
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: elimina lo stack specificato.
Remove-CFNStack -StackName "myStack"
Se l'eliminazione fallisce e restituisce uno DELETE_FAILED
stato, puoi scegliere di eliminare lo stack con la forza utilizzando l'opzione. --deletion-mode
Questi sono i seguenti valori che possono essere usati condeletion-mode
:
- AWS CLI
-
La seguente forza di delete-stack
comando elimina lo myteststack
stack utilizzando il valore con il parametro: FORCE_DELETE_STACK
deletion-mode
aws cloudformation delete-stack --stack-name myteststack
\
--deletion-mode FORCE_DELETE_STACK
Questo comando non produce alcun output.
Dopo l'usoFORCE_DELETE_STACK
, è possibile utilizzare il list-stack-resources
comando per elencare le risorse che sono state ignorate durante il processo di eliminazione dello stack. Le risorse conservate mostreranno lo stato _. DELETE SKIPPED Per ulteriori informazioni, consulta Elenca le risorse dello stack.
Descrivi gli eventi dello stack
Usa il describe-stack-events
comando per descrivere gli eventi dello stack. Per ulteriori informazioni, consulta Monitora l'avanzamento dello stack.
- CLI
-
- AWS CLI
-
Per descrivere gli eventi dello stack
L'describe-stack-events
esempio seguente visualizza i 2 eventi più recenti per lo stack specificato.
aws cloudformation describe-stack-events \
--stack-name my-stack
\
--max-items 2
{
"StackEvents": [
{
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
"EventId": "4e1516d0-e4d6-xmpl-b94f-0a51958a168c",
"StackName": "my-stack",
"LogicalResourceId": "my-stack",
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
"ResourceType": "AWS::CloudFormation::Stack",
"Timestamp": "2019-10-02T05:34:29.556Z",
"ResourceStatus": "UPDATE_COMPLETE"
},
{
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
"EventId": "4dd3c810-e4d6-xmpl-bade-0aaf8b31ab7a",
"StackName": "my-stack",
"LogicalResourceId": "my-stack",
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
"ResourceType": "AWS::CloudFormation::Stack",
"Timestamp": "2019-10-02T05:34:29.127Z",
"ResourceStatus": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
}
],
"NextToken": "eyJOZXh0VG9XMPLiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ=="
}
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: restituisce tutti gli eventi relativi allo stack per lo stack specificato.
Get-CFNStackEvent -StackName "myStack"
Descrivi una risorsa stack
- CLI
-
- AWS CLI
-
Per ottenere informazioni su una risorsa dello stack
L'describe-stack-resource
esempio seguente visualizza i dettagli della risorsa denominata MyFunction
nello stack specificato.
aws cloudformation describe-stack-resource \
--stack-name MyStack
\
--logical-resource-id MyFunction
Output:
{
"StackResourceDetail": {
"StackName": "MyStack",
"StackId": "arn:aws:cloudformation:us-east-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
"LogicalResourceId": "MyFunction",
"PhysicalResourceId": "my-function-SEZV4XMPL4S5",
"ResourceType": "AWS::Lambda::Function",
"LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z",
"ResourceStatus": "UPDATE_COMPLETE",
"Metadata": "{}",
"DriftInformation": {
"StackResourceDriftStatus": "IN_SYNC"
}
}
}
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: restituisce la descrizione di una risorsa identificata nel modello associato allo stack specificato dall'ID logico yDBInstance «M».
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
Descrivi le risorse dello stack
- CLI
-
- AWS CLI
-
Per ottenere informazioni su una risorsa dello stack
L'describe-stack-resources
esempio seguente visualizza i dettagli delle risorse nello stack specificato.
aws cloudformation describe-stack-resources \
--stack-name my-stack
Output:
{
"StackResources": [
{
"StackName": "my-stack",
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
"LogicalResourceId": "bucket",
"PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf",
"ResourceType": "AWS::S3::Bucket",
"Timestamp": "2019-10-02T04:34:11.345Z",
"ResourceStatus": "CREATE_COMPLETE",
"DriftInformation": {
"StackResourceDriftStatus": "IN_SYNC"
}
},
{
"StackName": "my-stack",
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
"LogicalResourceId": "function",
"PhysicalResourceId": "my-function-SEZV4XMPL4S5",
"ResourceType": "AWS::Lambda::Function",
"Timestamp": "2019-10-02T05:34:27.989Z",
"ResourceStatus": "UPDATE_COMPLETE",
"DriftInformation": {
"StackResourceDriftStatus": "IN_SYNC"
}
},
{
"StackName": "my-stack",
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
"LogicalResourceId": "functionRole",
"PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E",
"ResourceType": "AWS::IAM::Role",
"Timestamp": "2019-10-02T04:34:06.350Z",
"ResourceStatus": "CREATE_COMPLETE",
"DriftInformation": {
"StackResourceDriftStatus": "IN_SYNC"
}
}
]
}
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: restituisce le descrizioni AWS delle risorse per un massimo di 100 risorse associate allo stack specificato. Per ottenere i dettagli di tutte le risorse associate a uno stack, usa Get-CFNStackResourceSummary, che supporta anche la paginazione manuale dei risultati.
Get-CFNStackResourceList -StackName "myStack"
Esempio 2: restituisce la descrizione dell'EC2istanza Amazon identificata nel modello associato allo stack specificato dall'ID logico «Ec2Instance».
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"
Esempio 3: restituisce la descrizione di un massimo di 100 risorse associate allo stack contenente un'EC2istanza Amazon identificata dall'ID di istanza «i-123456". Per ottenere i dettagli di tutte le risorse associate a uno stack, usa Get-CFNStackResourceSummary, che supporta anche la paginazione manuale dei risultati.
Get-CFNStackResourceList -PhysicalResourceId "i-123456"
Esempio 4: restituisce la descrizione dell'EC2istanza Amazon identificata dall'ID logico «Ec2Instance» nel modello per uno stack. Lo stack viene identificato utilizzando l'ID della risorsa fisica di una risorsa che contiene, in questo caso anche un'EC2istanza Amazon con ID di istanza «i-123456". È inoltre possibile utilizzare una risorsa fisica diversa per identificare lo stack in base al contenuto del modello, ad esempio un bucket Amazon S3.
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
Descrivi gli stack
- CLI
-
- AWS CLI
-
Per descrivere le pile AWS CloudFormation
Il describe-stacks
comando seguente mostra informazioni di riepilogo per lo myteststack
stack:
aws cloudformation describe-stacks --stack-name myteststack
Output:
{
"Stacks": [
{
"StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",
"Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
"Tags": [],
"Outputs": [
{
"Description": "Name of S3 bucket to hold website content",
"OutputKey": "BucketName",
"OutputValue": "myteststack-s3bucket-jssofi1zie2w"
}
],
"StackStatusReason": null,
"CreationTime": "2013-08-23T01:02:15.422Z",
"Capabilities": [],
"StackName": "myteststack",
"StackStatus": "CREATE_COMPLETE",
"DisableRollback": false
}
]
}
Per ulteriori informazioni, consulta Stacks nella Guida per l'AWS CloudFormation utente.
- Go
-
- SDKper Go V2
-
import (
"context"
"log"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/cloudformation"
)
// StackOutputs defines a map of outputs from a specific stack.
type StackOutputs map[string]string
type CloudFormationActions struct {
CfnClient *cloudformation.Client
}
// GetOutputs gets the outputs from a CloudFormation stack and puts them into a structured format.
func (actor CloudFormationActions) GetOutputs(ctx context.Context, stackName string) StackOutputs {
output, err := actor.CfnClient.DescribeStacks(ctx, &cloudformation.DescribeStacksInput{
StackName: aws.String(stackName),
})
if err != nil || len(output.Stacks) == 0 {
log.Panicf("Couldn't find a CloudFormation stack named %v. Here's why: %v\n", stackName, err)
}
stackOutputs := StackOutputs{}
for _, out := range output.Stacks[0].Outputs {
stackOutputs[*out.OutputKey] = *out.OutputValue
}
return stackOutputs
}
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: restituisce una raccolta di istanze Stack che descrivono tutti gli stack dell'utente.
Get-CFNStack
Esempio 2: restituisce un'istanza Stack che descrive lo stack specificato
Get-CFNStack -StackName "myStack"
Ottieni un modello
- CLI
-
- AWS CLI
-
Per visualizzare il corpo del modello per una AWS CloudFormation pila
Il get-template
comando seguente mostra il modello per lo myteststack
stack:
aws cloudformation get-template --stack-name myteststack
Output:
{
"TemplateBody": {
"AWSTemplateFormatVersion": "2010-09-09",
"Outputs": {
"BucketName": {
"Description": "Name of S3 bucket to hold website content",
"Value": {
"Ref": "S3Bucket"
}
}
},
"Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
"Resources": {
"S3Bucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"AccessControl": "PublicRead"
}
}
}
}
}
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: restituisce il modello associato allo stack specificato.
Get-CFNTemplate -StackName "myStack"
Elenca le risorse dello stack
- CLI
-
- AWS CLI
-
Per elencare le risorse in una pila
Il comando seguente visualizza l'elenco delle risorse nello stack specificato.
aws cloudformation list-stack-resources \
--stack-name my-stack
Output:
{
"StackResourceSummaries": [
{
"LogicalResourceId": "bucket",
"PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf",
"ResourceType": "AWS::S3::Bucket",
"LastUpdatedTimestamp": "2019-10-02T04:34:11.345Z",
"ResourceStatus": "CREATE_COMPLETE",
"DriftInformation": {
"StackResourceDriftStatus": "IN_SYNC"
}
},
{
"LogicalResourceId": "function",
"PhysicalResourceId": "my-function-SEZV4XMPL4S5",
"ResourceType": "AWS::Lambda::Function",
"LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z",
"ResourceStatus": "UPDATE_COMPLETE",
"DriftInformation": {
"StackResourceDriftStatus": "IN_SYNC"
}
},
{
"LogicalResourceId": "functionRole",
"PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E",
"ResourceType": "AWS::IAM::Role",
"LastUpdatedTimestamp": "2019-10-02T04:34:06.350Z",
"ResourceStatus": "CREATE_COMPLETE",
"DriftInformation": {
"StackResourceDriftStatus": "IN_SYNC"
}
}
]
}
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: restituisce le descrizioni di tutte le risorse associate allo stack specificato.
Get-CFNStackResourceSummary -StackName "myStack"
Elenca pile
Usa il list-stacks
comando per elencare le pile. Per elencare solo le pile con i codici di stato specificati, includi l'--stack-status-filter
opzione. È possibile specificare uno o più codici di stato dello stack per l'--stack-status-filter
opzione. Per ulteriori informazioni, consulta Codici di stato dello stack.
- CLI
-
- AWS CLI
-
Per elencare le pile AWS CloudFormation
Il list-stacks
comando seguente mostra un riepilogo di tutti gli stack con uno stato di: CREATE_COMPLETE
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE
Output:
[
{
"StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",
"TemplateDescription": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
"StackStatusReason": null,
"CreationTime": "2013-08-26T03:27:10.190Z",
"StackName": "myteststack",
"StackStatus": "CREATE_COMPLETE"
}
]
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: restituisce informazioni di riepilogo per tutti gli stack.
Get-CFNStackSummary
Esempio 2: restituisce informazioni di riepilogo per tutti gli stack attualmente in fase di creazione.
Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"
Esempio 3: restituisce informazioni di riepilogo per tutti gli stack attualmente in fase di creazione o aggiornamento.
Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
Aggiornare uno stack
Utilizzare il comando update-stack
per aggiornare direttamente uno stack. È possibile specificare lo stack e i valori e le funzionalità dei parametri che si desidera aggiornare; inoltre, se si sceglie di utilizzare un modello aggiornato, è possibile specificare il nome del modello. Per ulteriori informazioni, consulta Aggiorna direttamente gli stack.
- CLI
-
- AWS CLI
-
Per aggiornare gli stack AWS CloudFormation
Il update-stack
comando seguente aggiorna il modello e i parametri di input per lo mystack
stack:
aws cloudformation update-stack --stack-name mystack
--template-url https://s3.amazonaws.com/sample/updated.template
--parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair
ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2
Il update-stack
comando seguente aggiorna solo il valore del SubnetIDs
parametro per lo mystack
stack. Se non si specifica un valore di parametro, viene utilizzato il valore predefinito specificato nel modello:
aws cloudformation update-stack --stack-name mystack
--template-url https://s3.amazonaws.com/sample/updated.template
--parameters ParameterKey=KeyPairName,UsePreviousValue=true
ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2
Il update-stack
comando seguente aggiunge due argomenti di notifica dello stack allo mystack
stack:
aws cloudformation update-stack --stack-name mystack
--use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1"
"arn:aws:sns:us-east-1:123456789012:mytopic2"
Per ulteriori informazioni, consulta gli aggiornamenti AWS CloudFormation dello stack nella Guida per l'AWS CloudFormation utente.
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: aggiorna lo stack 'myStack' con il modello e i parametri di personalizzazione specificati. 'PK1' rappresenta il nome di un parametro dichiarato nel modello e 'PV1' ne rappresenta il valore. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».
Update-CFNStack -StackName "myStack" `
-TemplateBody "{Template Content Here}" `
-Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
Esempio 2: aggiorna lo stack 'myStack' con il modello e i parametri di personalizzazione specificati. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, '' e PV1 'PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».
Update-CFNStack -StackName "myStack" `
-TemplateBody "{Template Content Here}" `
-Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
Esempio 3: aggiorna lo stack 'myStack' con il modello e i parametri di personalizzazione specificati. 'PK1' rappresenta il nome di un parametro dichiarato nel modello e 'PV2' ne rappresenta il valore. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }
Esempio 4: aggiorna lo stack 'myStack' con il modello specificato, ottenuto da Amazon S3, e i parametri di personalizzazione. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, '' e PV1 'PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».
Update-CFNStack -StackName "myStack" `
-TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
-Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
Esempio 5: aggiorna lo stack 'myStack', che in questo esempio si presume contenga IAM risorse, con il modello specificato, ottenuto da Amazon S3, e i parametri di personalizzazione. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, '' e PV1 'PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue». Gli stack contenenti IAM risorse richiedono di specificare il parametro -Capabilities "CAPABILITY_IAM" altrimenti l'aggiornamento avrà esito negativo e verrà generato un errore ''. InsufficientCapabilities
Update-CFNStack -StackName "myStack" `
-TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
-Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) `
-Capabilities "CAPABILITY_IAM"
Per rimuovere tutte le notifiche, specificare []
l'--notification-arns
opzione.
Convalida il modello
Usa il validate-template
comando per verificare la presenza di errori di sintassi nel file modello.
Durante la convalida, verifica CloudFormation innanzitutto se il modello è valido. JSON In caso contrario, CloudFormation verifica se il modello è validoYAML. Se entrambi i controlli falliscono, CloudFormation restituisce un errore di convalida del modello.
- CLI
-
- AWS CLI
-
Per convalidare un modello AWS CloudFormation
Il validate-template
comando seguente convalida il sampletemplate.json
modello:
aws cloudformation validate-template --template-body file://sampletemplate.json
Output:
{
"Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
"Parameters": [],
"Capabilities": []
}
Per ulteriori informazioni, vedere Working with AWS CloudFormation Templates nella Guida per l'AWS CloudFormation utente.
- PowerShell
-
- Strumenti per PowerShell
-
Esempio 1: convalida il contenuto del modello specificato. L'output descrive in dettaglio le funzionalità, la descrizione e i parametri del modello.
Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"
Esempio 2: convalida il modello specificato a cui si accede tramite Amazon URL S3. L'output descrive in dettaglio le funzionalità, la descrizione e i parametri del modello.
Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
Di seguito è riportato un esempio di risposta che produce un errore di convalida.
{
"ResponseMetadata": {
"RequestId": "4ae33ec0-1988-11e3-818b-e15a6df955cd"
},
"Errors": [
{
"Message": "Template format error: JSON not well-formed. (line 11, column 8)",
"Code": "ValidationError",
"Type": "Sender"
}
],
"Capabilities": [],
"Parameters": []
}
A client error (ValidationError) occurred: Template format error: JSON not well-formed. (line 11, column 8)
Il comando validate-template
è progettato per controllare solo la sintassi del modello. Non garantisce che i valori delle proprietà specificati per una risorsa siano validi per tale risorsa. Né determina il numero di risorse presenti quando verrà creato lo stack.
Per verificare la validità operativa, devi tentare di creare lo stack. Non esiste una sandbox o un'area di test per gli AWS CloudFormation stack, quindi ti verranno addebitate le risorse create durante i test.
Non riesci a trovare quello che ti serve? Richiedi un nuovo esempio utilizzando il link Fornisci feedback in fondo a questa pagina.