View a markdown version of this page

AWS::Serverless::MicrovmImage - AWS Serverless Application Model

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS::Serverless::MicrovmImage

根据存储在 Amazon S3 中的代码构件创建 m AWS Lambda icroVM 镜像。microVM 映像是根据Dockerfile和应用程序代码构建的Firecracker快照,可让 microVM 实例在不到一秒钟的时间内启动。

注意

部署到时 AWS CloudFormation, AWS SAM 会将您的 AWS SAM 资源转换为 CloudFormation 资源。有关更多信息,请参阅 生成 CloudFormation 的资源 AWS SAM

语法

要在 AWS Serverless Application Model (AWS SAM) 模板中声明此实体,请使用以下语法。

YAML

Type: AWS::Serverless::MicrovmImage Properties: AdditionalOsCapabilities: List BaseImageArn: String BaseImageVersion: String BuildRoleArn: String CodeUri: String CpuConfigurations: List Description: String EgressNetworkConnectors: List EnvironmentVariables: Map Hooks: Hooks Logging: Logging Name: String PropagateTags: Boolean Resources: List Tags: Map

Properties

AdditionalOsCapabilities

要向 microVM 运行时环境授予的其他操作系统功能。如果您未指定值,则该服务不会授予任何额外的操作系统功能。

有效值ALL

类型:列表

必需:否

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的AdditionalOsCapabilities属性。

BaseImageArn

要构建的基础 microVM 镜像的 ARN。

类型:字符串

是否必需:是

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的BaseImageArn属性。

BaseImageVersion

要使用的基本 microVM 镜像的版本。

类型:字符串

是否必需:是

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的BaseImageVersion属性。

BuildRoleArn

MicroVM 构建服务假设的 IAM 角色的 ARN,用于从 Amazon S3 下载您的代码工件并写入构建日志。

类型:字符串

必需:否

CloudFormation 兼容性:此属性类似于AWS::Lambda::MicrovmImage资源的BuildRoleArn属性。这在 CloudFormation 中为必需,但在 AWS SAM中并非必需。如果您未指定角色,则 AWS SAM 创建一个逻辑 ID 为的角色<resource-logical-id>BuildRole。如果您的代码工件使用客户管理的密钥进行加密 AWS KMS,则必须为自己的角色提供相应的kms:Decrypt权限。

CodeUri

包含Dockerfile和应用程序代码的压缩项目的 Amazon S3 URI。

类型:字符串

是否必需:是

CloudFormation 兼容性:此CodeArtifact属性被转换为AWS::Lambda::MicrovmImage资源的属性。 AWS SAM 将 URI 封装到CodeArtifact.Uri结构中。

CpuConfigurations

指定了 microVM 支持的 CPU 架构的CpuConfiguration对象列表。如果您未指定值,则该服务将使用默认 CPU 架构。

类型:列表

必需:否

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的CpuConfigurations属性。

Description

对 microVM 镜像的描述。

类型:字符串

必需:否

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的Description属性。

EgressNetworkConnectors

MicroVM 在运行时可用的出口网络连接器 ARN 列表。

类型:列表

必需:否

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的EgressNetworkConnectors属性。

EnvironmentVariables

在 microVM 运行时环境中设置的环境变量。

类型:映射

必需:否

CloudFormation 兼容性:此属性类似于AWS::Lambda::MicrovmImage资源的EnvironmentVariables属性。在中 AWS SAM,指定为地图(例如,KEY: value)。 AWS SAM 转换为 CloudFormation 数组格式[{Key: KEY, Value: value}]

Hooks

microVM 和 microVM 镜像的生命周期挂钩配置。

类型钩子

必需:否

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的Hooks属性。

Logging

microVM 日志输出的配置。只指定一个:CloudWatch启用 CloudWatch 日志记录或Disabled关闭日志记录。

类型日志记录

必需:否

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的Logging属性。

Name

microVM 镜像的名称。

类型:字符串

是否必需:是

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的Name属性。

PropagateTags

指定是否将Tags属性中的标签传递给生成的资源,例如自动生成的构建角色。

类型:布尔值

必需:否

默认值False

CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 CloudFormation 等效属性。

Resources

资源对象列表,用于指定 microVM 的资源要求。

类型:列表

必需:否

CloudFormation 兼容性:此属性直接传递给AWS::Lambda::MicrovmImage资源的Resources属性。

Tags

键值对映射,用于指定添加到此 microVM 映像的标签。

类型:映射

必需:否

CloudFormation 兼容性:此属性类似于AWS::Lambda::MicrovmImage资源的Tags属性。中的Tags属性由键值对 AWS SAM 组成(而 CloudFormation 在此属性中则由Tag对象列表组成)。此外,还 AWS SAM 会自动为此 microVM 映像以及为其生成的默认角色添加lambda:createdBy:SAM标签。

返回值

Ref

当向Ref内部函数提供此资源的逻辑 ID 时,它将返回 microVM 映像的 ARN。

有关使用 Ref 函数的更多信息,请参阅《AWS CloudFormation 用户指南》中的 Ref

Fn:: GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 的更多信息,请参阅《AWS CloudFormation 用户指南》中的 Fn::GetAtt

CreatedAt

创建 microVM 镜像版本的时间戳。

ImageArn

microVM 镜像的 ARN。

LatestActiveImageVersion

microVM 镜像的最新活跃版本。

LatestFailedImageVersion

microVM 镜像的最新失败版本(如果有)。

State

microVM 镜像的当前状态。

UpdatedAt

上次更新 microVM 镜像版本的时间戳。

示例

最小 microVM 镜像

以下示例创建了一个仅具有所需属性的 microVM 镜像。 AWS SAM 自动生成生成角色。

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyMicroVM: Type: AWS::Serverless::MicrovmImage Properties: Name: my-app CodeUri: s3://my-bucket/app.zip BaseImageArn: arn:aws:lambda:us-east-2:aws:microvm-image:al2023-1 BaseImageVersion: "0"

完整的 microVM 映像配置

以下示例创建配置了所有可用属性的 microVM 映像。

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyMicroVM: Type: AWS::Serverless::MicrovmImage Properties: Name: my-app CodeUri: s3://my-bucket/app.zip BaseImageArn: arn:aws:lambda:us-east-2:aws:microvm-image:al2023-1 BaseImageVersion: "0" Description: "Production MicroVM application" CpuConfigurations: - Architecture: ARM_64 Resources: - MinimumMemoryInMiB: 1024 AdditionalOsCapabilities: - ALL EgressNetworkConnectors: - arn:aws:lambda:us-east-2:aws:network-connector:aws-network-connector:INTERNET_EGRESS Hooks: Port: 9000 MicrovmHooks: Run: ENABLED RunTimeoutInSeconds: 30 Suspend: ENABLED Resume: ENABLED MicrovmImageHooks: Ready: ENABLED ReadyTimeoutInSeconds: 60 EnvironmentVariables: LOG_LEVEL: info APP_ENV: production Logging: CloudWatch: LogGroup: /aws/lambda-microvms/my-app Tags: Environment: Production Team: Platform