

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

# AWS::Serverless::MicrovmImage
<a name="sam-resource-microvmimage"></a>

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

**注意**  
部署到时 AWS CloudFormation， AWS SAM 会将您的 AWS SAM 资源转换为 CloudFormation 资源。有关更多信息，请参阅 [生成 CloudFormation 的资源 AWS SAM](sam-specification-generated-resources.md)。

## 语法
<a name="sam-resource-microvmimage-syntax"></a>

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

### YAML
<a name="sam-resource-microvmimage-syntax.yaml"></a>

```
Type: AWS::Serverless::MicrovmImage
Properties:
  [AdditionalOsCapabilities](#sam-microvmimage-additionaloscapabilities): {{List}}
  [BaseImageArn](#sam-microvmimage-baseimagearn): {{String}}
  [BaseImageVersion](#sam-microvmimage-baseimageversion): {{String}}
  [BuildRoleArn](#sam-microvmimage-buildrolearn): {{String}}
  [CodeUri](#sam-microvmimage-codeuri): {{String}}
  [CpuConfigurations](#sam-microvmimage-cpuconfigurations): {{List}}
  [Description](#sam-microvmimage-description): {{String}}
  [EgressNetworkConnectors](#sam-microvmimage-egressnetworkconnectors): {{List}}
  [EnvironmentVariables](#sam-microvmimage-environmentvariables): {{Map}}
  [Hooks](#sam-microvmimage-hooks): {{[Hooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html)}}
  [Logging](#sam-microvmimage-logging): {{[Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html)}}
  [Name](#sam-microvmimage-name): {{String}}
  [PropagateTags](#sam-microvmimage-propagatetags): {{Boolean}}
  [Resources](#sam-microvmimage-resources): {{List}}
  [Tags](#sam-microvmimage-tags): {{Map}}
```

## Properties
<a name="sam-resource-microvmimage-properties"></a>

 `AdditionalOsCapabilities`   <a name="sam-microvmimage-additionaloscapabilities"></a>
要向 microVM 运行时环境授予的其他操作系统功能。如果您未指定值，则该服务不会授予任何额外的操作系统功能。  
*有效值*：`ALL`  
*类型*：列表  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[AdditionalOsCapabilities](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-additionaloscapabilities)`属性。

 `BaseImageArn`   <a name="sam-microvmimage-baseimagearn"></a>
要构建的基础 microVM 镜像的 ARN。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[BaseImageArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimagearn)`属性。

 `BaseImageVersion`   <a name="sam-microvmimage-baseimageversion"></a>
要使用的基本 microVM 镜像的版本。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[BaseImageVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimageversion)`属性。

 `BuildRoleArn`   <a name="sam-microvmimage-buildrolearn"></a>
MicroVM 构建服务假设的 IAM 角色的 ARN，用于从 Amazon S3 下载您的代码工件并写入构建日志。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性类似于`AWS::Lambda::MicrovmImage`资源的`[BuildRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-buildrolearn)`属性。这在 CloudFormation 中为必需，但在 AWS SAM中并非必需。如果您未指定角色，则 AWS SAM 创建一个逻辑 ID 为的角色`{{<resource-logical-id>}}BuildRole`。如果您的代码工件使用客户管理的密钥进行加密 AWS KMS，则必须为自己的角色提供相应的`kms:Decrypt`权限。

 `CodeUri`   <a name="sam-microvmimage-codeuri"></a>
包含Dockerfile和应用程序代码的压缩项目的 Amazon S3 URI。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此`[CodeArtifact](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-codeartifact)`属性被转换为`AWS::Lambda::MicrovmImage`资源的属性。 AWS SAM 将 URI 封装到`CodeArtifact.Uri`结构中。

 `CpuConfigurations`   <a name="sam-microvmimage-cpuconfigurations"></a>
指定了 microVM 支持的 CPU 架构的[CpuConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html)对象列表。如果您未指定值，则该服务将使用默认 CPU 架构。  
*类型*：列表  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[CpuConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-cpuconfigurations)`属性。

 `Description`   <a name="sam-microvmimage-description"></a>
对 microVM 镜像的描述。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-description)`属性。

 `EgressNetworkConnectors`   <a name="sam-microvmimage-egressnetworkconnectors"></a>
MicroVM 在运行时可用的出口网络连接器 ARN 列表。  
*类型*：列表  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[EgressNetworkConnectors](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-egressnetworkconnectors)`属性。

 `EnvironmentVariables`   <a name="sam-microvmimage-environmentvariables"></a>
在 microVM 运行时环境中设置的环境变量。  
*类型*：映射  
*必需*：否  
*CloudFormation 兼容性*：此属性类似于`AWS::Lambda::MicrovmImage`资源的`[EnvironmentVariables](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-environmentvariables)`属性。在中 AWS SAM，指定为地图（例如，`KEY: value`）。 AWS SAM 转换为 CloudFormation 数组格式`[{Key: KEY, Value: value}]`。

 `Hooks`   <a name="sam-microvmimage-hooks"></a>
microVM 和 microVM 镜像的生命周期挂钩配置。  
*类型*：[钩子](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[Hooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-hooks)`属性。

 `Logging`   <a name="sam-microvmimage-logging"></a>
microVM 日志输出的配置。只指定一个：`CloudWatch`启用 CloudWatch 日志记录或`Disabled`关闭日志记录。  
*类型*：[日志记录](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-logging)`属性。

 `Name`   <a name="sam-microvmimage-name"></a>
microVM 镜像的名称。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-name)`属性。

 `PropagateTags`   <a name="sam-microvmimage-propagatetags"></a>
指定是否将`Tags`属性中的标签传递给生成的资源，例如自动生成的构建角色。  
*类型*：布尔值  
*必需*：否  
*默认值*：`False`  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `Resources`   <a name="sam-microvmimage-resources"></a>
[资源](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html)对象列表，用于指定 microVM 的资源要求。  
*类型*：列表  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::MicrovmImage`资源的`[Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-resources)`属性。

 `Tags`   <a name="sam-microvmimage-tags"></a>
键值对映射，用于指定添加到此 microVM 映像的标签。  
*类型*：映射  
*必需*：否  
*CloudFormation 兼容性*：此属性类似于`AWS::Lambda::MicrovmImage`资源的`[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-tags)`属性。中的`Tags`属性由键值对 AWS SAM 组成（而 CloudFormation 在此属性中则由`Tag`对象列表组成）。此外，还 AWS SAM 会自动为此 microVM 映像以及为其生成的默认角色添加`lambda:createdBy:SAM`标签。

## 返回值
<a name="sam-resource-microvmimage-return-values"></a>

### Ref
<a name="sam-resource-microvmimage-return-values-ref"></a>

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

有关使用 `Ref` 函数的更多信息，请参阅*《AWS CloudFormation 用户指南》*中的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)。

### Fn:: GetAtt
<a name="sam-resource-microvmimage-return-values-fn--getatt"></a>

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

有关使用 `Fn::GetAtt` 的更多信息，请参阅*《AWS CloudFormation 用户指南》*中的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)。

`CreatedAt`  <a name="sam-microvmimage-getatt-createdat"></a>
创建 microVM 镜像版本的时间戳。

`ImageArn`  <a name="sam-microvmimage-getatt-imagearn"></a>
microVM 镜像的 ARN。

`LatestActiveImageVersion`  <a name="sam-microvmimage-getatt-latestactiveimageversion"></a>
microVM 镜像的最新活跃版本。

`LatestFailedImageVersion`  <a name="sam-microvmimage-getatt-latestfailedimageversion"></a>
microVM 镜像的最新失败版本（如果有）。

`State`  <a name="sam-microvmimage-getatt-state"></a>
microVM 镜像的当前状态。

`UpdatedAt`  <a name="sam-microvmimage-getatt-updatedat"></a>
上次更新 microVM 镜像版本的时间戳。

## 示例
<a name="sam-resource-microvmimage-examples"></a>

### 最小 microVM 镜像
<a name="sam-resource-microvmimage-example-minimal"></a>

以下示例创建了一个仅具有所需属性的 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 映像配置
<a name="sam-resource-microvmimage-example-full"></a>

以下示例创建配置了所有可用属性的 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
```