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à.
CloudFormation StackSets riferimento all'azione di distribuzione
CodePipeline offre la possibilità di eseguire CloudFormation StackSets operazioni come parte del CI/CD processo. Utilizza uno stack set per creare stack negli AWS account tra AWS le regioni utilizzando un unico CloudFormation modello. Tutte le risorse incluse in ogni stack sono definite dal CloudFormation modello del set di stack. Quando si crea lo stack set, si specifica il modello da utilizzare, nonché tutti i parametri e le funzionalità richiesti dal modello.
Per ulteriori informazioni sui concetti per CloudFormation StackSets, consulta StackSets i concetti nella Guida per l'AWS CloudFormation utente.
È possibile integrare la pipeline CloudFormation StackSets tramite due tipi di azioni distinti che si utilizzano insieme:
-
L'
CloudFormationStackSetazione crea o aggiorna uno stack set o istanze di stack dal modello archiviato nella posizione di origine della pipeline. Ogni volta che uno stack set viene creato o aggiornato, avvia una distribuzione di tali modifiche alle istanze specificate. Nella console, puoi scegliere il provider di azioni CloudFormation Stack Set quando crei o modifichi la pipeline. -
L'
CloudFormationStackInstancesazione distribuisce le modifiche dall'CloudFormationStackSetazione alle istanze specificate, crea nuove istanze di stack e definisce le sostituzioni dei parametri alle istanze specificate. Nella console, puoi scegliere il provider di azioni CloudFormation Stack Instances quando modifichi una pipeline esistente.
Puoi utilizzare queste azioni per implementarle AWS sugli account di destinazione o sugli ID delle unità organizzative AWS delle organizzazioni di destinazione.
Nota
Per eseguire la distribuzione su account o ID unità organizzative di destinazione e utilizzare il modello di autorizzazioni gestite dal servizio, è necessario abilitare l'accesso affidabile tra e le AWS organizzazioni. AWS CloudFormation StackSets AWS Per ulteriori informazioni, consulta Abilitare l'accesso affidabile con Stacksets. AWS CloudFormation
Argomenti
In che modo CloudFormation StackSets le azioni funzionano
Un'CloudFormationStackSetazione crea o aggiorna le risorse a seconda che venga eseguita per la prima volta.
L'CloudFormationStackSetazione crea o aggiorna lo stack set e distribuisce tali modifiche alle istanze specificate.
Nota
Se si utilizza questa azione per effettuare un aggiornamento che include l'aggiunta di istanze dello stack, le nuove istanze vengono distribuite per prime e l'aggiornamento viene completato per ultimo. Le nuove istanze ricevono prima la versione precedente, quindi l'aggiornamento viene applicato a tutte le istanze.
-
Crea: quando non viene specificata alcuna istanza e lo stack set non esiste, l'CloudFormationStackSetazione crea lo stack set senza creare alcuna istanza.
-
Aggiornamento: quando l'CloudFormationStackSetazione viene eseguita per uno stack set già creato, l'azione aggiorna lo stack set. Se non viene specificata alcuna istanza e lo stack set esiste già, tutte le istanze vengono aggiornate. Se questa azione viene utilizzata per aggiornare istanze specifiche, tutte le istanze rimanenti passano allo stato OBSOLETO.
È possibile utilizzare l'CloudFormationStackSetazione per aggiornare lo stack set nei seguenti modi.
-
Aggiorna il modello in alcune o tutte le istanze.
-
Aggiorna i parametri su alcune o tutte le istanze.
-
Aggiorna il ruolo di esecuzione per lo stack set (deve corrispondere al ruolo di esecuzione specificato nel ruolo Amministratore).
-
Cambia il modello delle autorizzazioni (solo se non è stata creata alcuna istanza).
-
Enable/Disable
AutoDeploymentse il modello di autorizzazioni dello stack set è.Service Managed -
Agisci come amministratore delegato in un account membro se il modello di autorizzazioni dello stack set è.
Service Managed -
Aggiorna il ruolo di amministratore.
-
Aggiorna la descrizione sullo stack set.
-
Aggiungi obiettivi di distribuzione all'aggiornamento dello stack set per creare nuove istanze dello stack.
-
L'CloudFormationStackInstancesazione crea nuove istanze di stack o aggiorna le istanze di stack obsolete. Un'istanza diventa obsoleta quando uno stack set viene aggiornato, ma non tutte le istanze al suo interno vengono aggiornate.
-
Crea: se lo stack esiste già, l'
CloudFormationStackInstancesazione aggiorna solo le istanze e non crea istanze dello stack. -
Aggiornamento: dopo l'esecuzione dell'
CloudFormationStackSetazione, se il modello o i parametri sono stati aggiornati solo in alcuni casi, il resto verrà contrassegnato.OUTDATEDNelle fasi successive della pipeline,CloudFormationStackInstancesaggiorna il resto delle istanze nello stack impostate in wave in modo che tutte le istanze siano contrassegnate.CURRENTQuesta azione può essere utilizzata anche per aggiungere istanze aggiuntive o sovrascrivere parametri su istanze nuove o esistenti.
Come parte di un aggiornamento, le CloudFormationStackInstances azioni CloudFormationStackSet and possono specificare nuovi obiettivi di distribuzione, creando nuove istanze di stack.
Come parte di un aggiornamento, le CloudFormationStackInstances azioni CloudFormationStackSet and non eliminano set di stack, istanze o risorse. Quando l'azione aggiorna uno stack ma non specifica tutte le istanze da aggiornare, le istanze che non sono state specificate per l'aggiornamento vengono rimosse dall'aggiornamento e impostate sullo stato di. OUTDATED
Durante una distribuzione, le istanze dello stack possono anche indicare OUTDATED se la distribuzione nelle istanze non è riuscita.
Come strutturare le azioni in una pipeline StackSets
Come best practice, dovresti costruire la pipeline in modo che lo stack set venga creato e inizialmente distribuito in un sottoinsieme o in una singola istanza. Dopo aver testato la distribuzione e visualizzato lo stack set generato, aggiungi l'CloudFormationStackInstancesazione in modo che le istanze rimanenti vengano create e aggiornate.
Usa la console o la CLI per creare la struttura della pipeline consigliata come segue:
-
Crea una pipeline con un'azione di origine (obbligatoria) e l'
CloudFormationStackSetazione come azione di distribuzione. Esegui la tua pipeline. -
Quando la pipeline viene eseguita per la prima volta, l'
CloudFormationStackSetazione crea lo stack set e almeno un'istanza iniziale. Verifica la creazione dello stack set ed esamina la distribuzione nell'istanza iniziale. Ad esempio, per la creazione iniziale dello stack set per l'account Account-A in cui sius-east-1trova la regione specificata, l'istanza dello stack viene creata con lo stack set:Istanza Stack Region Stato StackInstanceID-1 us-east-1 CURRENT -
Modifica la pipeline per aggiungerla
CloudFormationStackInstancescome seconda azione di distribuzione per create/update impilare le istanze per le destinazioni designate. Ad esempio, per la creazione di istanze di stack per l'accountAccount-Ain cui sono specificateeu-central-1le regionius-east-2e, vengono create le istanze di stack rimanenti e l'istanza iniziale rimane aggiornata come segue:Istanza Stack Region Stato StackInstanceID-1 us-east-1 CURRENT StackInstanceID-2 us-east-2 CURRENT StackInstanceID-3 eu-central-1 CURRENT -
Esegui la pipeline secondo necessità per aggiornare il set di stack e aggiornare o creare istanze di stack.
Quando avvii un aggiornamento dello stack in cui hai rimosso i target di distribuzione dalla configurazione dell'azione, le istanze dello stack non designate per l'aggiornamento vengono rimosse dalla distribuzione e passano allo stato OBSOLETO. Ad esempio, per l'aggiornamento delle istanze dello stack per l'account Account-A in cui la us-east-2 regione viene rimossa dalla configurazione dell'azione, vengono create le istanze dello stack rimanenti e l'istanza rimossa viene impostata su OUTDATED come segue:
| Istanza Stack | Region | Stato |
|---|---|---|
| StackInstanceID-1 | us-east-1 | CURRENT |
| StackInstanceID-2 | us-east-2 | OBSOLETO |
| StackInstanceID-3 | eu-central-1 | CURRENT |
Per ulteriori informazioni sulle best practice per l'implementazione di stack set, consulta Best practice for StackSets nella Guida per l'AWS CloudFormation utente.
L'operazione CloudFormationStackSet
Questa azione crea o aggiorna uno stack set a partire dal modello archiviato nella posizione di origine della pipeline.
Dopo aver definito uno stack set, è possibile creare, aggiornare o eliminare gli stack negli account e nelle regioni di destinazione specificati nei parametri di configurazione. Durante la creazione, l'aggiornamento e l'eliminazione degli stack, è possibile specificare altre preferenze, come l'ordine delle regioni in cui le operazioni devono essere eseguite, la percentuale di tolleranza agli errori oltre la quale le operazioni sullo stack si interrompono e il numero di account in cui le operazioni vengono eseguite contemporaneamente sugli stack.
Un set di stack è una risorsa di livello regionale. Se crei uno stack set in una AWS regione, non puoi accedervi da altre regioni.
Quando questa azione viene utilizzata come azione di aggiornamento dello stack set, gli aggiornamenti allo stack non sono consentiti senza una distribuzione in almeno un'istanza dello stack.
Argomenti
Tipo di operazione
-
Categoria:
Deploy -
Proprietario:
AWS -
Provider:
CloudFormationStackSet -
Versione:
1
Parametri di configurazione
- StackSetName
-
Obbligatorio: sì
Il nome da associare al set di stack. Questo nome deve essere univoco nella regione in cui viene creato.
Il nome può contenere solo caratteri alfanumerici e trattini. Deve iniziare con un carattere alfabetico e contenere al massimo 128 caratteri.
- Description
-
Obbligatorio: no
Una descrizione del set di stack. Puoi usarlo per descrivere lo scopo dello stack set o altre informazioni pertinenti.
- TemplatePath
-
Obbligatorio: sì
La posizione del modello che definisce le risorse nello stack set. Deve puntare a un modello con una dimensione massima di 460.800 byte.
Immettete il percorso del nome dell'elemento di origine e del file modello nel formato
"InputArtifactName::TemplateFileName", come mostrato nell'esempio seguente.SourceArtifact::template.txt - Parameters
-
Obbligatorio: no
Un elenco di parametri del modello per il set di stack che vengono aggiornati durante una distribuzione.
Puoi fornire i parametri come elenco letterale o percorso di file:
-
È possibile immettere i parametri nel seguente formato di sintassi abbreviata:.
ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=stringPer ulteriori informazioni su questi tipi di dati, vedere. Tipi di dati relativi ai parametri del modelloL'esempio seguente mostra un parametro denominato
BucketNamecon il valoreamzn-s3-demo-source-bucket.ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucketL'esempio seguente mostra una voce con più parametri:
ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true -
È possibile immettere la posizione del file contenente un elenco di sostituzioni dei parametri del modello immesse nel formato
"InputArtifactName::ParametersFileName", come mostrato nell'esempio seguente.SourceArtifact::parameters.txtL'esempio seguente mostra il contenuto del file per.
parameters.txt[ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
-
- Funzionalità
-
Obbligatorio: no
Indica che il modello può creare e aggiornare risorse, a seconda dei tipi di risorse nel modello.
È necessario utilizzare questa proprietà se sono presenti risorse IAM nel modello di stack o se si crea uno stack direttamente da un modello contenente macro. CloudFormation Affinché l'azione funzioni correttamente in questo modo, è necessario utilizzare una delle seguenti funzionalità:
-
CAPABILITY_IAM -
CAPABILITY_NAMED_IAM
È possibile specificare più di una funzionalità utilizzando una virgola e senza spazi tra le funzionalità. L'esempio riportato di Esempio CloudFormationStackSet configurazione dell'azione seguito mostra una voce con funzionalità multiple.
-
- PermissionModel
-
Obbligatorio: no
Determina come vengono creati e gestiti i ruoli IAM. Se il campo non è specificato, viene utilizzato quello predefinito. Per informazioni, consulta Modelli di autorizzazione per le operazioni di stack set.
I valori validi sono:
-
SELF_MANAGED(impostazione predefinita): è necessario creare ruoli di amministratore ed esecuzione da distribuire negli account di destinazione. -
SERVICE_MANAGED: crea CloudFormation StackSets automaticamente i ruoli IAM necessari per la distribuzione negli account gestiti dalle AWS organizzazioni. Ciò richiede che un account sia membro di un'organizzazione.
Nota
Questo parametro può essere modificato solo quando non esistono istanze di stack nello stack set.
-
- AdministrationRoleArn
-
Nota
Poiché CloudFormation StackSets esegue operazioni su più account, è necessario definire le autorizzazioni necessarie in tali account prima di poter creare lo stack set.
Obbligatorio: no
Nota
Questo parametro è facoltativo per il modello di autorizzazioni SELF_MANAGED e non viene utilizzato per il modello di autorizzazioni SERVICE_MANAGED.
L'ARN del ruolo IAM nell'account amministratore utilizzato per eseguire operazioni sugli stack set.
Il nome può contenere caratteri alfanumerici, uno dei seguenti caratteri: _+=, .@- e senza spazi. Il nome non fa distinzione tra maiuscole e minuscole. Questo nome di ruolo deve avere una lunghezza minima di 20 caratteri e una lunghezza massima di 2048 caratteri. I nomi dei ruoli devono essere univoci all'interno dell'account. Il nome di ruolo specificato qui deve essere un nome di ruolo esistente. Se non si specifica il nome del ruolo, viene impostato su AWSCloudFormationStackSetAdministrationRole. Se si specifica ServiceManaged, non è necessario definire un nome di ruolo.
- ExecutionRoleName
-
Nota
Poiché CloudFormation StackSets esegue operazioni su più account, è necessario definire le autorizzazioni necessarie in tali account prima di poter creare lo stack set.
Obbligatorio: no
Nota
Questo parametro è facoltativo per il modello di autorizzazioni SELF_MANAGED e non viene utilizzato per il modello di autorizzazioni SERVICE_MANAGED.
Il nome del ruolo IAM negli account di destinazione utilizzati per eseguire operazioni sugli stack set. Il nome può contenere caratteri alfanumerici, uno dei seguenti caratteri: _+=, .@- e senza spazi. Il nome non fa distinzione tra maiuscole e minuscole. Questo nome di ruolo deve avere una lunghezza minima di 1 carattere e una lunghezza massima di 64 caratteri. I nomi dei ruoli devono essere univoci all'interno dell'account. Il nome di ruolo specificato qui deve essere un nome di ruolo esistente. Non specificate questo ruolo se utilizzate ruoli di esecuzione personalizzati. Se non si specifica il nome del ruolo, viene impostato su
AWSCloudFormationStackSetExecutionRole. Se è impostato su Service_Managed true, non è necessario definire un nome di ruolo. - OrganizationsAutoDeployment
-
Obbligatorio: no
Nota
Questo parametro è facoltativo per il modello di autorizzazioni SERVICE_MANAGED e non viene utilizzato per il modello di autorizzazioni SELF_MANAGED.
Descrive se CloudFormation StackSets viene distribuito automaticamente agli account AWS delle organizzazioni aggiunti a un'organizzazione o unità organizzativa (OU) di destinazione. Se
OrganizationsAutoDeploymentè specificato, non specificareDeploymentTargetseRegions.Nota
Se non viene fornito alcun input
OrganizationsAutoDeployment, il valore predefinito èDisabled.I valori validi sono:
-
Enabled. Obbligatorio: No.StackSets distribuisce automaticamente istanze di stack aggiuntive agli account AWS delle organizzazioni che vengono aggiunti a un'organizzazione o unità organizzativa (OU) di destinazione nelle regioni specificate. Se un account viene rimosso da un'organizzazione o unità organizzativa di destinazione, CloudFormation StackSets elimina le istanze di stack dall'account nelle regioni specificate.
-
Disabled. Obbligatorio: No.StackSets non distribuisce automaticamente istanze di stack aggiuntive agli account delle AWS organizzazioni che vengono aggiunti a un'organizzazione o unità organizzativa (OU) di destinazione nelle regioni specificate.
-
EnabledWithStackRetention. Obbligatorio: No.Le risorse dello stack vengono conservate quando un account viene rimosso da un'organizzazione o unità organizzativa di destinazione.
-
- DeploymentTargets
-
Obbligatorio: no
Nota
Per il modello di autorizzazioni SERVICE_MANAGED, puoi fornire l'ID radice dell'organizzazione o gli ID delle unità organizzative per gli obiettivi di distribuzione. Per il modello di autorizzazioni SELF_MANAGED, puoi fornire solo account.
Nota
Quando questo parametro è selezionato, è necessario selezionare anche Regioni.
Un elenco di AWS account o ID di unità organizzative in cui devono trovarsi created/updated le istanze dello stack set.
-
Account:
Puoi fornire gli account come elenco letterale o percorso di file:
-
Letterale: immettete i parametri nel formato sintattico abbreviato
account_ID,account_ID, come mostrato nell'esempio seguente.111111222222,333333444444 -
Percorso del file: la posizione del file contenente un elenco di AWS account in cui devono essere collocate le istanze dello stack set created/updated, inserita nel formato.
InputArtifactName::AccountsFileNameSe si utilizza il percorso del file per specificare gli account o OrganizationalUnitIds, il formato del file deve essere in JSON, come mostrato nell'esempio seguente.SourceArtifact::accounts.txtL'esempio seguente mostra il contenuto del file per
accounts.txt.[ "111111222222" ]L'esempio seguente mostra il contenuto del file relativo
accounts.txtall'elenco di più account:[ "111111222222","333333444444" ]
-
-
OrganizationalUnitIds:
Nota
Questo parametro è facoltativo per il modello di autorizzazioni SERVICE_MANAGED e non viene utilizzato per il modello di autorizzazioni SELF_MANAGED. Non utilizzarlo se si seleziona. OrganizationsAutoDeployment
Le unità AWS organizzative in cui aggiornare le istanze di stack associate.
Puoi fornire gli ID delle unità organizzative come elenco letterale o percorso di file:
-
Letterale: inserisci una matrice di stringhe separate da virgole, come mostrato nell'esempio seguente.
ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222 -
Percorso del file: la posizione del file contenente un elenco OrganizationalUnitIds in cui creare o aggiornare le istanze di stack set. Se si utilizza il percorso del file per specificare gli account o OrganizationalUnitIds, il formato del file deve essere in JSON, come mostrato nell'esempio seguente.
Immettete un percorso per il file nel formato
InputArtifactName::OrganizationalUnitIdsFileName.SourceArtifact::OU-IDs.txtL'esempio seguente mostra il contenuto del file per
OU-IDs.txt:[ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
-
-
- Regioni
-
Obbligatorio: no
Nota
Quando questo parametro è selezionato, è necessario selezionare anche DeploymentTargets.
Un elenco di AWS regioni in cui vengono create o aggiornate le istanze degli stack set. Le regioni vengono aggiornate nell'ordine in cui sono state inserite.
Inserisci un elenco di AWS regioni valide nel formato
Region1,Region2, come mostrato nell'esempio seguente.us-west-2,us-east-1 - FailureTolerancePercentage
-
Obbligatorio: no
La percentuale di account per regione per i quali questa operazione di stack può fallire prima di CloudFormation interrompere l'operazione in quella regione. Se l'operazione viene interrotta in una regione, CloudFormation non tenta l'operazione nelle regioni successive. Quando si calcola il numero di account in base alla percentuale specificata, CloudFormation arrotonda per difetto al numero intero successivo.
- MaxConcurrentPercentage
-
Obbligatorio: no
La percentuale massima di account in cui eseguire questa operazione simultaneamente. Quando si calcola il numero di conti in base alla percentuale specificata, CloudFormation arrotonda per difetto al numero intero successivo. Se l'arrotondamento per difetto dà come risultato zero, CloudFormation imposta invece il numero come uno. Sebbene si utilizzi questa impostazione per specificare il valore massimo, per le distribuzioni di grandi dimensioni il numero effettivo di account utilizzati contemporaneamente potrebbe essere inferiore a causa della limitazione del servizio.
- RegionConcurrencyType
-
Obbligatorio: no
È possibile specificare se lo stack set deve essere distribuito in Regioni AWS sequenza o in parallelo configurando il parametro Region concurrency deployment. Quando si specifica la concorrenza regionale per distribuire stack su più stack Regioni AWS in parallelo, ciò può comportare tempi complessivi di distribuzione più rapidi.
-
Parallela: le implementazioni di stack set verranno eseguite contemporaneamente, a condizione che gli errori di distribuzione di una regione non superino una tolleranza di errore specificata.
-
Sequenziale: le distribuzioni degli stack set verranno eseguite una alla volta, a condizione che gli errori di distribuzione di una regione non superino una tolleranza di errore specificata. La distribuzione sequenziale è la selezione predefinita.
-
- ConcurrencyMode
-
Obbligatorio: no
La modalità di concorrenza consente di scegliere come si comporta il livello di concorrenza durante le operazioni sugli stack set, con una tolleranza agli errori rigorosa o morbida. La tolleranza rigorosa ai guasti riduce la velocità di implementazione quando si verificano errori nelle operazioni del set di stack, poiché la simultaneità diminuisce per ogni errore. Soft Failure Tolerance dà priorità alla velocità di implementazione sfruttando al contempo le funzionalità di sicurezza. CloudFormation
-
STRICT_FAILURE_TOLERANCE: Questa opzione riduce dinamicamente il livello di concorrenza per garantire che il numero di account falliti non superi mai una particolare tolleranza di errore. Questo è il comportamento che segue di default. -
SOFT_FAILURE_TOLERANCE: questa opzione separa la tolleranza agli errori dalla concorrenza effettiva. Ciò consente alle operazioni di stack set di essere eseguite a un determinato livello di concorrenza, indipendentemente dal numero di errori.
-
- CallAs
-
Obbligatorio: no
Nota
Questo parametro è facoltativo per il modello di
SERVICE_MANAGEDautorizzazioni e non viene utilizzato per ilSELF_MANAGEDmodello di autorizzazioni.Specifica se agisci nell'account di gestione dell'organizzazione o come amministratore delegato in un account membro.
Nota
Se questo parametro è impostato su
DELEGATED_ADMIN, assicurati che il ruolo IAM della pipeline disponga dell'autorizzazione.organizations:ListDelegatedAdministratorsAltrimenti, l'azione fallirà durante l'esecuzione con un errore simile al seguente:Account used is not a delegated administrator.-
SELF: La distribuzione di Stack set utilizzerà le autorizzazioni gestite dal servizio durante l'accesso all'account di gestione. -
DELEGATED_ADMIN: la distribuzione dello Stack set utilizzerà le autorizzazioni gestite dal servizio mentre si accede a un account di amministratore delegato.
-
Input artifact (Artefatti di input)
È necessario includere almeno un elemento di input che contenga il modello per lo stack set in un'azione. CloudFormationStackSet È possibile includere più elementi di input per gli elenchi di obiettivi di distribuzione, account e parametri.
-
Numero di artefatti:
1 to 3 -
Descrizione: Puoi includere artefatti per fornire:
-
Il file modello dello stack. Consulta il parametro
TemplatePath. -
Il file dei parametri. Consulta il parametro
Parameters. -
Il file degli account. Consulta il parametro
DeploymentTargets.
-
Artefatti di output
-
Numero di artefatti:
0 -
Descrizione: gli artefatti di output non si applicano a questo tipo di azione.
Variabili di output
Se si configura questa azione, vengono generate variabili a cui è possibile fare riferimento nella configurazione dell'azione di un'azione a valle nella pipeline. È possibile configurare un'azione con uno spazio dei nomi per rendere tali variabili disponibili per la configurazione delle azioni downstream.
-
StackSetId: L'ID dello stack set.
-
OperationId: L'ID dell'operazione dello stack set.
Per ulteriori informazioni, consulta Riferimento alle variabili.
Esempio CloudFormationStackSet configurazione dell'azione
Gli esempi seguenti mostrano la configurazione dell'CloudFormationStackSetazione.
Esempio del modello di autorizzazioni autogestite
L'esempio seguente mostra un'CloudFormationStackSetazione in cui l'obiettivo di distribuzione immesso è un AWS ID account.
Esempio del modello di autorizzazioni gestite dal servizio
L'esempio seguente mostra un'CloudFormationStackSetazione per il modello di autorizzazioni gestite dal servizio in cui l'opzione per la distribuzione automatica nelle organizzazioni è abilitata con la conservazione dello stack. AWS
L'azione CloudFormationStackInstances
Questa azione crea nuove istanze e distribuisce set di stack su istanze specificate. Un'istanza di stack è un riferimento a uno stack in un account target all'interno di una Regione. Un'istanza di stack può esistere senza uno stack; ad esempio, se la creazione dello stack non ha esito positivo, l'istanza dello stack mostra il motivo dell'errore di creazione dello stack. Un'istanza di stack è associata a un solo set di stack.
Dopo la creazione iniziale di uno stack set, è possibile aggiungere nuove istanze di stack utilizzandoCloudFormationStackInstances. I valori dei parametri del modello possono essere sovrascritti a livello di istanza di stack durante le operazioni di creazione o aggiornamento delle istanze dello stack set.
Ogni set di stack ha un modello e un set di parametri di modello. Quando si aggiornano il modello o i parametri del modello, li si aggiorna per l'intero set. Quindi tutti gli stati dell'istanza vengono impostati OUTDATED fino a quando le modifiche non vengono distribuite a quell'istanza.
Per sovrascrivere i valori dei parametri su istanze specifiche, ad esempio, se il modello contiene un parametro per stage con un valore diprod, puoi sostituire il valore di quel parametro con o. beta gamma
Argomenti
Tipo di operazione
-
Categoria:
Deploy -
Proprietario:
AWS -
Provider:
CloudFormationStackInstances -
Versione:
1
Parametri di configurazione
- StackSetName
-
Obbligatorio: sì
Il nome da associare al set di stack. Questo nome deve essere univoco nella regione in cui è stato creato.
Il nome può contenere solo caratteri alfanumerici e trattini. Deve iniziare con un carattere alfabetico e contenere al massimo 128 caratteri.
- DeploymentTargets
-
Obbligatorio: no
Nota
Per il modello di autorizzazioni SERVICE_MANAGED, è possibile fornire l'ID radice dell'organizzazione o gli ID delle unità organizzative per le destinazioni di distribuzione. Per il modello di autorizzazioni SELF_MANAGED, puoi fornire solo account.
Nota
Quando questo parametro è selezionato, è necessario selezionare anche Regioni.
Un elenco di AWS account o ID di unità organizzative in cui devono trovarsi created/updated le istanze dello stack set.
-
Account:
Puoi fornire gli account come elenco letterale o percorso di file:
-
Letterale: immettete i parametri nel formato sintattico abbreviato
account_ID,account_ID, come mostrato nell'esempio seguente.111111222222,333333444444 -
Percorso del file: la posizione del file contenente un elenco di AWS account in cui devono essere collocate le istanze dello stack set created/updated, inserita nel formato.
InputArtifactName::AccountsFileNameSe si utilizza il percorso del file per specificare gli account o OrganizationalUnitIds, il formato del file deve essere in JSON, come mostrato nell'esempio seguente.SourceArtifact::accounts.txtL'esempio seguente mostra il contenuto del file per
accounts.txt:[ "111111222222" ]L'esempio seguente mostra il contenuto del file relativo
accounts.txtall'elenco di più account:[ "111111222222","333333444444" ]
-
-
OrganizationalUnitIds:
Nota
Questo parametro è facoltativo per il modello di autorizzazioni SERVICE_MANAGED e non viene utilizzato per il modello di autorizzazioni SELF_MANAGED. Non utilizzarlo se si seleziona. OrganizationsAutoDeployment
Le unità AWS organizzative in cui aggiornare le istanze di stack associate.
È possibile fornire gli ID delle unità organizzative come elenco letterale o percorso di file.
-
Letterale: inserisci una matrice di stringhe separate da virgole, come mostrato nell'esempio seguente.
ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222 -
Percorso del file: la posizione del file contenente un elenco OrganizationalUnitIds in cui creare o aggiornare le istanze dello stack set. Se si utilizza il percorso del file per specificare gli account o OrganizationalUnitIds, il formato del file deve essere in JSON, come mostrato nell'esempio seguente.
Immettete un percorso per il file nel formato
InputArtifactName::OrganizationalUnitIdsFileName.SourceArtifact::OU-IDs.txtL'esempio seguente mostra il contenuto del file per
OU-IDs.txt:[ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
-
-
- Regioni
-
Obbligatorio: sì
Nota
Quando questo parametro è selezionato, è necessario selezionare anche DeploymentTargets.
Un elenco di AWS regioni in cui vengono create o aggiornate le istanze degli stack set. Le regioni vengono aggiornate nell'ordine in cui sono state inserite.
Inserisci un elenco di AWS regioni valide nel formato:
Region1,Region2, come mostrato nell'esempio seguente.us-west-2,us-east-1 - ParameterOverrides
-
Obbligatorio: no
Un elenco di parametri dello stack set che desiderate sovrascrivere nelle istanze di stack selezionate. I valori dei parametri sostituiti vengono applicati a tutte le istanze dello stack negli account e nelle regioni specificati.
Puoi fornire i parametri come elenco letterale o percorso di file:
-
È possibile immettere i parametri nel seguente formato di sintassi abbreviata:.
ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=stringPer ulteriori informazioni su questi tipi di dati, vedere. Tipi di dati relativi ai parametri del modelloL'esempio seguente mostra un parametro denominato
BucketNamecon il valoreamzn-s3-demo-source-bucket.ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucketL'esempio seguente mostra una voce con più parametri.
ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true -
È possibile immettere la posizione del file contenente un elenco di sostituzioni dei parametri del modello immesse nel formato
InputArtifactName::ParameterOverridesFileName, come mostrato nell'esempio seguente.SourceArtifact::parameter-overrides.txtL'esempio seguente mostra il contenuto del file per.
parameter-overrides.txt[ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
-
- FailureTolerancePercentage
-
Obbligatorio: no
La percentuale di account per regione per i quali questa operazione di stack può fallire prima di CloudFormation interrompere l'operazione in quella regione. Se l'operazione viene interrotta in una regione, CloudFormation non tenta l'operazione nelle regioni successive. Quando si calcola il numero di account in base alla percentuale specificata, CloudFormation arrotonda per difetto al numero intero successivo.
- MaxConcurrentPercentage
-
Obbligatorio: no
La percentuale massima di conti su cui eseguire questa operazione contemporaneamente. Quando si calcola il numero di conti in base alla percentuale specificata, viene CloudFormation arrotondato per difetto al numero intero successivo. Se l'arrotondamento per difetto dà come risultato zero, CloudFormation imposta invece il numero come uno. Sebbene sia stato specificato il valore massimo, per le distribuzioni di grandi dimensioni il numero effettivo di account utilizzati contemporaneamente potrebbe essere inferiore a causa della limitazione del servizio.
- RegionConcurrencyType
-
Obbligatorio: no
È possibile specificare se lo stack set deve essere distribuito in Regioni AWS sequenza o in parallelo configurando il parametro Region concurrency deployment. Quando si specifica la concorrenza regionale per distribuire stack su più stack Regioni AWS in parallelo, ciò può comportare tempi complessivi di distribuzione più rapidi.
-
Parallela: le implementazioni di stack set verranno eseguite contemporaneamente, a condizione che gli errori di distribuzione di una regione non superino una tolleranza di errore specificata.
-
Sequenziale: le distribuzioni degli stack set verranno eseguite una alla volta, a condizione che gli errori di distribuzione di una regione non superino una tolleranza di errore specificata. La distribuzione sequenziale è la selezione predefinita.
-
- ConcurrencyMode
-
Obbligatorio: no
La modalità di concorrenza consente di scegliere come si comporta il livello di concorrenza durante le operazioni sugli stack set, con una tolleranza agli errori rigorosa o morbida. La tolleranza rigorosa ai guasti riduce la velocità di implementazione quando si verificano errori nelle operazioni del set di stack, poiché la simultaneità diminuisce per ogni errore. Soft Failure Tolerance dà priorità alla velocità di implementazione sfruttando al contempo le funzionalità di sicurezza. CloudFormation
-
STRICT_FAILURE_TOLERANCE: Questa opzione riduce dinamicamente il livello di concorrenza per garantire che il numero di account falliti non superi mai una particolare tolleranza di errore. Questo è il comportamento che segue di default. -
SOFT_FAILURE_TOLERANCE: questa opzione separa la tolleranza agli errori dalla concorrenza effettiva. Ciò consente alle operazioni di stack set di essere eseguite a un determinato livello di concorrenza, indipendentemente dal numero di errori.
-
- CallAs
-
Obbligatorio: no
Nota
Questo parametro è facoltativo per il modello di
SERVICE_MANAGEDautorizzazioni e non viene utilizzato per ilSELF_MANAGEDmodello di autorizzazioni.Specifica se agisci nell'account di gestione dell'organizzazione o come amministratore delegato in un account membro.
Nota
Se questo parametro è impostato su
DELEGATED_ADMIN, assicurati che il ruolo IAM della pipeline disponga dell'autorizzazione.organizations:ListDelegatedAdministratorsAltrimenti, l'azione fallirà durante l'esecuzione con un errore simile al seguente:Account used is not a delegated administrator.-
SELF: La distribuzione di Stack set utilizzerà le autorizzazioni gestite dal servizio durante l'accesso all'account di gestione. -
DELEGATED_ADMIN: la distribuzione dello Stack set utilizzerà le autorizzazioni gestite dal servizio mentre si accede a un account di amministratore delegato.
-
Input artifact (Artefatti di input)
CloudFormationStackInstancespuò contenere artefatti che elencano gli obiettivi e i parametri di distribuzione.
-
Numero di artefatti:
0 to 2 -
Descrizione: come input, l'azione stack set accetta opzionalmente artefatti per i seguenti scopi:
-
Per fornire il file dei parametri da utilizzare. Consulta il parametro
ParameterOverrides. -
Fornire il file degli account di destinazione da utilizzare. Consulta il parametro
DeploymentTargets.
-
Artefatti di output
-
Numero di artefatti:
0 -
Descrizione: gli artefatti di output non si applicano a questo tipo di azione.
Variabili di output
Quando è configurata, questa azione produce variabili che possono essere referenziate dalla configurazione dell'azione di un'azione downstream nella pipeline. È possibile configurare un'azione con uno spazio dei nomi per rendere tali variabili disponibili per la configurazione delle azioni downstream.
-
StackSetId: L'ID dello stack set.
-
OperationId: L'ID dell'operazione dello stack set.
Per ulteriori informazioni, consulta Riferimento alle variabili.
Esempio di configurazione dell'operazione
Gli esempi seguenti mostrano la configurazione dell'CloudFormationStackInstancesazione.
Esempio del modello di autorizzazioni autogestite
L'esempio seguente mostra un'CloudFormationStackInstancesazione in cui l'obiettivo di distribuzione immesso è un ID. Account AWS 111111222222
Esempio del modello di autorizzazioni gestite dal servizio
L'esempio seguente mostra un'CloudFormationStackInstancesazione per il modello di autorizzazioni gestite dal servizio in cui l'obiettivo di distribuzione è l'ID dell'unità organizzativa dell'organizzazione. AWS ou-1111-1example
Autorizzazioni per i ruoli di servizio: azione CloudFormationStackSet
Per CloudFormation StackSets le azioni, sono richieste le seguenti autorizzazioni minime.
Per l'CloudFormationStackSetazione, aggiungi quanto segue alla tua dichiarazione sulla politica:
{ "Effect": "Allow", "Action": [ "cloudformation:CreateStackSet", "cloudformation:UpdateStackSet", "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStackSet", "cloudformation:ListStackInstances" ], "Resource": "resource_ARN" },
Autorizzazioni per i ruoli di servizio: azione CloudFormationStackInstances
Per l'CloudFormationStackInstancesazione, aggiungi quanto segue alla tua dichiarazione politica:
{ "Effect": "Allow", "Action": [ "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation" ], "Resource": "resource_ARN" },
Modelli di autorizzazione per le operazioni di stack set
Poiché CloudFormation StackSets esegue operazioni su più account, è necessario definire le autorizzazioni necessarie in tali account prima di poter creare lo stack set. È possibile definire le autorizzazioni tramite autorizzazioni autogestite o autorizzazioni gestite dal servizio.
Con le autorizzazioni autogestite, si creano i due ruoli IAM richiesti StackSets : un ruolo di amministratore, ad esempio nell'account AWSCloudFormationStackSetAdministrationRole in cui si definisce lo stack set e un ruolo di esecuzione, ad esempio AWSCloudFormationStackSetExecutionRole in ciascuno degli account in cui si distribuiscono le istanze dello stack set. Utilizzando questo modello di autorizzazioni, è StackSets possibile eseguire l'implementazione su qualsiasi AWS account in cui l'utente dispone delle autorizzazioni per creare un ruolo IAM. Per ulteriori informazioni, consulta Concessione di autorizzazioni autogestite nella Guida per l'utente. AWS CloudFormation
Nota
Poiché CloudFormation StackSets esegue operazioni su più account, è necessario definire le autorizzazioni necessarie in tali account prima di poter creare lo stack set.
Con le autorizzazioni gestite dal servizio, puoi distribuire istanze stack agli account gestiti dalle organizzazioni. AWS Utilizzando questo modello di autorizzazioni, non è necessario creare i ruoli IAM necessari perché StackSets crea i ruoli IAM per conto dell'utente. Con questo modello, puoi anche abilitare le distribuzioni automatiche agli account che verranno aggiunti all'organizzazione in futuro. Vedi Abilita l'accesso affidabile con AWS le organizzazioni nella Guida per l'AWS CloudFormation utente.
Tipi di dati relativi ai parametri del modello
I parametri del modello utilizzati nelle operazioni sugli stack set includono i seguenti tipi di dati. Per ulteriori informazioni, consulta DescribeStackSet.
- ParameterKey
-
-
Descrizione: la chiave associata al parametro. Se non specifichi una chiave e un valore per un particolare parametro, AWS CloudFormation utilizza il valore predefinito specificato nel modello.
-
Esempio:
"ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
-
- ParameterValue
-
-
Descrizione: il valore di input associato al parametro.
-
Esempio:
"ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
-
- UsePreviousValue
-
-
Durante un aggiornamento dello stack, utilizzate il valore del parametro esistente utilizzato dallo stack per una determinata chiave di parametro. Se specificate
true, non specificate un valore di parametro. -
Esempio:
"ParameterKey=Asset1,UsePreviousValue=true"
-
Ogni set di stack ha un modello e un set di parametri del modello. Quando si aggiornano il modello o i parametri del modello, li si aggiorna per l'intero set. Quindi tutti gli stati dell'istanza vengono impostati su OBSOLETO fino a quando le modifiche non vengono distribuite a quell'istanza.
Per sovrascrivere i valori dei parametri su istanze specifiche, ad esempio, se il modello contiene un parametro per stage con un valore diprod, puoi sovrascrivere il valore di quel parametro impostandolo su or. beta gamma
Consulta anche
Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.
-
Tipi di parametro: questo capitolo di riferimento della Guida per l'AWS CloudFormation utente fornisce ulteriori descrizioni ed esempi per i parametri del modello. CloudFormation
-
Procedure consigliate: per ulteriori informazioni sulle best practice per la distribuzione di stack set, consulta https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html la Guida per l'AWS CloudFormation utente.
-
AWS CloudFormation Riferimento API: puoi fare riferimento alle seguenti CloudFormation azioni nell'AWS CloudFormation API Reference per ulteriori informazioni sui parametri utilizzati nelle operazioni sugli stack set:
-
L'CreateStackSetazione crea uno stack set.
-
L'UpdateStackSetazione aggiorna lo stack set e le istanze di stack associate negli account e nelle regioni specificati. Anche se l'operazione dello stack set creata aggiornando lo stack set fallisce (completamente o parzialmente, al di sotto o al di sopra di una tolleranza di errore specificata), lo stack set viene aggiornato con queste modifiche. Le CreateStackInstances chiamate successive sullo stack set specificato utilizzano lo stack set aggiornato.
-
L'CreateStackInstancesazione crea un'istanza dello stack per tutte le regioni specificate all'interno di tutti gli account specificati su un modello di autorizzazione autogestito o all'interno di tutti gli obiettivi di distribuzione specificati su un modello di autorizzazione gestito dal servizio. È possibile sovrascrivere i parametri per le istanze create da questa azione. Se le istanze esistono già, CreateStackInstances chiamate UpdateStackInstances con gli stessi parametri di input. Quando si utilizza questa azione per creare istanze, non modifica lo stato delle altre istanze dello stack.
-
L'UpdateStackInstancesazione aggiorna le istanze dello stack con lo stack impostato per tutte le regioni specificate all'interno di tutti gli account specificati in un modello di autorizzazione autogestito o all'interno di tutti gli obiettivi di distribuzione specificati in un modello di autorizzazione gestito dal servizio. È possibile sovrascrivere i parametri per le istanze aggiornate da questa azione. Quando si utilizza questa azione per aggiornare un sottoinsieme di istanze, non modifica lo stato delle altre istanze dello stack.
-
L'DescribeStackSetOperationazione restituisce la descrizione dell'operazione di stack set specificata.
-
L'DescribeStackSetazione restituisce la descrizione dello stack set specificato.
-