管理 Terraform 开源产品状态错误 - Amazon Service Catalog
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

管理 Terraform 开源产品状态错误

Terraform Open Source ProvisionProduct 故障会路由到 TAINTED 状态,进而允许每个预配置的产品继续进行 UpdateProvisionedProduct。发生这种情况时:

  • UpdateProvisionedProduct 不会尝试更新或更正标签,也不会尝试创建或修改资源组。

  • UpdateProvisionedProduct 在决定是否应将预配置产品设置为 AVAILABLETAINTED 时,不会考虑先前配置操作的失败。

Amazon Service Catalog 仅在 ProvisionProduct 期间应用标签。由于 ProvisionProduct 操作失败而导致的任何标记失败都不会自动解决。

状态错误示例

示例 1:Amazon Service Catalog 在 ProvisionProduct 期间未创建资源组

在以下场景中,即使没有支持资源组,也没有对资源应用任何标签,您仍有预配置产品处于 AVAILABLE 状态。

  1. 您的操作启动 ProvisionProduct

  2. Terraform 预置引擎会以工作流程故障对 ProvisionProduct 做出响应,但不提供 ResourceIdentifier

  3. ProvisionProduct 工作流程不会创建资源组,并随后将预配置的产品状态设置为 ERROR

  4. 然后,您可启动 UpdateProvisionedproduct 操作。

  5. Terraform 预置引擎会做出表示“成功”的回复。

  6. 因此,UpdateprovisionedProduct 工作流程将预配置产品的状态设置为 AVAILABLE,但不会创建资源组,也不会尝试应用任何标签。

示例 2:在 UpdateProvisionedProduct 期间 Amazon Service Catalog 创建新资源

在以下场景中,即使新资源应用任何标签,您仍有预配置产品处于 AVAILABLE 状态。

  1. 您的操作启动 ProvisionProduct

  2. Terraform 预置引擎会做出表示“成功”的回复,并提供 ResourceIdentifier

  3. ProvisionProduct 工作流程创建资源组并将标签应用于所有已识别的资源。

  4. 您启动 UpdateProvisionedProduct 一个创建新资源的新构件。

  5. Terraform 预置引擎会做出表示“成功”的回复。

  6. UpdateProvisionedProduct 工作流程将预配置产品状态设置为 AVAILABLE,但不会尝试将任何其他标签应用于新资源。

状态错误解决方案

Amazon Service Catalog 确保为所有自 ProvisionProduct 设置为 TAINTED 的预配置产品创建资源组。如果 Terraform 预置引擎未返回 ResourceIdentifier,或者 Amazon Service Catalog 创建资源组失败,则预配置产品将设置为 ERROR 状态,迫使您终止。