如何查找用于 L1 CfnInstance 构造的 AMI ID?
How to look up an AMI ID for use with the L1 CfnInstance construct?
我想查找 AMI ID 以便创建实例。
我被迫使用 L1 构造,所以我无法使用 LookupMachineImage
:
name = f'{name_prefix}-Workstation'
ec2_instance = ec2.CfnInstance(
self,
name,
instance_type=ec2.InstanceType('t2.micro'),
image_id=ec2.LookupMachineImage(name='AmazonLinux2-x86-Development-Workstation-Recipe*'),
subnet_id=public_subnet_e.ref,
security_groups=[webserver_sec_group],
availability_zone='us-east-1e',
tags=[core.CfnTag(key="Name", value=name)]
)
抛出错误:
jsii.errors.JavaScriptError:
Error: Expected a string, got {"$jsii.byref":"@aws-cdk/aws-ec2.LookupMachineImage@10061"}
我只能通过手动查找 AMI ID 并将其粘贴到代码中来使其工作。这有点傻。我很想开始编写自己的查找代码,因为那很简单……但是如果我已经这样做了,为什么还要使用 CDK?我觉得我缺少一些简单的东西?
我更愿意使用 CDK 中的 L2 构造,但我不能,因为它们基于对我不起作用的意见。具体来说,L2 VPC
构造没有办法将其限制在特定的可用性区域。并非所有实例类型在所有可用区中都可用,因此我不得不使用 CfnVPC
,以便我可以控制它为哪些可用区创建子网。
我已经阅读了几个小时的相关文档,似乎至少有两种方法可以进行此查找。但似乎都不起作用。我怀疑我有概念问题而不是语法问题?我是来自 SAM / CloudFormation 的 CDK 新手。
试一试:
image_id=ec2.LookupMachineImage(name='AmazonLinux2-x86-Development-Workstation-Recipe*').get_image(self).image_id
我想查找 AMI ID 以便创建实例。
我被迫使用 L1 构造,所以我无法使用 LookupMachineImage
:
name = f'{name_prefix}-Workstation'
ec2_instance = ec2.CfnInstance(
self,
name,
instance_type=ec2.InstanceType('t2.micro'),
image_id=ec2.LookupMachineImage(name='AmazonLinux2-x86-Development-Workstation-Recipe*'),
subnet_id=public_subnet_e.ref,
security_groups=[webserver_sec_group],
availability_zone='us-east-1e',
tags=[core.CfnTag(key="Name", value=name)]
)
抛出错误:
jsii.errors.JavaScriptError:
Error: Expected a string, got {"$jsii.byref":"@aws-cdk/aws-ec2.LookupMachineImage@10061"}
我只能通过手动查找 AMI ID 并将其粘贴到代码中来使其工作。这有点傻。我很想开始编写自己的查找代码,因为那很简单……但是如果我已经这样做了,为什么还要使用 CDK?我觉得我缺少一些简单的东西?
我更愿意使用 CDK 中的 L2 构造,但我不能,因为它们基于对我不起作用的意见。具体来说,L2 VPC
构造没有办法将其限制在特定的可用性区域。并非所有实例类型在所有可用区中都可用,因此我不得不使用 CfnVPC
,以便我可以控制它为哪些可用区创建子网。
我已经阅读了几个小时的相关文档,似乎至少有两种方法可以进行此查找。但似乎都不起作用。我怀疑我有概念问题而不是语法问题?我是来自 SAM / CloudFormation 的 CDK 新手。
试一试:
image_id=ec2.LookupMachineImage(name='AmazonLinux2-x86-Development-Workstation-Recipe*').get_image(self).image_id