DynamoDB के साथ एकीकरण
सर्वररहित एप्लिकेशन में उच्च-प्रदर्शन, स्केलेबल डेटा भंडारण और प्राप्ति के लिए Lambda फ़ंक्शन को Amazon DynamoDB, पूरी तरह प्रबंधित NoSQL डेटाबेस, से जोड़ें
DynamoDB के साथ एकीकरण, CoddyKit पर सर्वररहित AWS Lambda विकास का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह सर्वररहित AWS Lambda विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। सर्वररहित AWS Lambda विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Lambda और DynamoDB का मेल
स्वागत है! इस पाठ में हम सर्वररहित AWS Lambda की शक्ति को Amazon DynamoDB से जोड़ेंगे, जो एक अत्यंत तेज़ और लचीला NoSQL डेटाबेस है।
सर्वर या डेटाबेस अवसंरचना प्रबंधित किए बिना विस्तार योग्य, उच्च-प्रदर्शन वाले एप्लिकेशन बनाने के लिए यह संयोजन बिल्कुल उपयुक्त है।
DynamoDB: संक्षेप में NoSQL
Amazon DynamoDB पूरी तरह प्रबंधित, सर्वररहित NoSQL डेटाबेस है। पारंपरिक SQL डेटाबेस के विपरीत, यह कुंजी-मान और दस्तावेज़ डेटा मॉडल का उपयोग करता है।
- तालिकाएँ: SQL तालिकाओं के समान, लेकिन इनमें आइटम होते हैं।
- आइटम: SQL की पंक्तियों जैसे, लेकिन इनमें अलग-अलग विशेषताएँ हो सकती हैं।
- विशेषताएँ: कॉलम जैसी, लेकिन लचीली (कोई निश्चित स्कीमा नहीं)।
- प्राथमिक कुंजी: हर आइटम की विशिष्ट पहचान करती है। यह साधारण विभाजन कुंजी या संयोजित विभाजन कुंजी + क्रमबद्ध कुंजी हो सकती है।
अपनी DynamoDB तालिका सेट करना
Lambda के DynamoDB के साथ काम करने से पहले आपको एक तालिका की आवश्यकता होगी। आप AWS Management Console में इसे आसानी से बना सकते हैं।
बनाते समय आप एक प्राथमिक कुंजी निर्धारित करेंगे। उदाहरण के लिए, साधारण खोज के लिए id विशेषता को विभाजन कुंजी बनाना सामान्य है।
Lambda को DynamoDB की पहुँच देना
आपके Lambda फ़ंक्शन को DynamoDB से संपर्क करने के लिए अनुमति चाहिए। इसका प्रबंधन आपके Lambda फ़ंक्शन से जुड़ी IAM भूमिका के माध्यम से किया जाता है।
सुरक्षित और सूक्ष्म स्तर की पहुँच के लिए आपको विशिष्ट तालिकाओं पर dynamodb:PutItem, dynamodb:GetItem आदि जैसी नीतियाँ देनी होंगी। सीखने की सरलता के लिए शुरुआत में AmazonDynamoDBFullAccess का उपयोग किया जा सकता है, लेकिन उत्पादन परिवेश में हमेशा न्यूनतम आवश्यक विशेषाधिकार को प्राथमिकता दें।
डेटा लिखना: PutItem कार्रवाई
PutItem कार्रवाई का उपयोग तालिका में नया आइटम जोड़ने या समान प्राथमिक कुंजी वाला आइटम पहले से मौजूद होने पर उसे बदलने के लिए किया जाता है।
आइटम जोड़ने का तरीका देखने के लिए इस उदाहरण को चलाकर देखें। स्थानीय निष्पादन के लिए हम एक नकली AWS SDK का उपयोग कर रहे हैं।
// MOCK AWS SDK for local runnable example
const mockDynamoDB = {
DocumentClient: function() {
return {
put: (params) => ({
promise: () => {
console.log("MOCK: Put item to table '" + params.TableName + "':", params.Item);
return Promise.resolve({ success: true, item: params.Item });
}
})
};
}
};
// Simulate the Lambda handler function
async function handler(event) {
const ddb = new mockDynamoDB.DocumentClient();
const params = {
TableName: "MyUsersTable", // Replace with your table name
Item: {
id: event.userId,
name: event.userName,
email: event.userEmail
}
};
try {
const data = await ddb.put(params).promise();
console.log("Operation successful (mock):", data);
return { statusCode: 200, body: JSON.stringify(data) };
} catch (err) {
console.error("Operation failed (mock):", err);
return { statusCode: 500, body: JSON.stringify(err) };
}
}
// Entry point for CoddyKit's runnable environment
async function main() {
console.log("Running simulated PutItem operation...");
const testEvent = {
userId: "user123",
userName: "Alice",
userEmail: "alice@example.com"
};
await handler(testEvent);
}
main();PutItem कोड को समझना
उदाहरण में हम DynamoDB के साथ काम करना आसान बनाने के लिए DynamoDB.DocumentClient() का उपयोग कर रहे हैं, क्योंकि यह डेटा प्रकारों को अपने-आप संभालता है।
TableName: आपकी DynamoDB तालिका का नाम।Item: उस डेटा को दर्शाने वाली JavaScript ऑब्जेक्ट जिसे आप संग्रहीत करना चाहते हैं। हर कुंजी-मान युग्म एक विशेषता होता है।promise(): AWS SDK कॉल की अतुल्यकालिक प्रकृति को संभालने के लिए उपयोग किया जाता है।
डेटा पढ़ना: GetItem कार्रवाई
तालिका से एक आइटम प्राप्त करने के लिए आप GetItem कार्रवाई का उपयोग करते हैं। जिस आइटम को प्राप्त करना है, उसकी पूरी प्राथमिक कुंजी देनी आवश्यक है।
आइटम वापस प्राप्त करने का तरीका देखने के लिए यह कोड चलाएँ।
// MOCK AWS SDK for local runnable example
const mockDynamoDB = {
DocumentClient: function() {
return {
get: (params) => ({
promise: () => {
console.log("MOCK: Get item from table '" + params.TableName + "' with Key:", params.Key);
// Simulate finding an item with id 'user123'
if (params.Key.id === "user123") {
return Promise.resolve({ Item: { id: "user123", name: "Alice", email: "alice@example.com" } });
}
return Promise.resolve({ Item: null }); // Item not found
}
})
};
}
};
// Simulate the Lambda handler function
async function handler(event) {
const ddb = new mockDynamoDB.DocumentClient();
const params = {
TableName: "MyUsersTable", // Replace with your table name
Key: {
id: event.userId // The primary key to retrieve
}
};
try {
const data = await ddb.get(params).promise();
console.log("Retrieved item (mock):", data.Item);
return { statusCode: 200, body: JSON.stringify(data.Item) };
} catch (err) {
console.error("Operation failed (mock):", err);
return { statusCode: 500, body: JSON.stringify(err) };
}
}
// Entry point for CoddyKit's runnable environment
async function main() {
console.log("Running simulated GetItem operation...");
const testEvent = {
userId: "user123" // ID of the item to retrieve
};
await handler(testEvent);
}
main();डेटा अपडेट करना: UpdateItem कार्रवाई
UpdateItem कार्रवाई किसी आइटम की मौजूदा विशेषताओं में बदलाव करती है या उनके मौजूद न होने पर नई विशेषताएँ जोड़ती है। पूरे आइटम को पढ़कर, बदलकर और फिर दोबारा रखने की तुलना में यह अधिक प्रभावी है।
यह उदाहरण किसी मौजूदा उपयोगकर्ता का email अपडेट करता है।
// MOCK AWS SDK for local runnable example
const mockDynamoDB = {
DocumentClient: function() {
return {
update: (params) => ({
promise: () => {
console.log("MOCK: Update item in table '" + params.TableName + "' with Key:", params.Key);
console.log("MOCK: Update Expression:", params.UpdateExpression, "Values:", params.ExpressionAttributeValues);
return Promise.resolve({ Attributes: { id: params.Key.id, email: "updated@example.com" } });
}
})
};
}
};
// Simulate the Lambda handler function
async function handler(event) {
const ddb = new mockDynamoDB.DocumentClient();
const params = {
TableName: "MyUsersTable", // Replace with your table name
Key: {
id: event.userId // Primary key of the item to update
},
UpdateExpression: "set email = :e",
ExpressionAttributeValues: {
":e": event.newEmail
},
ReturnValues: "UPDATED_NEW" // Return the new values of updated attributes
};
try {
const data = await ddb.update(params).promise();
console.log("Updated item (mock):", data.Attributes);
return { statusCode: 200, body: JSON.stringify(data.Attributes) };
} catch (err) {
console.error("Operation failed (mock):", err);
return { statusCode: 500, body: JSON.stringify(err) };
}
}
// Entry point for CoddyKit's runnable environment
async function main() {
console.log("Running simulated UpdateItem operation...");
const testEvent = {
userId: "user123",
newEmail: "alice.new@example.com"
};
await handler(testEvent);
}
main();डेटा हटाना: DeleteItem कार्रवाई
जब किसी आइटम की आवश्यकता न रहे, तो आप DeleteItem कार्रवाई का उपयोग करके उसे हटा सकते हैं। GetItem की तरह, हटाए जाने वाले आइटम की पूरी प्राथमिक कुंजी निर्दिष्ट करनी होती है।
हटाते समय सावधान रहें, क्योंकि हटाना स्थायी होता है!
// MOCK AWS SDK for local runnable example
const mockDynamoDB = {
DocumentClient: function() {
return {
delete: (params) => ({
promise: () => {
console.log("MOCK: Delete item from table '" + params.TableName + "' with Key:", params.Key);
return Promise.resolve({ success: true });
}
})
};
}
};
// Simulate the Lambda handler function
async function handler(event) {
const ddb = new mockDynamoDB.DocumentClient();
const params = {
TableName: "MyUsersTable", // Replace with your table name
Key: {
id: event.userId // Primary key of the item to delete
}
};
try {
const data = await ddb.delete(params).promise();
console.log("Item deleted successfully (mock).");
return { statusCode: 200, body: JSON.stringify(data) };
} catch (err) {
console.error("Operation failed (mock):", err);
return { statusCode: 500, body: JSON.stringify(err) };
}
}
// Entry point for CoddyKit's runnable environment
async function main() {
console.log("Running simulated DeleteItem operation...");
const testEvent = {
userId: "user123" // ID of the item to delete
};
await handler(testEvent);
}
main();त्वरित जाँच: DynamoDB कार्रवाइयाँ
आपने DynamoDB की मूल कार्रवाइयों के बारे में सीखा। आइए आपकी समझ की जाँच करें!
पुनरावलोकन: Lambda + DynamoDB
बहुत अच्छा! आपने शक्तिशाली सर्वररहित एप्लिकेशन के लिए AWS Lambda को Amazon DynamoDB के साथ एकीकृत करना सीखा।
- DynamoDB एक विस्तार योग्य NoSQL डेटाबेस उपलब्ध कराता है।
- Lambda फ़ंक्शन को DynamoDB तालिकाओं के साथ काम करने के लिए IAM अनुमतियों की आवश्यकता होती है।
- आप
PutItem(बनाना/बदलना),GetItem(पढ़ना),UpdateItem(बदलाव करना) औरDeleteItem(हटाना) जैसी सामान्य कार्रवाइयाँ कर सकते हैं।
गतिशील, घटना-आधारित सर्वररहित बैकएंड बनाने के लिए यह एकीकरण मूलभूत है!
एआई शिक्षक के साथ सर्वररहित AWS Lambda विकास सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “DynamoDB के साथ एकीकरण” पाठ निःशुल्क है?
हाँ—“DynamoDB के साथ एकीकरण” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और सर्वररहित AWS Lambda विकास पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। सर्वररहित AWS Lambda विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“DynamoDB के साथ एकीकरण” में मैं क्या सीखूँगा?
सर्वररहित एप्लिकेशन में उच्च-प्रदर्शन, स्केलेबल डेटा भंडारण और प्राप्ति के लिए Lambda फ़ंक्शन को Amazon DynamoDB, पूरी तरह प्रबंधित NoSQL डेटाबेस, से जोड़ें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ सर्वररहित AWS Lambda विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या सर्वररहित AWS Lambda विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर सर्वररहित AWS Lambda विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“DynamoDB के साथ एकीकरण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस सर्वररहित AWS Lambda विकास पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर सर्वररहित AWS Lambda विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- DynamoDB के साथ एकीकरण
- फ़ाइल भंडारण और इवेंट के लिए S3
- उचित डेटा भंडार चुनना
- Amazon ElastiCache और DAX के साथ कैशिंग