
現(xiàn)在我就來確認(rèn)我的目標(biāo)。我將會激活事件源(在實(shí)際開發(fā)中,你可能想要推遲這一步直到你編寫并測試代碼之后):

點(diǎn)擊Create function將會創(chuàng)建該功能并使用表的更新流作為一個事件源。我可以在Lambda Console的Event sources頁簽看到該事件源和其他事件源的狀態(tài):

好了,我已經(jīng)一切設(shè)置完畢。到現(xiàn)在我啟動了一項(xiàng)功能,該功能與我的表中的更新流相連接,并做好了處理記錄的準(zhǔn)備!為了測試這一功能,我切換到DynamoDB Console,向表中插入了幾個項(xiàng)目以便在流中生成某些活動:

然后我返回到Lambda Console(當(dāng)然,瀏覽器頁簽使頁簽切換變得非常簡單),驗(yàn)證一切是否如預(yù)期一樣運(yùn)行良好??焖贋g覽Monitoring頁簽后,我確認(rèn)該功能運(yùn)行了兩次,并沒有明顯錯誤:

結(jié)果看起來很好,所以我檢查該功能的CloudWatch Logs(CloudWatch邏輯)來了解更多信息:

如果我是在創(chuàng)建一個真正的應(yīng)用的話,我可以從藍(lán)圖提供的代碼開始,從那里添加更多的功能。
AWS客戶 Mapbox已經(jīng)開始使用DynamoDB Streams和Lambda了,看看它們的新博客貼 Scaling the Mapbox Infrastructure with DynamoDB Streams(使用DynamoDB Streams特性伸縮Mapbox基礎(chǔ)設(shè)施)。
想要了解如何同時使用DynamoDB和Lambda的更多信息,請閱讀關(guān)于 Using DynamoDB Streams and AWS Lambda(使用DynamoDB Streams和AWS Lambda)的文檔。使用DynamoDB Triggers不會收取費(fèi)用;你只是為執(zhí)行Lambda功能支付通常的費(fèi)率(想要獲取更多信息,請參閱Lambda Pricing頁面)。
我相信,這一新特性將會使你的應(yīng)用更簡單,更強(qiáng)大,響應(yīng)性更強(qiáng)。請讓我知道你使用這一特性構(gòu)建的應(yīng)用!
DynamoDB跨域復(fù)制
作為DynamoDB Streams新特性的使用案例,我們也正在為DynamoDB發(fā)布一個新的跨域復(fù)制應(yīng)用。該應(yīng)用利用我們?nèi)ツ臧l(fā)布的 DynamoDB Cross Region Replication library(DynamoDB 跨域復(fù)制知識庫,當(dāng)然你也可以使用該知識庫作為你應(yīng)用的一部分)。
你可以出于若干個不同的原因使用復(fù)制功能跨域復(fù)制DynamoDB數(shù)據(jù),包括容災(zāi)和從多個位置實(shí)現(xiàn)低時延訪問。正如你將看到的,該應(yīng)用使你輕松地設(shè)置和維護(hù)復(fù)制副本。
該應(yīng)用運(yùn)行在 AWS Elastic Beanstalk上,利用 Amazon EC2 Container Service(亞馬遜EC2容器業(yè)務(wù)),所有這些都是通過 AWS CloudFormation模板發(fā)起。
你可以從DynamoDB Console內(nèi)部開始發(fā)起流程。CloudFormation將會提醒你輸入它創(chuàng)建堆棧和容器所需擁有的信息:

賦予堆棧(模板所發(fā)起的AWS資源組的總稱)一個名稱,然后點(diǎn)擊Next。然后輸入?yún)?shù)(你可以保存大多數(shù)參數(shù)的默認(rèn)值):

Metadata表包含復(fù)制程序需要了解的待復(fù)制的表的范圍和復(fù)制副本存儲位置信息。在發(fā)起復(fù)制應(yīng)用后,你可以訪問它的在線配置頁面(CloudFormation將會生成一個URL)進(jìn)行設(shè)置:

你可以免費(fèi)使用該特性。但你必須為你使用的資源付費(fèi)。這些資源包括為表副本所配置的吞吐和存儲,域間數(shù)據(jù)傳輸,從Streams中讀取數(shù)據(jù),EC2實(shí)例,用于控制應(yīng)用的SQS隊(duì)列。想要了解更多信息,請參閱 DynamoDB Pricing 頁面。