AWS最近為AWS Lambda增加了一項功能,允許定義變量來實現代碼運行環境的個性化。按照AWS首席布道師Jeff Barr的說法,這樣能夠讓我們編寫出整潔和可重用的代碼,無需進行重新部署。
借助環境變量,能夠讓我們的函數在不同的環境中所執行的行為有所差異,這個過程中不需要改變它的實現。典型的使用場景就是為特定的生命周期階段采用不同的函數行為,比如開發階段、測試階段或生產階段,每個階段可能會使用各自的數據庫或使用不同的連接憑證。
AWS Lambda環境變量可以使用AWS Console、CLI或SDK來進行定義。如下展現了如何使用AWS CLI定義AWS Lambda,在這個過程中用到了一個LD_LIBRARY_PATH環境變量:
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環境變量在創建之后,就可以使用編程語言所支持的方式來訪問環境信息,比如在Node.js中使用process.env。當使用Python的時候,我們需要導入os庫,如下面的樣例所示:
...import os...print("environment variable: " + os.environ['variable'])環境變量就是一些鍵/值對,如果需要的話,可以進行加密和解密。它們會關聯到所屬的Lambda的一個給定版本上,在Lambda發布之前,它們可以自由地進行修改。但是一旦lambda版本發布,那么它的環境變量就變成不可變的了。將Lambda回滾至任意版本的時候,它的環境變量也會恢復。在數量上,Lambda函數可以關聯多少環境變量并沒有限制,只要它們的總大小不超過4KB就可以。
查看英文原文:AWS Lambda Now Supports Environment Variables