AWS CDK Tutorial für AWS Cloud9 - AWS Cloud9

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, SNSAmazon-Preise und SQSAmazon-Preise.

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.

  1. Node Version Manager oder nvm , mit dem Sie Node.js später installieren können.

  2. 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.

  3. TypeScript, das für dieses Beispiel erforderlich ist. (Das bietet AWS CDK auch Unterstützung für mehrere andere Programmiersprachen.)

  4. Das AWS CDK.

Schritt 1.1: Node Version Manager installieren (nvm)

  1. 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) oder apt 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
  2. Prüfen Sie, ob nvm bereits installiert ist. Führen Sie zu diesem Zweck den Befehl nvm 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.

  3. 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 von nvm Hier gilt:aus.

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
  4. 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 von nvm enthält.

    . ~/.bashrc

Schritt 1.2: Installieren von Node.js

  1. Ü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 nodeBefehl mit der --versionOption 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.

  2. Installieren Sie Node.js 16, indem Sie den nvmBefehl mit der installAktion 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
  3. Fangen Sie an, Node.js 16 zu verwenden. Führen Sie dazu den Befehl nvm mit der Aktion alias , 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 Aktion use anstelle der Aktion alias ausführen (z.°B. nvm use 16.17.0). Die Aktion use bewirkt jedoch, dass diese Version von Node.js nur ausgeführt wird, während die aktuelle Terminalsitzung läuft.

  4. Um zu bestätigen, dass Sie Node.js 16 verwenden, führen Sie den node --versionBefehl erneut aus. Wenn die richtige Version installiert ist, enthält die Ausgabe Version v16.

Schritt 1.3: Installieren TypeScript

  1. Bestätigen Sie, ob Sie es bereits TypeScript installiert haben. Führen Sie dazu den TypeScript Befehlszeilen-Compiler mit der --versionOption 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.

  2. Installiere TypeScript. Führen Sie dazu den npmBefehl mit der installAktion, der -gOption und dem Namen des TypeScript Pakets aus. Dies wird TypeScript als globales Paket in der Umgebung installiert.

    npm install -g typescript
  3. Vergewissern Sie sich, dass TypeScript es installiert ist. Führen Sie dazu den TypeScript Befehlszeilen-Compiler mit der --versionOption aus.

    tsc --version

    Wenn installiert TypeScript ist, enthält die Ausgabe die TypeScript Versionsnummer.

Schritt 1.4: Installieren Sie das AWS CDK

  1. Bestätigen Sie, ob Sie das bereits AWS CDK installiert haben. Führen Sie dazu den cdkBefehl mit der --versionOption 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.

  2. Installieren Sie das, AWS CDK indem Sie den npmBefehl zusammen mit der install 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
  3. 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.

  1. 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.
  2. Richten Sie das Verzeichnis als TypeScript Sprachprojekt für das ein AWS CDK. Führen Sie dazu den Befehl cdk mit der Aktion init , der Vorlage sample-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 Datei hello-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 Datei hello-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, die npm nicht benötigt, wenn es den Code erstellt.

    • Eine Datei cdk.json, die Informationen enthält, um die Ausführung des Befehls cdk zu erleichtern.

    • Eine Datei package-lock.json, die Informationen enthält, die npm verwenden kann, um mögliche Build und Run Error zu reduzieren.

    • Eine Datei package.json, die Informationen enthält, um die Ausführung des npm -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, npmund die AWS CDK.

    • Eine Datei tsconfig.json, die Informationen enthält, um die Ausführung des tsc -Befehls zu vereinfachen und mit möglicherweise weniger Build und Run Errors.

  3. Ö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 Klassen StackApp, StackPropsQueue, 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.

  4. Ö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 Datei lib/hello-cdk-stack.ts, instanziiert sie und führt sie aus.

  5. Wird verwendet npm, um den TypeScript Compiler auszuführen, um nach Codierungsfehlern zu suchen, und um dann den AWS CDK zu aktivieren, um die bin/hello-cdk.js Projektdatei auszuführen. Führen Sie dazu aus dem Stammverzeichnis des Projekts den Befehl npm mit der Aktion run aus, indem Sie den Wert des Befehls build in der Datei package.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 und lib/hello-cdk-stack.d.ts Dateien hinzufügt. Die Compiler transpiliert außerdem die Dateien hello-cdk.ts und hello-cdk-stack.ts in die Dateien hello-cdk.js und hello-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.

  1. Lassen Sie sie die AWS CloudFormation Stack-Vorlage AWS CDK erstellen. Führen Sie dazu im Stammverzeichnis des Projekts den cdkBefehl mit der IDE synthAktion 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.

  2. 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 Aktion bootstrap 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
  3. 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 Aktion deploy 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 deployBefehl dann erneut aus. Weitere Informationen finden Sie unter AWS-Services Aus einer Umgebung anrufen in AWS Cloud9.

  4. 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 publishAmazon-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 SNS list-topicsAmazon-Befehl ausführen.

    aws sns list-topics --output table --query 'Topics[*].TopicArn'

    Wenn erfolgreich, zeigt die Ausgabe des Befehls publish den Wert MessageId für die veröffentlichte Nachricht an.

    Um die Warteschlange auf die empfangene Nachricht zu überprüfen, führen Sie den SQS receive-messageAmazon-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 SQS list-queuesAmazon-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 cdkBefehl mit der destroyAktion 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.