我熟悉Terraform及其terraform.tfstate
文件,該文件記錄了哪些本地資源標識符映射到哪些遠程資源。我注意到我的機器上有一個.serverless
目錄,它似乎包含諸如包含Lambda代碼的CloudFormation模板和ZIP文件等文件。備份無服務器框架部署
假設我從我的筆記本電腦創建並部署了一個項目,並且無服務器啓動fooxyz.cloudfront.net
,它指向一個Lambda函數arn:aws:lambda:us-east-1:123456789012:function:handleRequest456
。如果我天真地嘗試從另一臺機器再次運行無服務器(或者我的工作目錄是git clean
),它會啓動一個新的CloudFront端點,因爲它不知道fooxyz.cloudfront.net
已經代表了相同的應用程序。我正在考慮備份其內部保存的狀態,以便修改現有資源而不是創建新資源。 (在Terraform相當於將備份文件terraform.tfstate
)
如果我想備份或恢復無服務器部署狀態,哪些文件會我回來了?在AWS的情況下,我似乎應該備份CloudFormation模板;我不想備份Lambda代碼,因爲它是直接從源代碼生成的。但是,我將來可能會使用的不僅僅是AWS,因此如果可能的話,不想「特殊情況」CloudFormation模板。
如何僅備份無法重新生成的文件?
它看起來像無服務器自動將CloudFormation模板備份到S3。使用_serverless.yml_中的'deploymentBucket'鍵可以[配置]存儲桶名稱(https://serverless.com/framework/docs/providers/aws/guide/serverless.yml/)。但是,我懷疑這隻會備份AWS配置,而我也想保留其他提供者的狀態。 –
我不明白這個問題。 serverless.yml和源代碼足以在另一個Cloud帳戶中部署完全相同的解決方案。您只需避免對密鑰或端點進行硬編碼。 – Zanon
好的一點,我的意圖並不清楚我寫的東西。我正在編輯這個問題。 –