

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

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

 從存放在 Amazon S3 中的程式碼成品建立 AWS Lambda MicroVM 映像。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 組建服務從 Amazon S3 下載程式碼成品並寫入組建日誌時所擔任的 IAM 角色 ARN。  
*類型：*字串  
*必要*：否  
*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和應用程式程式碼之 zip 成品的 Amazon S3 URI。  
*類型：*字串  
*必要*：是  
*CloudFormation 相容性*：此屬性會轉換為 `AWS::Lambda::MicrovmImage` 資源的 `[CodeArtifact](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-codeartifact)` 屬性。 會將 URI AWS SAM 包裝到 `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 在執行時間可用的輸出網路連接器 ARNs 清單。  
*類型：*清單  
*必要*：否  
*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>
MicroVMs和 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>
指定 MicroVM 資源需求的[資源](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html)物件清單。  
*類型：*清單  
*必要*：否  
*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 自動將`lambda:createdBy:SAM`標籤新增至此 MicroVM 映像，以及為其產生的預設角色。

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

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

當將此資源的邏輯 ID 提供給`Ref`內部 函數時，它會傳回 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
```