AWS Cloud9 ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS Cloud9 können den Service weiterhin wie gewohnt nutzen. Weitere Informationen
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS CDK Tutorial für AWS Cloud9
Dieses Tutorial zeigt Ihnen, wie Sie mit dem AWS Cloud Development Kit (AWS CDK) in einer AWS Cloud9 Entwicklungsumgebung arbeiten. Dabei AWS CDK handelt es sich um eine Reihe von Softwaretools und Bibliotheken, mit denen Entwickler AWS Infrastrukturkomponenten als Code modellieren können.
AWS CDK Dazu gehört die AWS Construct-Bibliothek, mit der Sie viele Aufgaben schnell lösen können AWS. Sie können beispielsweise das Konstrukt Fleet
verwenden, um Code vollständig und sicher auf einer Flotte von Hosts bereitzustellen. Sie können Ihre eigenen Konstrukte erstellen, um verschiedene Elemente Ihrer Architekturen zu modellieren, sie mit anderen zu teilen oder sie in der Community zu veröffentlichen. Weitere Informationen finden Sie im AWS Cloud Development Kit Entwicklerhandbuch.
Wenn Sie diesem Tutorial folgen und dieses Beispiel erstellen, kann dies zu Gebühren für Ihr AWS
Konto führen. Dazu gehören mögliche Gebühren für Dienste wie Amazon EC2SNS, Amazon und AmazonSQS. Weitere Informationen finden Sie unter EC2Amazon-Preise
Themen
Voraussetzungen
Bevor Sie dieses Beispiel verwenden, stellen Sie sicher, dass Ihre Einrichtung die folgenden Anforderungen erfüllt:
-
Sie müssen über eine bestehende AWS Cloud9 EC2 Entwicklungsumgebung verfügen. In diesem Beispiel wird davon ausgegangen, dass Sie bereits über eine EC2 Umgebung verfügen, die mit einer EC2 Amazon-Instance verbunden ist, auf der Amazon Linux ausgeführt wird, oder Ubuntu Server. Wenn Sie ein andere Art von Umgebung oder ein anderes Betriebssystem verwenden, müssen Sie die Anweisungen dieses Beispiels zum Einrichten zugehöriger Tools möglicherweise anpassen. Weitere Informationen finden Sie unter Schaffung einer Umgebung in AWS Cloud9.
-
Sie haben die AWS Cloud9 IDE für die bestehende Umgebung bereits geöffnet. Wenn Sie eine Umgebung AWS Cloud9 öffnen, wird die IDE für diese Umgebung in Ihrem Webbrowser geöffnet. Weitere Informationen finden Sie unter Öffnen einer Umgebung in AWS Cloud9.
Schritt 1: Installieren der erforderlichen Tools
In diesem Schritt installieren Sie alle Tools in Ihrer Umgebung, die für die Ausführung eines in der TypeScript Programmiersprache geschriebenen Beispiels AWS CDK erforderlich sind.
-
Node Version Manager oder
nvm
, mit dem Sie Node.js später installieren können. -
Node.js, das für das Beispiel erforderlich ist und Node Package Manager enthält, oder
npm
, das Sie für die Installation TypeScript und AWS CDK später verwenden. -
TypeScript, das für dieses Beispiel erforderlich ist. (Das bietet AWS CDK auch Unterstützung für mehrere andere Programmiersprachen.)
-
Das AWS CDK.
Schritt 1.1: Node Version Manager installieren (nvm)
-
Stellen Sie in einer Terminalsitzung in der sicher AWS Cloud9 IDE, dass die neuesten Sicherheitsupdates und Bugfixes installiert sind. Um dies zu tun, führen Sie den Befehl
yum update
(für Amazon Linux) oderapt update
(für Ubuntu Server) aus. (Um eine neue Terminalsitzung zu starten, wählen Sie in der Menüleiste Window (Fenster), New Terminal (Neues Terminal) aus.Für Amazon Linux:
sudo yum -y update
Für Ubuntu Server:
sudo apt update
-
Prüfen Sie, ob
nvm
bereits installiert ist. Führen Sie zu diesem Zweck den Befehlnvm
mit der Option--version
aus.nvm --version
Ist der Befehl erfolgreich, enthält die Ausgabe die
nvm
-Versionsnummer, und Sie können zur Schritt 1.2: Installieren von Node.js springen. -
Laden Sie
nvm
herunter und installieren Sie es. Führen Sie dazu das Installationsskript aus. In diesem Beispiel ist v0.33.0 installiert, Sie können jedoch nach der neuesten Version vonnvm
Hier gilt:aus. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
-
Beginnen Sie mit der Nutzung von
nvm
. Sie können die Terminalsitzung entweder schließen und dann neu starten oder die Datei~/.bashrc
auslesen, die die Befehle zum Laden vonnvm
enthält.. ~/.bashrc
Schritt 1.2: Installieren von Node.js
-
Überprüfen Sie, ob Sie Node.js bereits installiert haben, und wenn ja, ob die installierte Version 16.17.0 oder höher ist. Dieses Beispiel wurde mit Node.js 16.17.0 getestet. Um dies zu überprüfen, führen Sie den
node
Befehl mit der--version
Option ausIDE, während die Terminalsitzung noch geöffnet ist.node --version
Wenn Sie Node.js installiert haben, enthält die Ausgabe die Versionsnummer. Wenn die Versionsnummer v16.17.0 ist, fahren Sie mit Schritt 1.3: Installieren TypeScript fort.
-
Installieren Sie Node.js 16, indem Sie den
nvm
Befehl mit derinstall
Aktion ausführen.Anmerkung
Sie können auch ausführen
nvm install node
, um die Long-Term-Support-Version (LTS) von Node.js zu installieren. AWS Cloud9 Support verfolgt die LTS Version von Node.js.nvm install v16
-
Fangen Sie an, Node.js 16 zu verwenden. Führen Sie dazu den Befehl
nvm
mit der Aktionalias
, der Versionsnummer des Alias und der Version, die für diesen Alias verwendet werden soll, wie folgt aus.nvm alias default 16
Anmerkung
Mit dem vorherigen Befehl wird Node.js 16 als Standardversion von Node.js festgelegt. Alternativ können Sie den Befehl
nvm
zusammen mit der Aktionuse
anstelle der Aktionalias
ausführen (z.°B.nvm use 16.17.0
). Die Aktionuse
bewirkt jedoch, dass diese Version von Node.js nur ausgeführt wird, während die aktuelle Terminalsitzung läuft. -
Um zu bestätigen, dass Sie Node.js 16 verwenden, führen Sie den
node --version
Befehl erneut aus. Wenn die richtige Version installiert ist, enthält die Ausgabe Version v16.
Schritt 1.3: Installieren TypeScript
-
Bestätigen Sie, ob Sie es bereits TypeScript installiert haben. Führen Sie dazu den TypeScript Befehlszeilen-Compiler mit der
--version
Option ausIDE, während die Terminalsitzung noch geöffnet ist.tsc --version
Wenn Sie es TypeScript installiert haben, enthält die Ausgabe die TypeScript Versionsnummer. Falls installiert TypeScript ist, fahren Sie mit fortSchritt 1.4: Installieren Sie das AWS CDK.
-
Installiere TypeScript. Führen Sie dazu den
npm
Befehl mit derinstall
Aktion, der-g
Option und dem Namen des TypeScript Pakets aus. Dies wird TypeScript als globales Paket in der Umgebung installiert.npm install -g typescript
-
Vergewissern Sie sich, dass TypeScript es installiert ist. Führen Sie dazu den TypeScript Befehlszeilen-Compiler mit der
--version
Option aus.tsc --version
Wenn installiert TypeScript ist, enthält die Ausgabe die TypeScript Versionsnummer.
Schritt 1.4: Installieren Sie das AWS CDK
-
Bestätigen Sie, ob Sie das bereits AWS CDK installiert haben. Führen Sie dazu den
cdk
Befehl mit der--version
Option ausIDE, während die Terminalsitzung noch geöffnet ist.cdk --version
Wenn der installiert AWS CDK ist, enthält die Ausgabe die AWS CDK Versions- und Buildnummern. Fahren Sie mit Schritt 2: Code hinzufügen fort.
-
Installieren Sie das, AWS CDK indem Sie den
npm
Befehl zusammen mit derinstall
Aktion, dem Namen des zu installierenden AWS CDK Pakets und der-g
Option zur globalen Installation des Pakets in der Umgebung ausführen.npm install -g aws-cdk
-
Stellen Sie sicher, dass das installiert AWS CDK ist und korrekt referenziert wird. Führen Sie zu diesem Zweck den Befehl
cdk
mit der Option--version
aus.cdk --version
Bei Erfolg werden die AWS CDK Versions- und Buildnummern angezeigt.
Schritt 2: Code hinzufügen
In diesem Schritt erstellen Sie ein TypeScript Beispielprojekt, das den gesamten Quellcode enthält, den Sie für die AWS CDK programmgesteuerte Bereitstellung eines AWS CloudFormation Stacks benötigen. Dieser Stapel erstellt ein SNS Amazon-Thema und eine SQS Amazon-Warteschlange in Ihrem AWS Konto und abonniert dann die Warteschlange für das Thema.
-
Wenn die Terminalsitzung noch geöffnet istIDE, erstellen Sie ein Verzeichnis, in dem der Quellcode des Projekts gespeichert wird, z. B. ein
~/environment/hello-cdk
Verzeichnis in Ihrer Umgebung. Wechseln Sie dann in dieses Verzeichnis.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.
-
Richten Sie das Verzeichnis als TypeScript Sprachprojekt für das ein AWS CDK. Führen Sie dazu den Befehl
cdk
mit der Aktioninit
, der Vorlagesample-app
und der Option--language
zusammen mit dem Namen der Programmiersprache aus.cdk init sample-app --language typescript
Dadurch werden die folgenden Dateien und Unterverzeichnisse im Verzeichnis erstellt.
-
Ein verborgenes Unterverzeichnis
.git
und eine verborgene Datei.gitignore
, die das Projekt kompatibel mit Quellcode-Tools wie Git machen. -
Ein Unterverzeichnis
lib
, das eine Dateihello-cdk-stack.ts
enthält. Diese Datei enthält den Code für Ihren AWS CDK Stack. Dieser Code wird im nächsten Schritt beschrieben. -
Ein Unterverzeichnis
bin
, das eine Dateihello-cdk.ts
enthält. Diese Datei enthält den Einstiegspunkt für Ihre AWS CDK App. -
Ein Unterverzeichnis
node_modules
, das unterstützende Codepakete enthält, die die App und der Stack bei Bedarf verwenden können. -
Eine versteckte Datei
.npmignore
, die die Arten von Unterverzeichnissen und Dateien auflistet, dienpm
nicht benötigt, wenn es den Code erstellt. -
Eine Datei
cdk.json
, die Informationen enthält, um die Ausführung des Befehlscdk
zu erleichtern. -
Eine Datei
package-lock.json
, die Informationen enthält, dienpm
verwenden kann, um mögliche Build und Run Error zu reduzieren. -
Eine Datei
package.json
, die Informationen enthält, um die Ausführung desnpm
-Befehls zu vereinfachen und mit möglicherweise weniger Build und Run Errors. -
Eine
README.md
Datei, die nützliche Befehle auflistet, mit denen Sie sie ausführen können,npm
und die AWS CDK. -
Eine Datei
tsconfig.json
, die Informationen enthält, um die Ausführung destsc
-Befehls zu vereinfachen und mit möglicherweise weniger Build und Run Errors.
-
-
Öffnen Sie im Fenster Environment (Umgebung) die Datei
lib/hello-cdk-stack.ts
und durchsuchen Sie den folgenden Code in dieser Datei.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); } }
-
Die
Topic
KlassenStack
App
,StackProps
Queue
, und stehen jeweils für einen AWS CloudFormation Stack und seine Eigenschaften, ein ausführbares Programm, eine SQS Amazon-Warteschlange und ein SNS Amazon-Thema. -
Die
HelloCdkStack
Klasse stellt den AWS CloudFormation Stack für diese Anwendung dar. Dieser Stapel enthält die neue SQS Amazon-Warteschlange und SNS das Amazon-Thema für diese Anwendung.
-
-
Öffnen Sie im Fenster Environment (Umgebung) die Datei
bin/hello-cdk.ts
und durchsuchen Sie den folgenden Code in dieser Datei.#!/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();
Dieser Code lädt die Klasse
HelloCdkStack
aus der Dateilib/hello-cdk-stack.ts
, instanziiert sie und führt sie aus. -
Wird verwendet
npm
, um den TypeScript Compiler auszuführen, um nach Codierungsfehlern zu suchen, und um dann den AWS CDK zu aktivieren, um diebin/hello-cdk.js
Projektdatei auszuführen. Führen Sie dazu aus dem Stammverzeichnis des Projekts den Befehlnpm
mit der Aktionrun
aus, indem Sie den Wert des Befehlsbuild
in der Dateipackage.json
wie folgt angeben.npm run build
Mit dem vorherigen Befehl wird der TypeScript Compiler ausgeführt, der unterstützende Dateien
bin/hello-cdk.d.ts
undlib/hello-cdk-stack.d.ts
Dateien hinzufügt. Die Compiler transpiliert außerdem die Dateienhello-cdk.ts
undhello-cdk-stack.ts
in die Dateienhello-cdk.js
undhello-cdk-stack.js
.
Schritt 3: Führen Sie den Code aus
In diesem Schritt weisen Sie die an, eine AWS CloudFormation Stack-Vorlage auf der Grundlage des Codes in der bin/hello-cdk.js
Datei AWS CDK zu erstellen. Anschließend weisen Sie die AWS CDK an, den Stack bereitzustellen, der das SNS Amazon-Thema und die SQS Amazon-Warteschlange erstellt und dann die Warteschlange für das Thema abonniert. Sie bestätigen dann, dass das Thema und die Warteschlange erfolgreich bereitgestellt wurden, indem Sie eine Nachricht vom Thema an die Warteschlange senden.
-
Lassen Sie sie die AWS CloudFormation Stack-Vorlage AWS CDK erstellen. Führen Sie dazu im Stammverzeichnis des Projekts den
cdk
Befehl mit der IDEsynth
Aktion und dem Namen des Stacks aus, während die Terminalsitzung noch geöffnet ist.cdk synth HelloCdkStack
Bei Erfolg wird in der Ausgabe der
Resources
Abschnitt der AWS CloudFormation Stack-Vorlage angezeigt. -
Wenn Sie eine AWS CDK App zum ersten Mal in einer Umgebung für eine bestimmte Kombination aus AWS Konto und AWS Region bereitstellen, müssen Sie einen Bootstrap-Stack installieren. Dieser Stack enthält verschiedene Ressourcen, die er AWS CDK benötigt, um die verschiedenen Operationen abzuschließen. Dieser Stack umfasst beispielsweise einen Amazon S3 S3-Bucket, in AWS CDK dem Vorlagen und Ressourcen während der Bereitstellungsprozesse gespeichert werden. Um den Bootstrap-Stack zu installieren, führen Sie den Befehl
cdk
mit der Aktionbootstrap
aus.cdk bootstrap
Anmerkung
Wenn Sie
cdk bootstrap
ohne Angabe von Optionen ausführen, werden das AWS Standardkonto und die AWS Region verwendet. Sie können auch eine bestimmte Umgebung bootstrappen, indem Sie eine Kombination aus Profil und Konto und Region angeben. Beispielsweise:cdk bootstrap --profile test 123456789012/us-east-1
-
Lassen Sie sie die AWS CloudFormation Stack-Vorlage AWS CDK ausführen, um den Stack bereitzustellen. Führen Sie dazu aus dem Stammverzeichnis des Projekts den Befehl
cdk
mit der Aktiondeploy
und dem Namen des Stacks aus.cdk deploy HelloCdkStack
Bei Erfolg zeigt die Ausgabe an, dass der
HelloCdkStack
-Stack fehlerfrei bereitgestellt wurde.Anmerkung
Wenn in der Ausgabe eine Meldung angezeigt wird, dass der Stack keine Umgebung definiert und dass AWS Anmeldeinformationen nicht von Standardspeicherorten abgerufen werden konnten oder keine Region konfiguriert wurde, stellen Sie sicher, dass Ihre AWS Anmeldeinformationen in der korrekt festgelegt sindIDE, und führen Sie den
cdk deploy
Befehl dann erneut aus. Weitere Informationen finden Sie unter AWS-Services Aus einer Umgebung anrufen in AWS Cloud9. -
Um zu überprüfen, ob das SNS Amazon-Thema und die SQS Amazon-Warteschlange erfolgreich bereitgestellt wurden, senden Sie eine Nachricht an das Thema und überprüfen Sie dann die Warteschlange auf die empfangene Nachricht. Dazu können Sie ein Tool wie das AWS Command Line Interface (AWS CLI) oder das verwenden AWS CloudShell. Weitere Informationen zu diesen Tools finden Sie unter AWS CLI und AWS-Shell-Tutorial für AWS Cloud9.
Um beispielsweise eine Nachricht an das Thema zu senden, während die Terminalsitzung noch geöffnet istIDE, verwenden Sie den, AWS CLI um den SNS
publish
Amazon-Befehl auszuführen und dabei den Betreff und den Hauptteil der Nachricht, die AWS Region für das Thema und den Amazon-Ressourcennamen (ARN) des Themas anzugeben.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-8BCD9EFGHIJ0K
Ersetzen Sie den Befehl im vorherigen Befehl
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
durch den BefehlARN, der dem Thema AWS CloudFormation zugewiesen ist. Um die ID zu erhalten, können Sie den SNSlist-topics
Amazon-Befehl ausführen.aws sns list-topics --output table --query 'Topics[*].TopicArn'
Wenn erfolgreich, zeigt die Ausgabe des Befehls
publish
den WertMessageId
für die veröffentlichte Nachricht an.Um die Warteschlange auf die empfangene Nachricht zu überprüfen, führen Sie den SQS
receive-message
Amazon-Befehl aus und geben Sie die Warteschlange anURL.aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
Ersetzen Sie den Befehl im vorherigen Befehl
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
durch den BefehlARN, der der Warteschlange AWS CloudFormation zugewiesen ist. Um das zu erhaltenURL, können Sie den SQSlist-queues
Amazon-Befehl ausführen.aws sqs list-queues --output table --query 'QueueUrls[*]'
Wenn erfolgreich, zeigt die Ausgabe des Befehls
receive-message
Informationen über die empfangene Nachricht an.
Schritt 4: Bereinigen
Um zu verhindern, dass Ihr AWS Konto weiterhin belastet wird, nachdem Sie dieses Beispiel nicht mehr verwendet haben, sollten Sie den AWS CloudFormation Stapel löschen. Dadurch werden das SNS Amazon-Thema und die SQS Amazon-Warteschlange gelöscht. Sie sollten die Umgebung ebenfalls löschen.
Schritt 4.1: Löschen des Stacks
Wenn die Terminalsitzung noch geöffnet istIDE, führen Sie im Stammverzeichnis des Projekts den cdk
Befehl mit der destroy
Aktion und dem Namen des Stacks aus.
cdk destroy HelloCdkStack
Wenn Sie aufgefordert werden, den Stapel zu löschen, geben Sie y
ein, und drücken Sie dann die Eingabetaste Enter
.
Bei Erfolg zeigt die Ausgabe an, dass der HelloCdkStack
-Stack fehlerfrei gelöscht wurde.
Schritt 4.2: Löschen der Umgebung
Informationen zum Löschen der Umgebung finden Sie unter Löschen einer Umgebung in AWS Cloud9.