通過AWS CDK的實(shí)現(xiàn),AWS Amplify開發(fā)框架現(xiàn)在開始支持連接和查詢MySQL與PostgreSQL數(shù)據(jù)庫(kù),對(duì)于要通過GraphQL API使用關(guān)系型數(shù)據(jù)庫(kù)的開發(fā)者尤為有用。這項(xiàng)更新允許用戶提供數(shù)據(jù)庫(kù)端點(diǎn)和憑證,便可以替所有關(guān)系型數(shù)據(jù)庫(kù)操作生成完整的GraphQL API,當(dāng)數(shù)據(jù)庫(kù)架構(gòu)改變時(shí),也能執(zhí)行命令套用最新的表格架構(gòu)更新。
Amplify是AWS所提供的工具和服務(wù)集合,支持iOS、Android和網(wǎng)頁應(yīng)用開發(fā),可供開發(fā)人員快速構(gòu)建全端應(yīng)用程序。Amplify包含多種快速構(gòu)建和部署應(yīng)用程序的工具,諸如一鍵式環(huán)境配置和后端程序代碼自動(dòng)生成等功能。
AWS在Amplify加入對(duì)GraphQL的支持,帶來數(shù)據(jù)處理和查詢的靈活性,因?yàn)镚raphQL讓開發(fā)者精確指出需要的數(shù)據(jù),減少過多或是不必要的數(shù)據(jù)傳輸,進(jìn)而提高應(yīng)用程序的性能和回應(yīng)速度,這也使得開發(fā)人員可以更有效地操作數(shù)據(jù),提高開發(fā)效率和用戶體驗(yàn)。
而AWS Amplify GraphQL Transformer則協(xié)助開發(fā)人員,能夠更容易地開發(fā)基于GraphQL的應(yīng)用程序。Amplify GraphQL Transformer是Amplify CLI工具鏈的一部分,官方解釋,GraphQL Transformer產(chǎn)生可擴(kuò)展的工作管線解析器,以路由GraphQL API請(qǐng)求,并且進(jìn)行身份驗(yàn)證和底層數(shù)據(jù)源的通信等工作。
在過去,GraphQL Transformer主要支持Amazon DynamoDB作為數(shù)據(jù)源,因?yàn)镈ynamoDB和Amplify緊密集成,能夠提供快速且靈活的NoSQL數(shù)據(jù)庫(kù)服務(wù)。而在Amplify GraphQL Transformer推出第2版的時(shí)候,AWS擴(kuò)大其數(shù)據(jù)源的支持,加入包括OpenSearch和Lambda函數(shù),使得開發(fā)者可以根據(jù)需求選擇適合的數(shù)據(jù)存儲(chǔ)和處理服務(wù)。
但開發(fā)者對(duì)于通過GraphQL API使用關(guān)系型數(shù)據(jù)庫(kù),訪問像是Amazon RDS或Amazon Aurora數(shù)據(jù)庫(kù)也有不少需求,因此現(xiàn)在AWS更新Amplify集成AWS CDK,來擴(kuò)展對(duì)關(guān)系型數(shù)據(jù)庫(kù)的支持,讓開發(fā)者不只可將Amplify GraphQL API的 model類型用于DynamoDB,也能夠用于MySQL和PostgreSQL關(guān)系型數(shù)據(jù)庫(kù)。
而這項(xiàng)更新之所以重要,是因?yàn)殚_發(fā)者能夠?qū)raphQL API連接至這些受廣泛使用的關(guān)系型數(shù)據(jù)庫(kù),進(jìn)一步善用現(xiàn)有數(shù)據(jù)庫(kù)資源,并將其集成到使用Amplify所開發(fā)的應(yīng)用程序架構(gòu)中。
不論是在VPC(Virtual Private Cloud)中抑或是網(wǎng)際網(wǎng)絡(luò)公開訪問,開發(fā)者只需要提供MySQL或PostgreSQL數(shù)據(jù)庫(kù)資訊,Amplify就能夠自動(dòng)生成可供修改的GraphQL API。該API可以安全地連接數(shù)據(jù)庫(kù)表格,并進(jìn)行創(chuàng)建、讀取、更新和刪除等操作,開發(fā)者也可以重命名數(shù)據(jù)模型,使其更符合前端需求。
開發(fā)者現(xiàn)在只需編寫簡(jiǎn)單的程序代碼,就可以將現(xiàn)有的Amplify GraphQL身份驗(yàn)證規(guī)則添加至API,依據(jù)使用案例的需求,采取用戶身份驗(yàn)證或是公開只讀模式。AWS Amplify關(guān)聯(lián)數(shù)據(jù)庫(kù)支持,現(xiàn)在可搭配Amazon VPC或是AWS云計(jì)算外部所托管的MySQL和PostgreSQL數(shù)據(jù)庫(kù)使用。