本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon EC2 Auto Scaling 问题排查:启动模板
使用以下信息可帮助您诊断和修复在尝试为自动扩缩组指定启动模板时可能遇到的常见问题。
无法启动实例
如果您无法使用已指定的启动模板启动任何实例,请检查以下一般故障排除内容:Amazon EC2 Auto Scaling 问题排查:EC2 实例启动失败。
您必须使用有效的完整启动模板(无效值)
问题:当您尝试为某个自动扩缩组指定启动模板时,收到 You must use a valid fully-formed
launch template
错误。您可能遇到此错误,因为只有在使用启动模板的自动扩缩组被创建或更新时,才会对启动模板中的值进行验证。
原因 1:如果您收到 You must use a
valid fully-formed launch template
错误,则表示有些问题导致 Amazon EC2 Auto Scaling 将启动模板的某些内容视为无效。这是一个通用错误,可能由几种不同的原因导致。
解决方案 1:请尝试以下步骤进行故障排除:
-
请注意错误消息的第二部分以查找更多信息。在遇到
You must use a valid fully-formed launch template
错误后,请参阅更具体的错误消息,该消息标识您需要解决的问题。 -
如果您无法找到原因,请使用 run-instances 命令测试您的启动模板。使用
--dry-run
选项,如以下示例中所示。这使您可以重现问题并提供有关问题原因的见解。aws ec2 run-instances --launch-template LaunchTemplateName=
my-template
,Version='1
' --dry-run -
如果值无效,请验证指定的资源是否存在且正确。例如,在您指定 Amazon EC2 密钥对时,资源必须存在于您从中创建或更新自动扩缩组的账户和区域中。
-
如果缺少预期信息,请验证您的设置并根据需要调整启动模板。
-
进行更改后,使用
--dry-run
选项重新运行 run-instances 命令,以验证您的启动模板是否使用有效的值。
有关更多信息,请参阅 为 Auto Scaling 组创建启动模板。
您没有权限使用启动模板(权限不足)
问题:当您尝试为某个自动扩缩组指定启动模板时,收到 You are not authorized to use launch
template
错误。
原因 1:如果您尝试使用启动模板,但您使用的 IAM 凭证没有足够的权限,则会收到一条错误,显示您没有权限使用启动模板。
解决方案 1:要解决该问题,请尝试以下操作:
-
验证您用于发出请求的 IAM 凭证具有调用所需 EC2 API 操作的权限,包括
ec2:RunInstances
操作。如果在启动模板中指定了任何标签,您还必须拥有使用ec2:CreateTags
操作的权限。 -
也可以验证您用于发出请求的 IAM 凭证被分配了
AmazonEC2FullAccess
策略。该 AWS 托管策略授予对所有 Amazon EC2 资源和相关服务的完全访问权限,包括 Amazon EC2 Auto Scaling、CloudWatch 和 Elastic Load Balancing。
有关使用启动模板所需权限的更多信息,包括示例 IAM 策略,请参阅《Amazon EC2 用户指南》中的使用 IAM 权限控制启动模板的访问权限。有关其他示例 IAM policies,请参阅 在 Auto Scaling 群组中控制亚马逊EC2启动模板的使用情况。
原因 2:如果您尝试使用指定实例配置文件的启动模板,则必须具有传递与实例配置文件关联的 IAM 角色的 IAM 权限。
解决方案 2:验证您用于发出请求的 IAM 凭证具有将指定角色传递给 Amazon EC2 Auto Scaling 服务的正确 iam:PassRole
权限。有关更多信息和示例 IAM policy,请参阅 IAM在 Amazon EC2 实例上运行的应用程序的角色。有关实例配置文件相关的进一步故障排查主题,请参阅 IAM 用户指南中的 Amazon EC2 和 IAM 故障排查。
原因 3:如果您尝试使用在另一个 AWS 账户 中指定 AMI 的启动模板,且该 AMI 是私有的,不与您正在使用的 AWS 账户 共享,则您会收到一条错误,显示您没有权限使用该启动模板。
解决方案 3:验证 AMI 的权限是否包括您正在使用的账户。有关更多信息,请参阅《Amazon EC2 用户指南》中的与特定 AWS 账户共享 AMI。