Amazon EC2 Auto Scaling 问题排查:启动模板 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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:请尝试以下步骤进行故障排除:

  1. 请注意错误消息的第二部分以查找更多信息。在遇到 You must use a valid fully-formed launch template 错误后,请参阅更具体的错误消息,该消息标识您需要解决的问题。

  2. 如果您无法找到原因,请使用 run-instances 命令测试您的启动模板。使用 --dry-run 选项,如以下示例中所示。这使您可以重现问题并提供有关问题原因的见解。

    aws ec2 run-instances --launch-template LaunchTemplateName=my-template,Version='1' --dry-run
  3. 如果值无效,请验证指定的资源是否存在且正确。例如,在您指定 Amazon EC2 密钥对时,资源必须存在于您从中创建或更新自动扩缩组的账户和区域中。

  4. 如果缺少预期信息,请验证您的设置并根据需要调整启动模板。

  5. 进行更改后,使用 --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 策略。该 Amazon 托管策略授予对所有 Amazon EC2 资源和相关服务的完全访问权限,包括 Amazon EC2 Auto Scaling 和 Elastic Load Balancing。 CloudWatch

有关使用启动模板所需权限的更多信息,包括示例 IAM Policy,请参阅适用于Linux 实例的 Amazon EC2 用户指南中的使用 IAM 权限控制启动模板的访问权限。有关其他示例 IAM policies,请参阅 启动模板支持

原因 2:如果您尝试使用指定实例配置文件的启动模板,则必须具有传递与实例配置文件关联的 IAM 角色的 IAM 权限。

解决方案 2:验证您用于发出请求的 IAM 凭证具有将指定角色传递给 Amazon EC2 Auto Scaling 服务的正确 iam:PassRole 权限。有关更多信息和示例 IAM policy,请参阅 在 Amazon EC2 实例上运行的应用程序的 IAM 角色。有关实例配置文件相关的进一步故障排查主题,请参阅 IAM 用户指南中的 Amazon EC2 和 IAM 故障排查

原因 3:如果您尝试使用在另一个 AMI 中指定了 AMI 的启动模板 Amazon Web Services 账户,并且该 AMI 是私有的,不与 Amazon Web Services 账户 您正在使用的模板共享,则会收到一条错误消息,提示您无权使用该启动模板。

解决方案 3:验证 AMI 的权限是否包括您正在使用的账户。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的与特定 Amazon Web Services 账户共享 AMI