AWS最近為AWS Lambda增加了一項功能,允許定義變量來實現(xiàn)代碼運行環(huán)境的個性化。按照AWS首席布道師Jeff Barr的說法,這樣能夠讓我們編寫出整潔和可重用的代碼,無需進行重新部署。
借助環(huán)境變量,能夠讓我們的函數(shù)在不同的環(huán)境中所執(zhí)行的行為有所差異,這個過程中不需要改變它的實現(xiàn)。典型的使用場景就是為特定的生命周期階段采用不同的函數(shù)行為,比如開發(fā)階段、測試階段或生產(chǎn)階段,每個階段可能會使用各自的數(shù)據(jù)庫或使用不同的連接憑證。
AWS Lambda環(huán)境變量可以使用AWS Console、CLI或SDK來進行定義。如下展現(xiàn)了如何使用AWS CLI定義AWS Lambda,在這個過程中用到了一個LD_LIBRARY_PATH環(huán)境變量:
aws lambda create-function --region us-east-1 --function-name myTestFunction --zip-file fileb://path/package.zip --role role-arn --environment Variables={LD_LIBRARY_PATH=/usr/bin/test/lib64} --handler index.handler --runtime nodejs4.3 --profile default環(huán)境變量在創(chuàng)建之后,就可以使用編程語言所支持的方式來訪問環(huán)境信息,比如在Node.js中使用process.env。當(dāng)使用Python的時候,我們需要導(dǎo)入os庫,如下面的樣例所示:
...import os...print("environment variable: " + os.environ['variable'])環(huán)境變量就是一些鍵/值對,如果需要的話,可以進行加密和解密。它們會關(guān)聯(lián)到所屬的Lambda的一個給定版本上,在Lambda發(fā)布之前,它們可以自由地進行修改。但是一旦lambda版本發(fā)布,那么它的環(huán)境變量就變成不可變的了。將Lambda回滾至任意版本的時候,它的環(huán)境變量也會恢復(fù)。在數(shù)量上,Lambda函數(shù)可以關(guān)聯(lián)多少環(huán)境變量并沒有限制,只要它們的總大小不超過4KB就可以。
查看英文原文:AWS Lambda Now Supports Environment Variables