Erstellen derAWSRessourcen - AWS SDK for JavaScript

Hilf uns, das zu verbessernAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation, indem Sie Feedback mithilfe derFeedbackverlinken, oder erstellen Sie ein Issue oder Pull Request aufGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-APIbeschreibt ausführlich alle API-Operationen für denAWS 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 Tutorials, das zeigt, wie Sie eine Lambda-Funktion mit derAWS SDK for JavaScriptaus. Um am Anfang des Tutorials zu beginnen, lesen Sie Erstellen und Verwenden von Lambda-Funktionen.

Für dieses Tutorial sind die folgenden Ressourcen erforderlich.

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

  • Eine IAM-Richtlinie mit Berechtigungen für DynamoDB und Lambda ist an die nicht authentifizierte Benutzerrolle angehängt.

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

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

Erstellen derAWSRessourcen, die denAWS CloudFormation

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

So erstellen Sie dasAWS CloudFormationstapeln:

  1. Installieren und Konfigurieren der .AWS CLIFolgen Sie den Anweisungen im.AWS CLI-Benutzerhandbuchaus.

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

  3. Erstellen Sie eine Datei namenssetup.yamlKopieren Sie im Stammverzeichnis Ihres Projektordners den InhaltHier gilt:GitHubhinein.

    Anmerkung

    DieAWS CloudFormationVorlage wurde mit demAWS CDKverfügbarHier gilt:GitHubaus. Weitere Informationen zum AWS CDK finden Sie im AWS Cloud Development Kit (AWS CDK)Entwicklerhandbuch für.

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

    Wichtig

    Der Stack-Name 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 über diecreate-stackBefehlsparameter finden Sie imAWS CLIReferenzhandbuch für Befehle, und dasAWS CloudFormation-Benutzerhandbuchaus.

  5. Kopieren Sie den folgenden Code und fügen Sie ihn ein.describe-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ügbarHier gilt:GitHubaus.

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

    node describe-stack-resources.js STACK_NAME

    Notieren Sie den.IAM_ROLE,IDENTITY_POOL_ID, undBUCKET_NAMEin der Befehlszeile zurückgegeben, da Sie sie für dieses Tutorial benötigen.