0

在此先感謝!Cloudformation lambda函數代碼參考一個生成的s3桶

因此,我目前有一個創建lambda函數的雲形成腳本,lambda函數中的代碼需要引用也需要由同一個cloudformation腳本生成的s3存儲桶。 lambda函數的代碼存儲在一個預先運行的雲形成桶中。

我遇到的問題是,如何在我的node.js lambda函數代碼中爲編程生成的存儲桶名稱提供服務?

感覺有點雞和雞蛋的情況給我!

回答

1

您可以通過使用Lambda function environment variable來引用您的S3存儲桶。您的代碼是靜態的,不會按名稱引用硬編碼的存儲桶。相反,它會從環境變量中檢索存儲桶名稱。

在您的CloudFormation腳本中,您可以將環境變量設置爲environment屬性下AWS::Lambda::Function定義的一部分。

例如:

"Resources" : { 

    "MyFunction" : { 
     "Type" : "AWS::Lambda::Function", 
     "Properties": { 
     "Environment" : { 
      "Variables" : { 
      "BucketName" : { "Ref" : "MyBucket" } 
      } 
     }, 
     } 
    }, 
    "MyBucket" : { 
     "Type" : "AWS::S3::Bucket" 
    } 
} 
+0

聽起來前途,謝謝,我會給這個去!所以本質上,我的nodejs腳本中的代碼將引用環境變量存儲桶名稱而不是實際的存儲桶名稱,這是否正確? –

+1

正確。環境變量將包含實際存儲桶名稱的值。 –