View a markdown version of this page

CloudFormation Server linguistico - AWS CloudFormation

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 Server linguistico

Il AWS CloudFormation Language Server consente CloudFormation di scrivere modelli in un editor. Durante la digitazione, suggerisce i tipi e le proprietà delle risorse, mostra la documentazione, trova gli errori, consente di passare rapidamente alle definizioni e offre correzioni per alcuni problemi. Utilizza il Language Server Protocol (LSP), che consente al server di lavorare con diversi editor. L'avvio e l'utilizzo del Language Server per queste funzionalità di creazione locali non richiedono credenziali or. Account AWS AWS

Le integrazioni del AWS Toolkit utilizzano anche il Language Server per i flussi di lavoro online che chiamano i servizi. AWS Questi flussi di lavoro possono sfogliare risorse e stack. Possono anche eseguire la convalida dei modelli lato servizio, distribuire modelli, mostrare le differenze tra i set di modifiche e monitorare gli eventi dello stack. Questi flussi di lavoro online sono le uniche funzionalità che richiedono credenziali attive e valide. Account AWS AWS

IDE che si integrano con il Language Server CloudFormation

AWS fornisce un'integrazione pronta all'uso con il CloudFormation Language Server tramite il AWS Toolkit per i seguenti IDE:

I seguenti IDE supportano anche il Language Server: CloudFormation

  • Kiro

  • Cursore

  • La maggior parte dei fork e delle distribuzioni di VS Code

Per Visual Studio Code e JetBrains IDE, installa il AWS Toolkit. Il Toolkit include e avvia il Language Server, quindi non è necessario scaricare il server separatamente.

Per un altro editor che supporti LSP, scaricate il file per il vostro computer dall'ultima release in poi GitHub, estraetelo e configurate l'editor per eseguire il seguente comando:

node /path/to/install-location/cfn-lsp-server-standalone.js --stdio

Per Node.js le versioni supportate, i download disponibili, la verifica dei file e gli esempi di configurazione per i diversi editor, consultate la guida all'installazione autonoma.

Nozioni di base

I passaggi seguenti mostrano come utilizzare il Language Server tramite il AWS Toolkit per Visual Studio Code e IDE. JetBrains Per un altro editor, segui l'esempio di configurazione nella guida all'installazione autonoma.

Prerequisiti

Prima di iniziare, assicurati di quanto segue:

  • Stai utilizzando un IDE supportato sumacOS,Windows, oLinux.

  • Per Visual Studio Code o un JetBrains IDE, installa o aggiorna il AWS Toolkit.

  • Per un altro editor, installa una Node.js versione supportata e scarica il file Language Server per il tuo computer. La guida all'installazione autonoma elenca le versioni e i file supportati.

Non sono necessarie AWS credenziali Account AWS or per avviare il Language Server o utilizzare le sue funzionalità locali di creazione e verifica dei modelli. Configura AWS credenziali valide nel Toolkit solo quando utilizzi flussi di lavoro online che esplorano risorse o stack, chiamano il servizio o distribuiscono un modello. CloudFormation

Passaggio 1: installa o aggiorna AWS Kit di strumenti

Installa o aggiorna alla versione più recente del AWS Toolkit dal gestore delle estensioni o dei plugin del tuo IDE, quindi riavvia l'IDE.

Dopo l'installazione, il AWS Toolkit abilita automaticamente il supporto CloudFormation IDE. Quando si installa o si aggiorna il AWS Toolkit per la prima volta con il CloudFormation Language Server, viene richiesto di concedere l'autorizzazione AWS per la raccolta di dati di utilizzo anonimi. Questi dati aiutano a AWS migliorare il CloudFormation Language Server e a migliorare l'esperienza di creazione. Non viene raccolta alcuna informazione sensibile e AWS non registra o archivia il contenuto dei modelli, le configurazioni delle risorse o i dati identificabili dei clienti. È possibile modificare le preferenze di telemetria in qualsiasi momento dalle impostazioni IDE. Riavviate l'IDE per rendere effettive le modifiche. I dati di utilizzo raccolti si concentrano solo sulle interazioni tra funzionalità e sulle metriche delle prestazioni. Queste informazioni aiutano a AWS identificare e assegnare priorità a miglioramenti come una convalida più rapida, un completamento automatico migliorato e una migliore diagnostica degli errori.

Fase 2: Accesso in CloudFormation AWS Kit di strumenti

Dopo aver installato il AWS Toolkit, apri il CloudFormation pannello nel tuo IDE. In VS Code, apri il pannello AWS Toolkit dalla barra delle attività e scegli CLOUDFORMATION. Negli JetBrains IDE, apri la finestra AWS degli strumenti Toolkit dalla barra laterale e seleziona la scheda. CloudFormation

Il CloudFormation pannello contiene le seguenti sezioni:

  • Regione: visualizza la corrente Regione AWS. In VS Code, è possibile modificarlo selezionando il nome della regione o utilizzando il comando AWS CloudFormation: Seleziona regione dalla palette dei comandi. Negli JetBrains IDE, la regione è configurata tramite le impostazioni di connessione del AWS Toolkit.

  • Stack: mostra un elenco suddiviso in pagine degli CloudFormation stack presenti nel tuo account. Espandi uno stack per visualizzare il relativo nodo Change Sets, che elenca i set di modifiche associati a quello stack. Usa l'azione Visualizza i dettagli dello stack per aprire la vista dei dettagli dello stack, che mostra la panoramica dello stack, gli eventi, gli output e le risorse.

  • Risorse: dopo aver aggiunto un tipo di risorsa, il pannello mostra le AWS risorse di quel tipo nel tuo account. Puoi visualizzarle, aggiornarle, copiarle o importarle nel tuo modello.

Negli JetBrains IDE, la barra degli strumenti sopra l'albero fornisce un rapido accesso alle azioni più comuni, tra cui Convalida e distribuzione, Riesecuzione, convalida e distribuzione, Aggiungi tipo di risorsa e Aggiorna. Le azioni sono disponibili anche facendo clic con il pulsante destro del mouse sui nodi dell'albero.

Fase 3: Convalida, testa e perfeziona il modello

Mentre scrivete il CloudFormation modello, il CloudFormation Language Server viene eseguito in background e fornisce assistenza per la creazione locale senza credenziali: AWS

  • Completamento del codice: suggerisce tipi di risorse, parametri e proprietà in base CloudFormation agli schemi.

  • Estrai in parametro: quando il cursore si trova su un valore letterale in un modello (ad esempio, una stringa similet2.micro), l'IDE offre un'azione di refactoring per estrarre il valore nella Parameters sezione e sostituire il valore letterale con un valore nel nuovo parametro. !Ref Se lo stesso valore letterale appare in più posizioni, puoi scegliere di estrarre tutte le occorrenze contemporaneamente.

Il Toolkit fornisce anche un flusso di lavoro online per aggiungere AWS risorse esistenti al modello. Questo flusso di lavoro richiede AWS credenziali valide e utilizza AWS Cloud Control API (CCAPI) per recuperare la configurazione e le proprietà attive di una risorsa, aiutandoti a clonare o riutilizzare l'infrastruttura esistente all'interno del modello.

Per aggiungere risorse al modello

  • Aggiungere un tipo di risorsa: nel CloudFormation pannello AWS Toolkit, in Risorse, aggiungi un tipo di risorsa da sfogliare. In VS Code, fai clic sull'icona Aggiungi + o usa il comando AWS CloudFormation: Aggiungi tipi di risorse dalla palette dei comandi. In JetBrains, fai clic sul pulsante Aggiungi tipo di risorsa nella barra degli strumenti o fai clic con il pulsante destro del mouse sul nodo Risorse.

  • Cerca un tipo di risorsa: nella finestra di dialogo di ricerca, digita il tipo di AWS risorsa che desideri aggiungere. Esempio:

    • AWS::S3::Bucket

    • AWS::Lambda::Function

  • Sfoglia le risorse: nella sezione Risorse, viene visualizzato un elenco suddiviso in pagine AWS delle risorse rilevate nel tuo account. Se hai molte risorse, viene mostrata solo la prima pagina. Usa i controlli di navigazione per spostarti tra le pagine aggiuntive e visualizzare tutte le risorse disponibili.

  • Scegli la risorsa che desideri includere nel modello.

  • Puoi inserire una risorsa nel modello in due modi, a seconda del tuo obiettivo:

    • Clona una risorsa esistente: crea una nuova risorsa nel modello utilizzando la configurazione attiva e le proprietà di una AWS risorsa esistente.

    • Importa una risorsa esistente: inserisci la risorsa effettiva nel tuo stack aggiungendola al modello utilizzando il suo stato attivo.

Suggerimenti

  • Puoi aggiornare la sezione Risorse in qualsiasi momento per visualizzare l'elenco più recente delle risorse disponibili nel tuo account o nella tua regione.

  • Se stai importando risorse, non aggiungere una risorsa che appartiene già a uno CloudFormation stack esistente nello stesso account.

  • Per confermare se una risorsa è già gestita da CloudFormation, utilizza l'azione informativa accanto alla risorsa. In VS Code, fai clic sull'icona i. Negli JetBrains IDE, fai clic con il pulsante destro del mouse sulla risorsa e scegli Ottieni informazioni sulla gestione dello stack.

In VS Code, esegui il comando AWS CloudFormation: Aggiungi risorse correlate per tipo dalla palette dei comandi. Seleziona un tipo di risorsa tra quelli già definiti nel tuo modello. L'IDE elenca i tipi di risorse a cui il tipo selezionato può fare riferimento tramite le sue proprietà. Ad esempio, se si seleziona unAWS::EC2::Instance, l'IDE può suggerire AWS::EC2::SecurityGroup oAWS::EC2::Subnet. Seleziona uno o più tipi di risorse correlate, quindi scegli se creare nuove definizioni di risorse o importare risorse esistenti. Questa funzionalità non è attualmente supportata negli JetBrains IDE.

Convalida statica

Il CloudFormation Language Server fornisce una convalida statica integrata basata su e. CloudFormation Linter CloudFormation Guard Questi controlli vengono eseguiti localmente dietro le quinte e non richiedono AWS credenziali. Ti aiutano a identificare errori di sintassi, lacune di conformità e problemi relativi alle best practice prima dell'implementazione.

Panoramica sulla convalida statica

Vedrai due tipi di convalide statiche in tempo reale nell'IDE:

  • CloudFormation Linter (cfn-lint): convalida il modello rispetto alle specifiche CloudFormation delle risorse e alle regole dello schema.

  • Guard (cfn-guard): convalida il modello rispetto alle regole di conformità e ai pacchetti di politiche organizzative.

CloudFormation Linter (cfn-lint)

Il CloudFormation Linter è integrato nell'IDE per controllare automaticamente la sintassi e la struttura del modello durante la digitazione.

  • Convalida dello schema: rileva gli errori di sintassi e schema per garantire che i modelli siano conformi allo schema delle risorse. CloudFormation

  • Evidenziazione degli errori: visualizza gli indicatori in linea in caso di problemi, che rappresentano blocchi o avvisi di distribuzione.

  • Guida al passaggio del mouse: quando passi il mouse su un errore, l'IDE mostra il messaggio di diagnostica associato a quel problema. Se è disponibile una soluzione rapida, viene offerta anche questa.

Integrazione con Guard

Guard convalida i tuoi modelli rispetto ai set di regole che definiscono le politiche di conformità e sicurezza. L'IDE esegue le convalide Guard in tempo reale tramite il CloudFormation Language Server, fornendoti un feedback immediato durante la creazione dei modelli.

  • Pacchetti di regole predefiniti: l'IDE include un set preregistrato di regole Guard incentrate sulle migliori pratiche fondamentali per la sicurezza delle risorse e l'igiene della configurazione. Per saperne di più, consulta il registro delle regole di guardia.

  • Aggiungere pacchetti di regole: per aggiungere o modificare i set di regole, apri le impostazioni IDE e vai alla sezione di configurazione Guard per selezionare o caricare pacchetti di regole Guard aggiuntivi.

Suggerimenti: comprensione degli indicatori diagnostici

  • Indicatori blu: suggerimenti sulle migliori pratiche o consigli di ottimizzazione.

  • Indicatori gialli: avvisi per problemi non bloccanti (ad esempio, tag o parametri mancanti).

  • Indicatori rossi: elementi che bloccano l'implementazione, ad esempio nomi di proprietà non validi, campi obbligatori mancanti o mancata corrispondenza dello schema.

Fase 4: Naviga nel modello

L'IDE fornisce una vista strutturata e gerarchica del CloudFormation modello, organizzata in sezioni comeParameters,, e Resources OutputsMappings, che mostrano ogni tipo di risorsa e ID logico. Ciò semplifica l'individuazione e la navigazione rapida verso risorse o parametri specifici all'interno di modelli di grandi dimensioni. In VS Code, il pannello Outline nella barra laterale di Explorer mostra questa struttura. Negli JetBrains IDE, apri la finestra dello strumento Structure per visualizzare la struttura del modello per il file attualmente aperto.

È possibile utilizzare Go to Definition per funzioni intrinseche come GetAtt andRef, che consentono di passare direttamente alla risorsa o al parametro di riferimento nel modello. Ciò consente di tracciare le dipendenze, comprendere le relazioni tra le risorse e apportare modifiche in modo più efficiente.

Fase 5: convalida e distribuzione

Validate and Deploy è un flusso di lavoro online che richiama il CloudFormation servizio e richiede credenziali valide. AWS Quando sei pronto per distribuire il modello, utilizza questa funzionalità per creare un set di modifiche. L'IDE convalida il modello e, se non viene rilevato alcun errore di blocco, procede alla creazione di un set di modifiche compatibile con la deriva. L'IDE mostra quindi una visualizzazione delle differenze in modo da poter esaminare tutte le modifiche proposte prima di eseguire il set di modifiche.

In VS Code, apri la palette dei comandi ed esegui AWS CloudFormation: Validate and Deploy. La palette di comandi ti guida passo dopo passo nella selezione di un modello, del nome dello stack, dei parametri, delle funzionalità e di altre opzioni di distribuzione. Negli JetBrains IDE, utilizzate il pulsante della barra degli strumenti Validate and Deploy, fate clic con il pulsante destro del mouse su un file modello nell'editor o fate clic con il pulsante destro del mouse su una pila nell'albero. JetBrains presenta una finestra di dialogo guidata in cui è possibile configurare tutte le opzioni di distribuzione, tra cui la selezione del modello, il nome dello stack, i parametri, le funzionalità, i tag e le opzioni avanzate.

Come funziona la convalida

L'IDE esegue automaticamente un controllo di convalida prima della distribuzione e convalida il modello rispetto alle cause di errore più comuni, tra cui:

  • Sintassi delle proprietà o mancata corrispondenza dello schema: questi problemi vengono in genere rilevati cfn-lint durante la creazione, ma se si procede alla distribuzione senza risolverli, la convalida CloudFormation del momento della distribuzione fa emergere gli stessi errori prima che lo stack venga creato o aggiornato.

  • Il nome della risorsa è in conflitto con le risorse esistenti nell'account.

  • Service-specific vincoli, ad esempio conflitti tra i nomi dei bucket S3 o crittografia mancante.

Se la convalida rileva errori, l'IDE evidenzia i problemi direttamente nel modello ed elenca gli errori nel pannello di diagnostica. Ogni problema include la proprietà o la risorsa specifica che ha causato l'errore, insieme a una soluzione suggerita. Se non ci sono errori di blocco, puoi procedere alla fase di distribuzione.

Se vengono rilevati avvisi (problemi non bloccanti), viene visualizzata una finestra di dialogo che consente di procedere con la distribuzione o annullare e apportare correzioni.

L'IDE apre un set di modifiche compatibile con la deriva che mostra eventuali differenze tra il modello corrente e la configurazione dello stack distribuito. Ciò consente di rivedere, confermare o annullare il set di modifiche prima dell'esecuzione. L'annullamento della distribuzione comporta l'eliminazione del set di modifiche.

Drift-aware i set di modifiche migliorano il processo CloudFormation di distribuzione consentendo di gestire lo stack drift in modo sicuro. Lo stack drift si verifica quando lo stato effettivo delle risorse è diverso da quello definito nel CloudFormation modello, spesso a causa di modifiche manuali apportate tramite CLI o Console di gestione AWS SDK. CloudFormation I set di modifiche sensibili alla deriva confrontano la configurazione dello stack elaborato con lo stato delle risorse in tempo reale e l'IDE evidenzia queste differenze in modo da poter riportare le risorse alla conformità prima della distribuzione.

Visualizzare gli eventi dello stack

All'avvio della distribuzione, puoi monitorare i progressi in tempo reale dal pannello. CloudFormation In Stack Events, viene visualizzato un elenco delle operazioni eseguite durante la distribuzione. Ogni evento include dettagli come:

  • Timestamp: l'ora in cui si è verificato l'evento

  • Risorsa: la AWS risorsa specifica che viene creata, aggiornata o eliminata

  • Stato: lo stato corrente dell'operazione (ad esempioCREATE_IN_PROGRESS,UPDATE_COMPLETE, oROLLBACK_IN_PROGRESS)

  • Motivo: messaggi di errore o di contesto aggiuntivi, se applicabile

Puoi anche visualizzare le risorse e gli output dello stack da questo pannello. La vista Stack Events ti aiuta a tenere traccia dei progressi dell'implementazione, identificare potenziali problemi e confermare se lo stack è stato completato con successo.

Inizializzazione di un CloudFormation progetto nell'IDE (solo VS Code)

L'inizializzazione di un CloudFormation progetto nell'IDE consente di configurare uno spazio di lavoro strutturato con le cartelle e la configurazione dell'ambiente corrette per la convalida e la distribuzione lato servizio. Questi flussi di lavoro online richiedono AWS credenziali, ma le funzionalità di creazione e convalida statica locali del Language Server no. È possibile inizializzare un nuovo CloudFormation progetto direttamente dall'IDE per creare questa configurazione consigliata. Questa funzionalità è attualmente disponibile solo in VS Code e non è supportata negli JetBrains IDE.

Per inizializzare un CloudFormation progetto:

  • Aprire la palette dei comandi

    • Da VS Code, apri la palette dei comandi (Ctrl+Shift+Po Cmd+Shift+P attivamacOS).

    • Scegli AWS CloudFormation: CFN Init: Initialize Project.

  • Scegli una cartella del progetto

    • Per impostazione predefinita, l'IDE utilizza la directory di lavoro corrente.

    • Puoi modificare questo percorso in qualsiasi cartella in cui desideri archiviare i tuoi CloudFormation modelli.

  • Seleziona il tuo profilo di AWS credenziali

    • Ti viene richiesto di scegliere un profilo di AWS credenziali. Il profilo selezionato viene utilizzato per il rilevamento dell'ambiente, la convalida lato servizio e la distribuzione.

  • Configura il tuo ambiente

    • Ti viene richiesto di creare o selezionare un ambiente.

    • Gli ambienti definiscono dove e come i modelli vengono distribuiti o convalidati (ad esempio, sviluppo, beta o produzione). Puoi usare AWS CloudFormation: CFN Init: Add Environment per selezionare o modificare il tuo ambiente.

    • Puoi usare AWS CloudFormation: CFN Init: Remove Environment per rimuovere l'ambiente che hai selezionato.

  • (Opzionale) Importa i file dei parametri

    • Se avete già dei file di parametri esistenti, l'IDE consente di importarli durante l'inizializzazione.

    • L'IDE rileva automaticamente i file compatibili e li collega al progetto per utilizzarli nella convalida e nella distribuzione dei modelli.

  • Assegna un nome e finalizza il progetto

    • Fornisci un nome per il progetto, ad esempio beta-environment, e completa la configurazione.

    • L'IDE crea automaticamente la struttura iniziale del progetto e il file di configurazione.

È possibile eseguire convalide, visualizzare in anteprima le distribuzioni o passare da un ambiente all'altro direttamente dall'IDE.

Open source

Il CloudFormation Language Server è open source ai sensi della Apache-2.0 licenza e offre ai clienti la massima trasparenza su come vengono eseguite la diagnostica dei modelli, la convalida degli schemi e l'analisi statica. Ciò riduce i problemi di sicurezza e conformità per i clienti che richiedono visibilità a livello di sorgente prima di adottare gli strumenti.

La base di codice è disponibile al pubblico su:. GitHub https://github.com/aws-cloudformation/cloudformation-languageserver/

Serve aiuto?

Prova la CloudFormation community su AWS re:Post.