Hilf uns, das zu verbessernAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation, indem Sie Feedback mithilfe derFeedbackverlinken, oder erstellen Sie ein Issue oder Pull Request aufGitHub
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 der AWS Lambda-Funktion
Konfigurieren des SDKs
In derlibs
Verzeichnis erstellen Sie eine Datei mit dem NamensnsClient.js
undlambdaClient.js
und fügen Sie den Inhalt unten in sie ein.
const { SNSClient } = require("@aws-sdk/client-sns"); // Set the AWS Region. const REGION = "REGION"; // e.g. "us-east-1" // Create an Amazon Simple Notification Service client object. const snsClient = new SNSClient({region:REGION}); module.exports = { snsClient };
ErsetzenREGION
mit demAWSRegion : Dieser Code ist verfügbarhierGitHub
const { LambadaClient } = require( "@aws-sdk/client-lambda" ); // Set the AWS Region. const REGION = "eu-west-1"; // e.g. "us-east-1" // Create an Amazon Lambda service client object. const lambdaClient = new LambdaClient({region:REGION}); module.exports = { lambdaClient };
ErsetzenREGION
mit demAWSRegion : Dieser Code ist verfügbarhierGitHub
Importieren Sie zuerst das erforderlicheAWS SDK for JavaScript(v3) Module und Befehle. Berechnen Sie dann das heutige Datum und weisen Sie es einem Parameter zu. Erstellen Sie dann die Parameter für denScanCommand
.ErsetzenTABLE_NAME
mit dem Namen der Tabelle, die Sie imErstellen derAWSRessourcen Abschnitt dieses Beispiels.
Der folgende Codeausschnitt veranschaulicht diesen Schritt. (Das vollständige Beispiel finden Sie unter Bündeln der Lambda-Funktion.)
"use strict"; // Load the required clients and commands. const { ScanCommand } = require ( "@aws-sdk/client-dynamodb" ); const { PublishCommand } = require ( "@aws-sdk/client-sns" ); const {lambdaClient} = require ( "./libs/lambdaClient" ); const {snsClient} = require ( "./libs/snsClient" ); // Get today's date. const today = new Date(); const dd = String(today.getDate()).padStart(2, "0"); const mm = String(today.getMonth() + 1).padStart(2, "0"); //January is 0! const yyyy = today.getFullYear(); const date = yyyy + "-" + mm + "-" + dd; // Set the parameters for the ScanCommand method. const params = { // Specify which items in the results are returned. FilterExpression: "startDate = :topic", // Define the expression attribute value, which are substitutes for the values you want to compare. ExpressionAttributeValues: { ":topic": { S: date }, }, // Set the projection expression, which the the attributes that you want. ProjectionExpression: "firstName, phone", TableName: "TABLE_NAME", };
Scannen der DynamoDB-Tabelle
Erstellen Sie zuerst eine Async/await-Funktion namenssendText
So veröffentlichen Sie eine Textnachricht mit dem Amazon SNSPublishCommand
aus. Fügen Sie dann eine hinzutry
Blockmuster, das die DynamoDB-Tabelle nach Mitarbeitern mit ihrem Arbeitstag heute scannt und dann diesendText
Funktion, um diesen Mitarbeitern eine SMS zu senden. Wenn ein Fehler auftrittcatch
block heißt.
Der folgende Codeausschnitt veranschaulicht diesen Schritt. (Das vollständige Beispiel finden Sie unter Bündeln der Lambda-Funktion.)
exports.handler = async (event, context, callback) => { // Helper function to send message using Amazon SNS. async function sendText(textParams) { try { const data = await snsClient.send(new PublishCommand(textParams)); console.log("Message sent"); } catch (err) { console.log("Error, message not sent ", err); } } try { // Scan the table to check identify employees with work anniversary today. const data = await dynamoClient.send(new ScanCommand(params)); data.Items.forEach(function (element, index, array) { const textParams = { PhoneNumber: element.phone.N, Message: "Hi " + element.firstName.S + "; congratulations on your work anniversary!", }; // Send message using Amazon SNS. sendText(textParams); }); } catch (err) { console.log("Error, could not scan table ", err); } };
Bündeln der Lambda-Funktion
In diesem Thema wird beschrieben, wie man diemylambdafunction.ts
und das ErforderlicheAWS SDK for JavaScriptModule für dieses Beispiel in eine gebündelte Datei namensindex.js
aus.
Wenn Sie es noch nicht getan haben, folgen Sie derErforderliche Aufgabenfür dieses Beispiel, um Webpack zu installieren.
Anmerkung Weitere Informationen zuWebpack, finden Sie unterBündeln von Anwendungen mit Webpackaus.
Führen Sie in der Befehlszeile Folgendes aus, um dieJavaScriptfür dieses Beispiel in eine Datei namens
<index.js>
:webpack mylambdafunction.ts --mode development --target node --devtool false --output-library-target umd -o index.js
Wichtig Beachten Sie, dass die Ausgabe heißt
index.js
aus. Dies liegt daran, dass Lambda-Funktionen eine haben müssenindex.js
Handler zur Arbeit.Komprimiert die gebündelte Ausgabedatei,
index.js
, in eine ZIP-Datei namensmylambdafunction.zip
aus.Hochladen
mylambdafunction.zip
zu dem Amazon S3 S3-Bucket, den Sie imErstellen derAWSRessourcen Thema dieses Tutorials.