本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS::Serverless::MicrovmImage
從存放在 Amazon S3 中的程式碼成品建立 AWS Lambda MicroVM 映像。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 組建服務從 Amazon S3 下載程式碼成品並寫入組建日誌時所擔任的 IAM 角色 ARN。
類型:字串
必要:否
CloudFormation 相容性:此屬性類似於
AWS::Lambda::MicrovmImage資源的BuildRoleArn屬性。這是在 中 CloudFormation 的必要項目,但不是在 中 AWS SAM。如果您未指定角色, 會 AWS SAM 建立邏輯 ID 為 的角色。如果您的程式碼成品使用 中的客戶受管金鑰加密 AWS KMS,您必須提供自己的角色適當的<resource-logical-id>BuildRolekms:Decrypt許可。 -
CodeUri -
包含 Dockerfile和應用程式程式碼之 zip 成品的 Amazon S3 URI。
類型:字串
必要:是
CloudFormation 相容性:此屬性會轉換為
AWS::Lambda::MicrovmImage資源的CodeArtifact屬性。 會將 URI AWS SAM 包裝到CodeArtifact.Uri結構中。 -
CpuConfigurations -
指定 MicroVM 支援 CPU 架構的 CpuConfiguration 物件清單。如果您未指定值,服務會使用預設 CPU 架構。
類型:清單
必要:否
CloudFormation 相容性:此屬性會直接傳遞至
AWS::Lambda::MicrovmImage資源的CpuConfigurations屬性。 -
Description -
MicroVM 映像的描述。
類型:字串
必要:否
CloudFormation 相容性:此屬性會直接傳遞至
AWS::Lambda::MicrovmImage資源的Description屬性。 -
EgressNetworkConnectors -
MicroVM 在執行時間可用的輸出網路連接器 ARNs 清單。
類型:清單
必要:否
CloudFormation 相容性:此屬性會直接傳遞至
AWS::Lambda::MicrovmImage資源的EgressNetworkConnectors屬性。 -
EnvironmentVariables -
在 MicroVM 執行時間環境中設定的環境變數。
類型:映射
必要:否
CloudFormation 相容性:此屬性類似於
AWS::Lambda::MicrovmImage資源的EnvironmentVariables屬性。在 中 AWS SAM,指定 做為映射 (例如,KEY: value)。 AWS SAM 會轉換為 CloudFormation 陣列格式[{Key: KEY, Value: value}]。 -
Hooks -
MicroVMs和 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 自動將lambda:createdBy:SAM標籤新增至此 MicroVM 映像,以及為其產生的預設角色。
傳回值
Ref
當將此資源的邏輯 ID 提供給Ref內部 函數時,它會傳回 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