Erstellen derAWSRessourcen - AWS SDK for JavaScript

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS SDK for JavaScriptVersion 3 (V3).

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.

Erstellen derAWSRessourcen

Dieses Thema ist Teil eines Lernprogramms, das veranschaulicht, wie Sie eine Lambda Funktion mit demAWS SDK for JavaScriptaus. Um am Anfang des Tutorials zu beginnen, lesen Sie Erstellen und Verwenden von Lambda Funktionen.

Für dieses Tutorial gelten die folgenden Ressourcen.

  • Ein Amazon Cognito Identitätspool mit einer nicht authentifizierten Benutzerrolle.

  • Eine IAM-Richtlinie mit Berechtigungen für DynamoDB und Lambda ist der nicht authentifizierten Benutzerrolle zugeordnet.

  • Ein Amazon S3 Bucket zum Hosten der HTML- und Skriptseiten des Browsers sowie der Lambda Funktion.

Sie können diese Ressourcen manuell erstellen. Wir empfehlen jedoch, diese Ressourcen mithilfe derAWS Cloud Development Kit (CDK)(AWS CDK), wie in diesem Tutorial beschrieben.

Erstellen derAWS-Ressourcen mithilfe derAWS CloudFormation

AWS CloudFormation ermöglicht es Ihnen, die AWS-Infrastrukturen vorhersagbar und wiederholt zu erstellen und bereitzustellen. Weitere Informationen zuAWS CloudFormationfinden Sie im.AWS CloudFormationEntwicklerhandbuch.aus.

So erstellen Sie dasAWS CloudFormationStapel:

  1. Installieren und Konfigurieren der .AWS CLIGehen Sie entsprechend der Anleitung im.AWS CLI-Benutzerhandbuchaus.

  2. Erstellen Sie eine Datei namensdescribe-stack-resources.jsim Stammverzeichnis Ihres Projektordners.

  3. Erstellen Sie eine Datei namenssetup.yamlKopieren Sie den Inhalt im Stammverzeichnis Ihres Projektordners und kopieren Sie ihnauf GitHubhinein.

    Anmerkung

    DieAWS CloudFormation-Vorlage wurde mit derAWS CDKavailableauf GitHubaus. Weitere Informationen zum AWS CDK finden Sie im AWS Cloud Development Kit (CDK)Entwicklerhandbuch für.

  4. Führen Sie den folgenden Befehl über die Befehlszeile aus und ersetzen SieSTACK_NAME-Namen mit einem eindeutigen Namen für den Stack.

    Wichtig

    Der Stackname muss innerhalb einesAWSRegion undAWSKonto. Sie können bis zu 128 Zeichen angeben, und Zahlen und Bindestriche sind zulässig.

    aws cloudformation create-stack --stack-name STACK_NAME --template-body file://setup.yaml --capabilities CAPABILITY_IAM

    Weitere Informationen zucreate-stack-Befehlsparameter finden Sie unterAWS CLIBefehlsreferenz, und dieAWS CloudFormation-Benutzerhandbuchaus.

  5. Kopieren Sie den folgenden Code und fügen Sie ihn indescribe-stack-resources.jsaus.

    // Load the AWS SDK for Node.js const { CloudFormationClient, DescribeStackResourcesCommand, CreateStackCommand, DescribeStacksCommand } = require("@aws-sdk/client-cloudformation"); // Create S3 service object const cloudformation = new CloudFormationClient(); var params = { StackName: process.argv[2] } const getVariables = async () => { try { const data = await cloudformation.send( new DescribeStacksCommand({StackName: params.StackName})); console.log('Status: ', data.Stacks[0].StackStatus); if (data.Stacks[0].StackStatus == "CREATE_COMPLETE") { const data = await cloudformation.send( new DescribeStackResourcesCommand({StackName: params.StackName}) ); for (var i = 0; i < data.StackResources.length; i++) { var obj = data.StackResources[i].ResourceType; if (obj == "AWS::IAM::Policy") { const IDENTITY_POOL_ID = data.StackResources[i].LogicalResourceId; console.log("IDENTITY_POOL_ID:", IDENTITY_POOL_ID); var identity_pool_id = IDENTITY_POOL_ID; } if (obj == "AWS::S3::Bucket") { const BUCKET_NAME = data.StackResources[i].PhysicalResourceId; console.log("BUCKET_NAME:", BUCKET_NAME); var bucket = BUCKET_NAME; } if (obj == "AWS::IAM::Role") { const IAM_ROLE = data.StackResources[i].StackId; console.log("IAM_ROLE:", IAM_ROLE); var iam_role = IAM_ROLE; } } } else{ console.log('Stack not ready yet. Try again in a few minutes.') } }catch (err) { console.log("Error listing resources", err); } } ; getVariables();

    Dieser Code ist verfügbarauf GitHubaus.

  6. Führen Sie den folgenden Befehl über die Befehlszeile aus und ersetzen SieSTACK_NAME-Namen mit einem eindeutigen Namen für den Stack.

    node describe-stack-resources.js STACK_NAME

    Beachten Sie dieIAM_ROLE,IDENTITY_POOL_ID, undBUCKET_NAME, die in der Befehlszeile zurückgegeben werden, da Sie sie für dieses Tutorial benötigen.