如何获取我最新的 Terraform (Enterprise) 运行 的远程状态文件?

How to get remote state file for my latest Terraform (Enterprise) run?

我想为我的工作区获取最新的 运行 并获取其 Terraform 状态文件。我们正在使用 Terraform Enterprise。

我执行了以下操作并获得了有效载荷:

https://ptfe-dev.company.com.au/api/v2/organizations/organization-name/workspaces/workspace1

我得到了输出,但得到了工作区 ID 等信息,但这不是我想要的。

通过上面的输出,我得到了工作区 ID 并且我 运行 下面的查询:

https://ptfe-dev.companyname.com.au/api/v2/organizations/organization-name/workspaces/workspace1/current-state-version

但是上面的查询returns:

Sorry, the page /api/v2/organizations/rganization-name/workspaces/workspace1/states/sv-DKBZ2AFoV5mwY4kP could not be found.

This error could mean one of two things:

  • The resource doesn't exist
  • The resource exists, but you do not have permission to access it

If someone has linked you to this resource, ensure that they have given you proper permissions to access it.

但是,我可以通过 TFE 访问相同的资源 (workspace1) 状态文件 UI。

任何人都可以告诉我我做错了什么吗?

在第一个 API 调用的有效负载中,您将获得对端点的引用以获取状态。 <tfe_host>/api/v2/workspaces/<workspace_id>/current-state-version

要包含输出,请添加 include=putputs 参数,如下所示: <tfe_host>/api/v2/workspaces/<workspace_id>/current-state-version?include=outputs

您只需要组织获取工作区本身。获取状态时,您将直接引用工作区 ID,不需要包括组织。