本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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:ListBaseImageArn:StringBaseImageVersion:StringBuildRoleArn:StringCodeUri:StringCpuConfigurations:ListDescription:StringEgressNetworkConnectors:ListEnvironmentVariables:MapHooks:HooksLogging:LoggingName:StringPropagateTags:BooleanResources:ListTags: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 为的角色。如果您的代码工件使用客户管理的密钥进行加密 AWS KMS,则必须为自己的角色提供相应的<resource-logical-id>BuildRolekms: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属性。 -
指定是否将
Tags属性中的标签传递给生成的资源,例如自动生成的构建角色。类型:布尔值
必需:否
默认值:
FalseCloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 CloudFormation 等效属性。
-
Resources -
资源对象列表,用于指定 microVM 的资源要求。
类型:列表
必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::MicrovmImage资源的Resources属性。 -
键值对映射,用于指定添加到此 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