嘗試 AWS Lambda for Python

十月的 AWS 大會(huì)發(fā)布了 AWS Lambda 對(duì) Python 的支持尾膊,正好手頭有個(gè)小任務(wù)適合這個(gè)場(chǎng)景。任務(wù)的需求很簡(jiǎn)單络凿,如果給定 receipt 和 shared password骡送,訪問(wèn) Apple In-App Purchase Validation Sandbox 來(lái)驗(yàn)證。

Lambda function 本身當(dāng)然很簡(jiǎn)單:

# lambda_function.py
import itunesiap

def lambda_handler(event, context):
    receipt = event['receipt-data']
    password = event.get('password')
    with itunesiap.env.sandbox:
         r = itunesiap.verify(receipt, password)._
    return r

麻煩在于使用了一個(gè) itunes-iap 模塊喷众, 需要按照 AWS 官方文檔創(chuàng)建個(gè)部署包各谚。
具體步驟是:

  • 實(shí)現(xiàn) lambda function 的文件叫 lambda_function.py,而且此文件得存在于 <code_dir> 文件夾的根
  • pip install itunes-iap -t <code_dir>
  • cd <code_dir>; zip -r ../r01.zip *

然后把打包生成的 r01.zip 通過(guò) Lambda Console 上傳發(fā)布即可到千。

通常你不會(huì)去注意 site-packages 下都安裝了哪些依賴包昌渤,所以如果你看到 <code_dir> 文件夾里的內(nèi)容,也許會(huì)嚇你一跳憔四。我們只用了一個(gè)依賴膀息,居然實(shí)際引入了這么多包般眉。

r01.zip 里的內(nèi)容

為了運(yùn)行不到十行代碼,最終得上傳將近 5MB 的壓縮包潜支。如果你的網(wǎng)絡(luò)上傳到 S3 也不夠快的話甸赃,建議在 EC2 instance 上用 s3 copy 等手段來(lái)快速上傳。

完成效果如下:

? http POST https://u0m4f1nca2.execute-api.us-west-2.amazonaws.com/sandbox/test_iap < test.json

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 626
Content-Type: application/json
Date: Mon, 28 Dec 2015 15:02:24 GMT
Via: 1.1 b84e1462f13daaeb732c61ea2aa9b852.cloudfront.net (CloudFront)
X-Amz-Cf-Id: XWSIdlbxL6Y32aTNrkQ79AZ6VafoV5WgTDsw4oa1zAAc38Iwg6A0iQ==
X-Cache: Miss from cloudfront
x-amzn-RequestId: ff58ec27-ad73-11e5-9c46-f75ab4034ce2

{
    "receipt": {
        "bid": "com.vanillabreeze.igunbattle",
        "bvrs": "1.0",
        "item_id": "554499305",
        "original_purchase_date": "2012-09-21 01:31:38 Etc/GMT",
        "original_purchase_date_ms": "1348191098192",
        "original_purchase_date_pst": "2012-09-20 18:31:38 America/Los_Angeles",
        "original_transaction_id": "1000000056161764",
        "product_id": "BattleGold50",
        "purchase_date": "2012-09-21 01:31:38 Etc/GMT",
        "purchase_date_ms": "1348191098192",
        "purchase_date_pst": "2012-09-20 18:31:38 America/Los_Angeles",
        "quantity": "1",
        "transaction_id": "1000000056161764",
        "unique_identifier": "42c1b3d45563820dd9a59c79a75641001fc85e39"
    },
    "status": 0
}

其他:

還好這段代碼的依賴樹中都是純 Python 包冗酿。如果是有 C 模塊的依賴埠对,步驟就要更為復(fù)雜些了。

原來(lái)叫 JAWS裁替,現(xiàn)在改名為 serverless 的項(xiàng)目项玛,也正在加入對(duì) Python 的支持。等這個(gè)項(xiàng)目再完善些弱判,開發(fā)和使用 AWS Lambda 就能有更好的工具和框架支持襟沮。

參考:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市昌腰,隨后出現(xiàn)的幾起案子开伏,更是在濱河造成了極大的恐慌,老刑警劉巖遭商,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件固灵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡株婴,警方通過(guò)查閱死者的電腦和手機(jī)怎虫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)困介,“玉大人大审,你說(shuō)我怎么就攤上這事∽ǎ” “怎么了徒扶?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)根穷。 經(jīng)常有香客問(wèn)我姜骡,道長(zhǎng),這世上最難降的妖魔是什么屿良? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任圈澈,我火速辦了婚禮,結(jié)果婚禮上尘惧,老公的妹妹穿的比我還像新娘康栈。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布啥么。 她就那樣靜靜地躺著登舞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悬荣。 梳的紋絲不亂的頭發(fā)上菠秒,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音氯迂,去河邊找鬼践叠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛囚戚,可吹牛的內(nèi)容都是我干的酵熙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼驰坊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了哮独?” 一聲冷哼從身側(cè)響起拳芙,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎皮璧,沒(méi)想到半個(gè)月后舟扎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悴务,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年睹限,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讯檐。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羡疗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出别洪,到底是詐尸還是另有隱情叨恨,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布挖垛,位于F島的核電站痒钝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏痢毒。R本人自食惡果不足惜送矩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哪替。 院中可真熱鬧栋荸,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至摸袁,卻和暖如春钥顽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背靠汁。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工蜂大, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蝶怔。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓奶浦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親踢星。 傳聞我的和親對(duì)象是個(gè)殘疾皇子澳叉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 在前一部分我們提到使用Docker部署應(yīng)用同時(shí)采用12factors原則時(shí),服務(wù)器對(duì)于容器來(lái)講沐悦,只依賴它的計(jì)算資源...
    iambowen閱讀 6,083評(píng)論 0 12
  • https://aws.amazon.com/cn/s3/faqs/#sia_anchor Amazon Simp...
    守望者_(dá)1065閱讀 8,242評(píng)論 0 5
  • Lambda Function Questions: what type of code can I run as...
    abrocod閱讀 1,185評(píng)論 0 0
  • 本文是GitChat《Serverless 風(fēng)格微服務(wù)的持續(xù)交付(上):架構(gòu)案例》部分內(nèi)容已做修改成洗。文章聊天實(shí)錄請(qǐng)...
    顧宇閱讀 3,197評(píng)論 1 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)藏否,斷路器瓶殃,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139