AWS::Serverless::LayerVersion - AWS Serverless Application Model

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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_64arm64

類型:清單

必要:否

預設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 deploysam 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 屬性

有效值RetainDelete

類型:字串

必要:否

AWS CloudFormation 相容性:此屬性對 是唯一的, AWS SAM 並且沒有 AWS CloudFormation 同等的。

其他備註:當您指定 時RetainDeletionPolicy: 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