近日,Amazon升級了他們的API網(wǎng)關(guān)服務(wù),推出了API網(wǎng)關(guān)“使用計劃(Usage Plans)”。借助使用計劃,Amazon API網(wǎng)關(guān)客戶可以根據(jù)不同的訪問級別和用戶分類管理和貨幣化他們的API。通過第三方開發(fā)者生態(tài)系統(tǒng)將API貨幣化,是企業(yè)暴露API時經(jīng)常采用的模式之一。使用計劃讓組織可以管理第三方開發(fā)人員的消費模式,實現(xiàn)API密鑰層計費。
Amazon首次推出API網(wǎng)關(guān)服務(wù)是在2015年7月,其目的是為組織提供一種方法,讓他們可以保護和管理運行在AWS Lambda、EC2及托管在公共端點上的API。現(xiàn)在,該服務(wù)已經(jīng)完成了升級,通過使用計劃提供了粒度更細的API管理。具體來說,使用計劃可以指定到不同的訪問級別,比如Bronze、Silver和Gold。它們還可以指定到不同的用戶類別,包括學(xué)生、個人、專業(yè)人士或企業(yè)。借助使用計劃,API網(wǎng)關(guān)客戶現(xiàn)在可以控制如下API參數(shù):
“節(jié)流(Throttling)”——總體請求速率(平均每秒的請求數(shù))和突發(fā)流量; 限額——每天、周或月的請求數(shù); API/Stage——可以訪問的API和API Stage。使用計劃可以通過API網(wǎng)關(guān)控制臺創(chuàng)建。在使用計劃里,管理員可以啟用節(jié)流進程,限制API每秒請求數(shù)和突發(fā)請求數(shù)。使用計劃還允許為預(yù)定義時間范圍內(nèi)的請求總數(shù)設(shè)定限額或上限。
在最近的一篇博文中,Amazon Web Services首席宣傳官Jeff Barr對Amazon如何實現(xiàn)節(jié)流進行了解釋:
節(jié)流是使用令牌桶模型實現(xiàn)的。該桶足以容納由Burst值表示的令牌數(shù)量,并按照指定的速率獲取新的令牌。每個API請求會從桶中移除一個令牌。使用令牌桶讓你的API可以支持一個穩(wěn)定的請求流,并能夠適應(yīng)偶然出現(xiàn)的突發(fā)流量。
從業(yè)務(wù)和技術(shù)的角度看,節(jié)流可以確保計劃級別低的客戶不會引入性能問題,中斷計劃級別更高的客戶的API調(diào)用。
圖片來源:https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/
當(dāng)一個API客戶因為計劃外的消費即將超出當(dāng)月的限額時,可以通過臨時擴展的方式避免服務(wù)中斷。
圖片來源:https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/
使用計劃可以在不同的API網(wǎng)關(guān)Stage中實現(xiàn)。Amazon創(chuàng)建了Stage,使得計算環(huán)境的管理可以彼此獨立,比如測試和生產(chǎn)環(huán)境。如果組織將API托管在了一個功能不夠強大的測試環(huán)境中,那么他們可能會希望針對那個Stage或環(huán)境里的API客戶執(zhí)行不同的策略。
由于Amazon現(xiàn)在是在API密鑰層測量使用情況,所以他們也能夠通過“導(dǎo)出使用數(shù)據(jù)(Export Usage Data)”特性提供消費數(shù)據(jù)。管理員可以指定數(shù)據(jù)范圍和消費數(shù)據(jù)格式,包括JSON或CSV。這些信息后續(xù)可以作為計費依據(jù)提供給API客戶。
圖片來源:https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/
測量消費、節(jié)流和限額不是Amazon API網(wǎng)關(guān)特有的東西。這是一些主流的API管理特性,在競爭對手提供的服務(wù)里也可以找到,其中包括微軟的Azure API管理服務(wù)。微軟是通過在不同的范圍級別(產(chǎn)品、API或操作)上使用不同的策略來實現(xiàn)節(jié)流和限額。消費跟蹤則是在開發(fā)者、產(chǎn)品、訂閱、API和操作級別上進行。
查看英文原文:Amazon Introduces API Gateway Usage Plans