AWS Cloud9 non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Cloud9 possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni
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à.
AWS CDK tutorial per AWS Cloud9
Questo tutorial mostra come utilizzarli AWS Cloud Development Kit (AWS CDK) in un ambiente di AWS Cloud9 sviluppo. AWS CDK Si tratta di un insieme di strumenti software e librerie che gli sviluppatori possono utilizzare per modellare i componenti AWS dell'infrastruttura sotto forma di codice.
AWS CDK Include la AWS Construct Library che è possibile utilizzare per risolvere rapidamente molte attività. AWS Ad esempio, è possibile utilizzare il costrutto Fleet per distribuire in modo sicuro e completo il codice a un parco di host. È possibile creare i propri costrutti per modellare vari elementi delle proprie architetture, condividerli con altri utenti o pubblicarli per la community. Per ulteriori informazioni, consulta la Guida per sviluppatori AWS Cloud Development Kit.
L'esecuzione di questo tutorial e la creazione di questo esempio potrebbero comportare addebiti sul tuo AWS
account. Questi includono eventuali costi per servizi come Amazon EC2, Amazon SNS e Amazon SQS. Per ulteriori informazioni, consulta EC2 i prezzi di Amazon, i prezzi
Argomenti
Prerequisiti
Prima di usare questo esempio, assicurati che la configurazione soddisfi i seguenti requisiti:
-
È necessario disporre di un ambiente di AWS Cloud9 EC2 sviluppo esistente. Questo esempio presuppone che tu disponga già di un EC2 ambiente connesso a un' EC2 istanza Amazon che esegue Amazon Linux o Ubuntu Server. Se disponi di un altro tipo di ambiente o sistema operativo, potrebbe essere necessario adattare le istruzioni di questo esempio per configurare gli strumenti correlati. Per ulteriori informazioni, consulta Creare un ambiente in AWS Cloud9.
-
L' AWS Cloud9 IDE per l'ambiente esistente è già aperto. Quando apri un ambiente, AWS Cloud9 apre l'IDE per quell'ambiente nel tuo browser web. Per ulteriori informazioni, consulta Aprire un ambiente in AWS Cloud9.
Fase 1: installare gli strumenti necessari
In questo passaggio, installate tutti gli strumenti dell'ambiente AWS CDK necessari per eseguire un esempio scritto nel linguaggio di TypeScript programmazione.
-
Node Version Manager o
nvm, che consentono di installare Node.js in un momento successivo. -
Node.js, che è richiesto dall'esempio e contiene Node Package Manager, oppure
npm, che viene utilizzato per l'installazione TypeScript e AWS CDK versioni successive. -
TypeScript, richiesto da questo esempio. (Fornisce AWS CDK inoltre supporto per diversi altri linguaggi di programmazione.)
Fase 1.1: installare Node Version Manager (nvm)
-
In una sessione terminale nell' AWS Cloud9 IDE, assicuratevi che siano installati gli ultimi aggiornamenti di sicurezza e le correzioni dei bug. A tale scopo, esegui il comando
yum update(per Amazon Linux) oapt update(per Ubuntu Server). Per avviare una nuova sessione del terminale, dalla barra dei menu scegli Window (Finestra), New Terminal (Nuovo terminale).Per Amazon Linux:
sudo yum -y updatePer Ubuntu Server:
sudo apt update -
Confermare se
nvmè già installato. A tale scopo, eseguire il comandonvmcon l'opzione--version.nvm --versionSe l'operazione è andata a buon fine, l'output contiene il numero di versione
nvmed è possibile passare a Fase 1.2: installare Node.js. -
Scaricare e installare
nvm. Per fare ciò, eseguire lo script di installazione. In questo esempio, v0.33.0 è installato, ma è possibile verificare la versione più recente dinvmqui. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash -
Iniziare a usare
nvm. È possibile chiudere la sessione del terminale per poi riavviarla oppure trovare il file~/.bashrcche contiene i comandi per caricarenvm.. ~/.bashrc
Fase 1.2: installare Node.js
-
Confermare se Node.js è già installato e, in caso affermativo, confermare che la versione installata è la 16.17.0 o superiore. Questo esempio è stato testato con Node.js 16.17.0. Per controllare, con la sessione del terminale ancora aperta nell'IDE, esegui il comando
nodecon l'opzione--version.node --versionSe Node.js è già installato, l'output includerà il numero di versione. Se il numero di versione è v16.17.0, passare a Passaggio 1.3: Installazione TypeScript.
-
Installa Node.js 16 eseguendo il
nvmcomando con l'installazione.Nota
Puoi anche
nvm install nodeeseguire l'installazione della versione LTS (Long-Term Support) di Node.js. AWS Cloud9 support tiene traccia della versione LTS di Node.js.nvm install v16 -
Inizia a usare Node.js 16. A tale scopo, eseguire il comando
nvmcon l'operazionealias, il numero di versione dell'alias e la versione da utilizzare per quell'alias, come descritto di seguito.nvm alias default 16Nota
Il comando precedente imposta Node.js 16 come versione predefinita di Node.js. In alternativa, è possibile eseguire il comando
nvmcon l'operazioneuseanziché l'operazionealias(ad esempio,nvm use 16.17.0). Tuttavia, l'operazioneusefa sì che quella versione di Node.js sia eseguita solo durante l'attuale sessione del terminale. -
Per confermare che stai usando Node.js 16, esegui nuovamente il
node --versioncomando. Se è installata la versione corretta, l'output contiene la versione v16.
Passaggio 1.3: Installazione TypeScript
-
Conferma se l'hai già TypeScript installato. Per fare ciò, con la sessione di terminale ancora aperta nell'IDE, esegui il TypeScript compilatore a riga di comando con l'
--versionopzione.tsc --versionSe l'avete TypeScript installato, l'output contiene il numero di TypeScript versione. Se TypeScript è installato, vai avanti aFase 1.4: Installare AWS CDK.
-
Installa TypeScript. A tale scopo, esegui il
npmcomando con l'installazione,-gl'opzione e il nome del TypeScript pacchetto. Si installa TypeScript come pacchetto globale nell'ambiente.npm install -g typescript -
Conferma che TypeScript sia installato. Per fare ciò, esegui il TypeScript compilatore a riga di comando con l'
--versionopzione.tsc --versionSe TypeScript è installato, l'output contiene il numero di TypeScript versione.
Fase 1.4: Installare AWS CDK
-
Conferma se hai già AWS CDK installato il file. A tale scopo, con la sessione del terminale ancora aperta nell'IDE, esegui il comando
cdkcon l'opzione--version.cdk --versionSe AWS CDK è installato, l'output contiene la AWS CDK versione e i numeri di build. Passare direttamente a Fase 2: aggiungere un codice.
-
Installalo AWS CDK eseguendo il
npmcomando insieme all'installazione, al nome del AWS CDK pacchetto da installare e all'-gopzione per installare il pacchetto a livello globale nell'ambiente.npm install -g aws-cdk -
Verificate che AWS CDK sia installato e che vi sia un riferimento corretto. A tale scopo, eseguire il comando
cdkcon l'opzione--version.cdk --versionIn caso di successo, vengono visualizzati i numeri di AWS CDK versione e build.
Fase 2: aggiungere un codice
In questo passaggio, crei un TypeScript progetto di esempio che contiene tutto il codice sorgente necessario per distribuire uno AWS CDK stack a livello di codice. AWS CloudFormation Questo stack crea un argomento Amazon SNS e una coda Amazon SQS nel AWS tuo account, quindi sottoscrive la coda all'argomento.
-
Con la sessione del terminale ancora aperta nell'IDE, crea una directory in cui salvare il codice sorgente del progetto, ad esempio una directory
~/environment/hello-cdknell'ambiente. Quindi passare a tale directory.rm -rf ~/environment/hello-cdk # Remove this directory if it already exists. mkdir ~/environment/hello-cdk # Create the directory. cd ~/environment/hello-cdk # Switch to the directory. -
Configura la directory come progetto linguistico per. TypeScript AWS CDK A tale scopo, esegui il comando
cdkcon l'operazioneinit, il modellosample-appe l'opzione--languageinsieme al nome del linguaggio di programmazione.cdk init sample-app --language typescriptCosì facendo, nella directory vengono creati i seguenti file e le seguenti sottodirectory.
-
Una sottodirectory
.gitnascosta e un file.gitignorenascosto, che rendono il progetto compatibile con gli strumenti di controllo del codice sorgente, ad esempio Git. -
Una sottodirectory
libche include un filehello-cdk-stack.ts. Questo file contiene il codice per il tuo AWS CDK stack. Questo codice è descritto nella fase successiva in questa procedura. -
Una sottodirectory
binche include un filehello-cdk.ts. Questo file contiene il punto di ingresso per AWS CDK l'app. -
Una sottodirectory
node_modulesche contiene pacchetti di codici di supporto, che l'app e lo stack possono utilizzare laddove necessari. -
Un file
.npmignorenascosto in cui sono elencati i tipi di sottodirectory e file di cuinpmnon necessita quando crea il codice. -
Un file
cdk.json, che contiene informazioni per semplificare l'esecuzione del comandocdk. -
Un file
package-lock.json, che contiene le informazioni chenpmpuò utilizzare per ridurre i possibile errori di creazione ed esecuzione. -
Un file
package.json, che contiene informazioni per semplificare l'esecuzione del comandonpm, riducendo al contempo a minimo gli errori di creazione ed esecuzione. -
Un
README.mdfile, che elenca i comandi utili con cui è possibile eseguirenpme il AWS CDK. -
Un file
tsconfig.json, che contiene informazioni per semplificare l'esecuzione del comandotsc, riducendo al contempo a minimo gli errori di creazione ed esecuzione.
-
-
Nella finestra Environment (Ambiente), aprire il file
lib/hello-cdk-stack.tse cercare il seguente codice in quel file.import sns = require('@aws-cdk/aws-sns'); import sqs = require('@aws-cdk/aws-sqs'); import cdk = require('@aws-cdk/cdk'); export class HelloCdkStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const queue = new sqs.Queue(this, 'HelloCdkQueue', { visibilityTimeoutSec: 300 }); const topic = new sns.Topic(this, 'HelloCdkTopic'); topic.subscribeQueue(queue); } }-
Le
TopicclassiStackApp,StackProps,Queue, e rappresentano rispettivamente uno AWS CloudFormation stack e le relative proprietà, un programma eseguibile, una coda Amazon SQS e un argomento Amazon SNS. -
La
HelloCdkStackclasse rappresenta lo AWS CloudFormation stack per questa applicazione. Questa pila contiene la nuova coda Amazon SQS e l'argomento Amazon SNS per questa applicazione.
-
-
Nella finestra Environment (Ambiente), aprire il file
bin/hello-cdk.tse cercare il seguente codice in quel file.#!/usr/bin/env node import cdk = require('@aws-cdk/cdk'); import { HelloCdkStack } from '../lib/hello-cdk-stack'; const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack'); app.run();Questo codice carica, crea un'istanza, quindi esegue la classe
HelloCdkStackdal filelib/hello-cdk-stack.ts. -
npmUtilizzatelo per eseguire il TypeScript compilatore per verificare la presenza di errori di codifica, quindi abilitatelo AWS CDK per eseguire il file del progetto.bin/hello-cdk.jsA tale scopo, dalla directory principale, esegui il comandonpmcon l'operazionerun, specificando il valore di comandobuildnel filepackage.json, come descritto di seguito.npm run buildIl comando precedente esegue il TypeScript compilatore, che aggiunge file e di supporto.
bin/hello-cdk.d.tslib/hello-cdk-stack.d.tsIl compilatore, inoltre, esegue il transpiling dei filehello-cdk.tsehello-cdk-stack.tsnei filehello-cdk.jsehello-cdk-stack.js.
Fase 3: eseguire il codice
In questo passaggio, si ordina di AWS CDK creare un modello di AWS CloudFormation stack basato sul codice contenuto nel file. bin/hello-cdk.js Quindi chiedi loro di AWS CDK distribuire lo stack, che crea l'argomento Amazon SNS e la coda Amazon SQS e quindi sottoscrive la coda all'argomento. Quindi confermi che l'argomento e la coda sono stati correttamente distribuiti inviando un messaggio dall'argomento alla coda.
-
AWS CDK Fai AWS CloudFormation in modo che crei il modello di stack. A tale scopo, con la sessione del terminale ancora aperta nell'IDE, dalla directory principale del progetto esegui il comando
cdkcon l'operazionesynthe il nome della pila.cdk synth HelloCdkStackIn caso di successo, l'output visualizza la sezione del modello di AWS CloudFormation
Resourcespila. -
La prima volta che distribuisci un' AWS CDK app in un ambiente per una combinazione specifica di AWS account e AWS regione, devi installare uno stack di bootstrap. Questo stack include varie risorse di cui AWS CDK ha bisogno per completare le varie operazioni. Ad esempio, questo stack include un bucket Amazon S3 che AWS CDK viene utilizzato per archiviare modelli e asset durante i processi di distribuzione. Per installare lo stack di bootstrap, eseguire il comando
cdksull'istanza con l'operazione dibootstrap.cdk bootstrapNota
Se esegui
cdk bootstrapsenza specificare alcuna opzione, vengono utilizzati l' AWS account e AWS la regione predefiniti. Puoi possibile eseguire il bootstrap di un ambiente specifico specificando un profilo e una combinazione di account/regione. Per esempio:cdk bootstrap --profile test 123456789012/us-east-1 -
Fai in modo che AWS CDK esegui il modello AWS CloudFormation dello stack per distribuire lo stack. A tale scopo, dalla directory principale del progetto eseguire il comando
cdkcon l'operazionedeploye il nome dello stack.cdk deploy HelloCdkStackSe l'operazione è andata a buon fine, l'output mostra che lo stack
HelloCdkStackè stato distribuito senza errori.Nota
Se l'output visualizza un messaggio che indica che lo stack non definisce un ambiente e che AWS le credenziali non possono essere ottenute da posizioni standard o non è stata configurata alcuna regione, assicuratevi che AWS le credenziali siano impostate correttamente nell'IDE, quindi eseguite nuovamente il comando.
cdk deployPer ulteriori informazioni, consulta Chiamata Servizi AWS da un ambiente in AWS Cloud9. -
Per confermare che l'argomento Amazon SNS e la coda Amazon SQS sono stati implementati correttamente, invia un messaggio all'argomento, quindi controlla se la coda ha ricevuto il messaggio. A tale scopo, è possibile utilizzare uno strumento come il AWS Command Line Interface (AWS CLI) o il. AWS CloudShell Per ulteriori informazioni su questi strumenti, consulta AWS CLI e tutorial aws-shell per AWS Cloud9.
Ad esempio, per inviare un messaggio all'argomento, con la sessione terminale ancora aperta nell'IDE, usa il AWS CLI
publishcomando Amazon SNS, fornendo l'oggetto e il corpo del messaggio, la AWS regione per l'argomento e l'Amazon Resource Name (ARN) dell'argomento.aws sns publish --subject "Hello from the AWS CDK" --message "This is a message from the AWS CDK." --topic-arn arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0KNel comando precedente, sostituite
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0Kcon l'ARN assegnato AWS CloudFormation all'argomento. Per ottenere l'ID, puoi eseguire il comandolist-topicsdi Amazon SNS.aws sns list-topics --output table --query 'Topics[*].TopicArn'Se l'operazione è andata a buon fine, l'output del comando
publishmostra il valoreMessageIdper il messaggio pubblicato.Per controllare la coda per il messaggio ricevuto, esegui il comando
receive-messagedi Amazon SQS, indicando l'URL della coda.aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0KNel comando precedente, sostituite
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0Kcon l'ARN assegnato AWS CloudFormation alla coda. Per ottenere l'URL, puoi eseguire il comandolist-queuesdi Amazon SQS.aws sqs list-queues --output table --query 'QueueUrls[*]'Se l'operazione è andata a buon fine, l'output del comando
receive-messagemostra le informazioni sul messaggio ricevuto.
Fase 4: pulizia
Per evitare addebiti continui sul tuo AWS account dopo aver finito di utilizzare questo esempio, dovresti eliminare lo stack. AWS CloudFormation Questo elimina l'argomento Amazon SNS e la coda Amazon SQS. È inoltre necessario eliminare l'ambiente.
Fase 4.1: eliminare la pila
Con la sessione del terminale ancora aperta nell'IDE, dalla directory principale del progetto esegui il comando cdk con l'operazione destroy e il nome della pila.
cdk destroy HelloCdkStack
Quando viene richiesto di eliminare lo stack, digita y, quindi premi Enter.
Se l'operazione è andata a buon fine, l'output mostra che lo stack HelloCdkStack è stato eliminato senza errori.
Fase 4.2: eliminare l'ambiente
Per eliminare l'ambiente, consulta Eliminazione di un ambiente in AWS Cloud9.