如何从 Docker UCP API 获取单个堆栈

How to get a single stack from Docker UCP API

我正在 Docker Enterprise 3.2 环境中编写 devops 管道。

我能够从 UCP API 获取 所有 stacks。现在我需要获取单个 stacks 但文档似乎完全忽略了这个资源。

有没有什么:

ucp_url/api/stacks/my_awesome_stack_name

ucp_url/api/stacks?name=my_awesome_stack_name

?

简答

字段namespace是堆栈的标识符。调用 api/stacks/my_namespace 将获得所需的堆栈。

我是怎么找到这个的

在稍微查阅了文档和 api 之后,我意识到 stacks 资源只是另一个可以使用其标识符进行选择的集合。

当您调用 api/stacks 时,您将收到一个 集合 堆栈,如下所示:

[
  {
    "namespace": "my_awesome_namespace_1",
    "services": []
    ...
    "namespace": "my_awesome_namespace_2",
    "services": []
    ...
  }
]

我只是尝试 api/stacks/my_awesome_namespace_1 并收到了 json 格式的所需对象。

及以后

我认为这个答案最重要的是这个方法可以推广到任何 UCP 资源。

  1. 获取给定资源类型的所有资源
  2. 尝试确定哪个字段是标识符
  3. 尝试调用 my_awesome_resource/my_awesome_resource_identifier
  4. 打起精神:)