本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS::Serverless::LayerVersion
建立 Lambda LayerVersion ,其中包含 Lambda 函數所需的程式庫或執行期程式碼。
AWS::Serverless::LayerVersion 資源也支援 Metadata
資源屬性,因此您可以指示 AWS SAM 建置應用程式中包含的層。如需建置層的詳細資訊,請參閱在 中建置 Lambda 層 AWS SAM。
重要注意事項:自 中發佈UpdateReplacePolicy資源屬性以來 AWS CloudFormation, AWS::Lambda::LayerVersion (建議) 提供與 相同的優點AWS::Serverless::LayerVersion。
LayerVersion 轉換 Serverless 時, SAM也會轉換資源的邏輯 ID,以便在更新資源 CloudFormation 時 LayerVersions 不會自動刪除舊的 。
注意
當您部署到 時 AWS CloudFormation, 會將您的 AWS SAM 資源 AWS SAM 轉換為 AWS CloudFormation 資源。如需詳細資訊,請參閱產生的 AWS CloudFormation 資源 AWS SAM。
語法
若要在 AWS Serverless Application Model (AWS SAM) 範本中宣告此實體,請使用下列語法。
YAML
Type: AWS::Serverless::LayerVersion Properties: CompatibleArchitectures:
List
CompatibleRuntimes:List
ContentUri:String | LayerContent
Description:String
LayerName:String
LicenseInfo:String
PublishLambdaVersion:Boolean
RetentionPolicy:String
屬性
-
CompatibleArchitectures
-
指定 layer 版本的支援指示集架構。
如需此屬性的詳細資訊,請參閱《 AWS Lambda 開發人員指南》中的 Lambda 指令集架構。
有效值:
x86_64
、arm64
類型:清單
必要:否
預設:
x86_64
AWS CloudFormation 相容性:此屬性會直接傳遞至
AWS::Lambda::LayerVersion
資源的CompatibleArchitectures
屬性。 -
CompatibleRuntimes
-
與此相容的執行時間清單 LayerVersion。
類型:清單
必要:否
AWS CloudFormation 相容性:此屬性會直接傳遞至
AWS::Lambda::LayerVersion
資源的CompatibleRuntimes
屬性。 -
ContentUri
-
Amazon S3 Uri、本機資料夾的路徑或 layer 程式碼的 LayerContent 物件。
如果提供 Amazon S3 Uri 或 LayerContent 物件,則參考的 Amazon S3 物件必須是包含 Lambda 層內容的有效ZIP封存。
如果提供本機資料夾的路徑,則要正確轉換內容,範本必須經過包含 的工作流程,sam build後面接著 sam deploy或 sam package。根據預設,相對路徑會依 AWS SAM 範本的位置解析。
類型:字串 | LayerContent
必要:是
AWS CloudFormation 相容性:此屬性類似於
AWS::Lambda::LayerVersion
資源的Content
屬性。巢狀 Amazon S3 屬性的名稱不同。 -
Description
-
此 layer 的描述。
類型:字串
必要:否
AWS CloudFormation 相容性:此屬性會直接傳遞至
AWS::Lambda::LayerVersion
資源的Description
屬性。 -
LayerName
-
layer 的名稱或 Amazon Resource Name (ARN)。
類型:字串
必要:否
預設:資源邏輯 ID
AWS CloudFormation 相容性:此屬性類似於
AWS::Lambda::LayerVersion
資源的LayerName
屬性。如果您未指定名稱,資源的邏輯 ID 將用作名稱。 -
LicenseInfo
-
有關此授權的資訊 LayerVersion。
類型:字串
必要:否
AWS CloudFormation 相容性:此屬性會直接傳遞至
AWS::Lambda::LayerVersion
資源的LicenseInfo
屬性。 -
PublishLambdaVersion
-
選擇加入屬性,可在參考
LayerVersion
資源發生變更時建立新的 Lambda 版本。在已連線的 Lambda 函數AutoPublishAliasAllProperties
中使用AutoPublishAlias
和 啟用時,將會針對對LayerVersion
資源所做的每個變更建立新的 Lambda 版本。類型:布林值
必要:否
AWS CloudFormation 相容性:此屬性對 是唯一的, AWS SAM 並且沒有 AWS CloudFormation 同等的。
-
RetentionPolicy
-
此屬性會指定刪除資源時
LayerVersion
,是否保留或刪除舊版本的 。如果您需要在更新或取代資源LayerVersion
時保留舊版 ,您必須啟用UpdateReplacePolicy
屬性。如需執行此操作的詳細資訊,請參閱 AWS CloudFormation 使用者指南中的UpdateReplacePolicy
屬性。有效值:
Retain
或Delete
類型:字串
必要:否
AWS CloudFormation 相容性:此屬性對 是唯一的, AWS SAM 並且沒有 AWS CloudFormation 同等的。
其他備註:當您指定 時
Retain
,DeletionPolicy: Retain
會將 支援的資源屬性 AWS SAM 的 AWS SAM 新增至轉換AWS::Lambda::LayerVersion
的資源。
傳回值
Ref
當將此資源的邏輯 ID 提供給Ref
內部 函數時,它會傳回基礎 Lambda ARN的資源 LayerVersion。
如需使用 Ref
函數的詳細資訊,請參閱AWS CloudFormation 《 使用者指南Ref
》中的 。
範例
LayerVersionExample
的範例 LayerVersion
YAML
Properties: LayerName: MyLayer Description: Layer description ContentUri: 's3://amzn-s3-demo-bucket/my-layer.zip' CompatibleRuntimes: - nodejs10.x - nodejs12.x LicenseInfo: 'Available under the MIT-0 license.' RetentionPolicy: Retain