簡體   English   中英

如何在完成后自動重新部署 lambda 函數

[英]How to redeploy a lambda function automatically after completion

我正在開發一個項目,該項目使用 python 的密碼庫來對稱地加密和解密字符串。 我有一個前端界面,它收集用戶的字符串和所需的密碼,然后將其作為 JSON 對象上傳到 s3,這會觸發 lambda 函數以使用 PBKDF2HMAC 算法將密碼轉換為加密密鑰。 然后它用於加密字符串。 最后,它將加密的字符串發送到 aws 參數存儲。

所有這些都有效,但是,由於 PBKDF2HMAC 的性質只能運行一次,因此它只能運行一次。 這是我從 lambda 函數得到的錯誤消息:

{
  "errorMessage": "PBKDF2 instances can only be used once.",
  "errorType": "AlreadyFinalized",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 66, in lambda_handler\n    key= base64.urlsafe_b64encode(kdf.derive(ekey))\n",
    "  File \"/opt/python/cryptography/hazmat/primitives/kdf/pbkdf2.py\", line 48, in derive\n    raise AlreadyFinalized(\"PBKDF2 instances can only be used once.\")\n"
  ]
}

我發現我可以通過在我的 lambda 函數代碼中輸入一個空格並刪除它,然后重新部署它來解決這個問題。 但這並不實用。 我希望我的 lambda 加密字符串,並在將其發送到參數存儲后,刷新函數,以便之后可以再次使用它。 有什么幫助嗎?

我假設您正在使用某種基礎設施作為代碼部署您的 lambda?

您可以將一個環境變量設置為當前時間戳或其他內容嗎?

這樣每次你重建這個 lambda 時它總是會改變,你不需要手動更改代碼?

如果它有效,只需在特定事件后自動從 lambda 觸發構建/部署。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM