建立工具鏈

DevOps Insights 將於 2026 年 8 月 31 日結束服務並停止運作。Continuous Delivery 將於 2027 年 2 月 12 日在以下地區停止運作:au-sydca-torus-east。 Code Risk Analyzer 也將於該日於所有地區停止提供服務。 若某個區域未實際使用這些功能,該區域中的功能可能會提前停用,並停止接受新的實例。 了解更多

工具鏈 是一組可支援開發、部署及操作作業的工具整合。 工具鏈的集體力量大於其個別工具整合的總和。

IBM Cloud®上提供開放式工具鏈。 您可以透過幾種方式建立工具鏈:使用範本建立工具鏈、為應用程式建立工具鏈、使用 HTTP API 或 SDK 建立工具鏈,或使用 Terraform 建立工具鏈。

每個工具鏈都與特定的資源群組相關聯。 對工具鏈資源或包含它的資源群組具有 Identity and Access Management (IAM) Viewer 許可權的任何使用者都可以存取工具鏈。 如需進一步了解資源群組中工具鏈的存取控制相關資訊,請參閱 《管理資源群組中工具鏈的使用者存取權限》

在 IBM Cloud Public 上,視您使用的範本或工具鏈而定,工具鏈可能包含已移入應用程式入門範本程式碼和預先配置 Delivery Pipeline 的 GitHub 或 Git 儲存庫。 將變更推送至工具鏈的儲存庫時,Delivery Pipeline 會自動建置應用程式,並將它部署至 IBM Cloud。

若要查看有哪些可用的工具鏈及工具整合,請參閱工具鏈可用性、範本及指導教學

使用主控台從範本建立工具鏈

您可以將包含特定工具整合套件的範本作為起點,來建立 建立工具鏈。 視您使用的範本而定,您可以建立具有一組特定工具整合的工具鏈,或是建立可在其中新增工具整合的空白工具鏈。 進一步瞭解如何使用 IBM Cloud Garage Method中的範本。

  1. 登入 IBM Cloud

  2. 在IBM Cloud控制台中,點選選單圖示漢堡圖示>平台自動化>工具鏈

  3. 在「工具鏈」頁面上,按一下「建立工具鏈」

  4. 在「建立工具鏈」頁面上,點選一個工具鏈範本。

  5. 檢閱即將建立之工具鏈的圖表。 此圖會顯示每個工具整合在工具鏈中的生命週期階段。

    有一些工具鏈範本會有多個工具整合實例。 例如,IBM Cloud Public 上的 "Develop and test microservices with Kubernetes and Helm " 工具鏈模板包含四個 GitHub 實例和四個 Delivery Pipeline 實例。

    下列影像中的圖表是範例。 當您建立工具鏈時,圖表會顯示每一個屬於工具鏈一部分的工具整合。

    工具鏈圖
    範例工具鏈

  6. 檢閱工具鏈設定的預設資訊:

    • 在 IBM Cloud 中,可透過工具鏈名稱來識別工具鏈。 如果您要使用不同的名稱,請變更工具鏈的名稱。
    • 要在其中建立工具鏈的地區。 如果您要使用不同的地區,請從可用地區清單中選取它。
    • 用於建立工具鏈的資源群組。 若要使用其他資源群組,請從「可用資源群組」清單中選取該資源群組。
    • 來源儲存庫的提供者,例如 GitHub、GitLab 或 Bitbucket。 若要使用不同的來源提供者,請從可用儲存庫清單選取。
  7. 在「工具整合」區段中,選取您要配置給工具鏈的每一個工具整合。 有些工具整合不需要進行配置。 如需配置工具整合的相關資訊,請參閱配置工具整合

    組成工具鏈的許多工具整合都需要秘密才能與 Continuous Delivery 服務驗證。

    密鑰是可以以密碼、鑑別記號、API 金鑰或憑證形式提供的認證。 例如,當您將 Delivery Pipeline 工具整合新增至工具鏈時,必須以 API 金鑰形式提供密鑰。

    a. 在「工具整合」區段中,按一下 Delivery Pipeline

    b. 按一下 新建,以建立 IBM Cloud® API 金鑰。

    c. 按一下 確定,以套用新的 API 金鑰。

    每一個使用者最多可以有 20 個 API 金鑰。

    d. 按一下 確定 以建立 API 金鑰,而不儲存金鑰的安全副本。

    e. 若要安全地儲存 API 金鑰,以便您可以在其他工具鏈工作流程中再次使用它,請執行下列動作:

    • 選取 將此金鑰儲存在密鑰儲存庫中以供重複使用 勾選框,以與 Key Protect 或 Secrets Manager 密鑰儲存庫整合。
    • 如果您沒有 Key Protect 或 Secrets Manager的現有實例,請指定實例的名稱及密碼。
    • 按一下 確定,以套用新的 API 金鑰。

    f. 若要驗證已順利建立 Key Protect 或 Secrets Manager 實例,請跳至 IBM Cloud® 資源清單,並展開 服務 小三角形。 若要檢視 API 金鑰,請從功能表列按一下 管理> 存取權 (IAM),然後選取 IBM Cloud® API 金鑰

    如: 您建立並複製到「金鑰專案」的 API 金鑰現在可以在「建立工具鏈」頁面上使用。 任何需要密鑰的工具整合都會顯示金鑰圖示。 按一下金鑰圖示以開啟「密鑰選取器」對話框,以從一個以上 Key Protect 或 Secrets Manager 實例中擷取密鑰。

  8. 按一下建立。 會自動執行數個步驟來設定工具鏈。 根據您選取的工具鏈範本,所設定的工具整合會有所不同。 例如,當您在 IBM Cloud Public 上建立「使用 Kubernetes 和 Helm來開發及測試微服務」工具鏈時,會執行下列步驟:

    • 建立工具鏈。
    • 如果您已配置 Delivery Pipeline,則會建立及觸發管線。
    • 若您已設定「Event Notifications」,工具鏈將設定為將事件通知傳送至您指定的「Event Notifications」服務。
    • 如果您已配置 Sauce Labs,則會設定工具鏈將 Sauce Labs 測試工作新增至管線。
    • 如果您已配置 PagerDuty,則會設定工具鏈將警示通知傳送至所指定的 PagerDuty 服務。
    • 如果您已配置 Slack,則會設定工具鏈將部署狀態通知傳送至所指定的 Slack 頻道。
    • 如果您已配置原始碼工具整合(例如 GitHub),則會將範例 GitHub 儲存庫複製到 GitHub 帳戶。

    現在您可以透過使用 Event Notifications 工具集成。IBM Cloud Event Notifications 是向 PagerDuty 和其他通訊渠道(如 Slack、電子郵件、SMS、推送通知、webhook、Microsoft® Teams, ServiceNow, 和 IBM Cloud Functions )發佈通知的首選方法。 有關使用 Event Notifications 的詳細資訊,請參閱 啟用工具鏈的事件通知

使用主控台從應用程式建立工具鏈

您可以從應用程式建立工具鏈。 工具鏈可以支援連續開發、部署、監視及其他作業,且與您的應用程式相關聯。 每個應用程式都可以與工具鏈相關聯。 將變更推送至工具鏈的 GitHub 儲存庫時,管線會自動建置及部署應用程式。

  1. 如果您是透過 IBM Cloud Public 建立應用程式,該應用程式已設定為從一個新的 GitHub 儲存庫進行持續交付,該儲存庫中已載入應用程式的起始程式碼。

  2. 在工具鏈配置頁面上,檢閱即將建立之工具鏈的圖表。 此圖會顯示每個工具整合在工具鏈中的生命週期階段。

  3. 檢閱工具鏈設定的預設資訊。 在 IBM Cloud 中,可透過工具鏈名稱來識別工具鏈。 如果您要使用不同的名稱,請變更工具鏈的名稱。

  4. 在「工具整合」區段中,選取您要配置給工具鏈的每一個工具整合。 有些工具整合不需要進行配置。 如需配置工具整合的相關資訊,請參閱配置工具整合

  5. 按一下建立。 會自動執行數個步驟來設定工具鏈。 例如,當您從 IBM Cloud Public 的應用程式建立工具鏈時,會執行下列步驟:

    • 建立工具鏈。
    • 如果您已配置 Delivery Pipeline,則會建立及觸發管線。
    • 如果您已配置 GitHub,則會將範例 GitHub 儲存庫複製到 GitHub 帳戶。

使用 API 建立工具鏈

  1. 取得 IAM 持有人記號。 或者,如果您使用 SDK,請 取得 IAM API 金鑰,並使用環境變數來設定用戶端選項。

    export CD_TOOLCHAIN_AUTH_TYPE=iam && \
    export CD_TOOLCHAIN_APIKEY={iam_api_key} && \
    export CD_TOOLCHAIN_URL={base_url}
    
  2. 查閱您要在其中建立工具鏈的資源群組 ID

  3. 選擇您要在其中建立工具鏈的地區。

  4. 建立工具鏈的實例。

    curl -X POST \
      "{base_url}/toolchains" \
      -H 'Authorization: Bearer {token}' \
      -H 'Content-Type: application/json' \
        -d '{
        "name": "{toolchain_name}",
        "resource_group_id": "{resource_group_id}"
      }'
    
    const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2');
    const toolchainService = CdToolchainV2.newInstance();
    ...
    (async() => {
       const toolchainPrototypeModel = {
          description: {toolchain_description},
          name: {toolchain_name},
          resourceGroupId: {resource_group_id}
       };
       const response = await toolchainService.createToolchain(toolchainPrototypeModel);
    })();
    
    import (
    	   "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2"
    )
    ...
    toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{}
    toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions)
    createToolchainOptions := toolchainClient.NewCreateToolchainOptions({toolchain_name}, {resource_group_id})
    createToolchainOptions.SetDescription({toolchain_description})
    toolchain, response, err := toolchainClient.CreateToolchain(createToolchainOptions)
    
    from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2
    ...
    toolchain_service = CdToolchainV2.new_instance()
    toolchain = toolchain_service.create_toolchain(
       description = {toolchain_description},
       name = {toolchain_name},
       resource_group_id = {resource_group_id}
    )
    
    import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain;
    import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*;
    ...
    CdToolchain toolchainService = CdToolchain.newInstance();
    CreateToolchainOptions createToolchainOptions = new CreateToolchainOptions.Builder()
       .description({toolchain_description})
       .name({toolchain_name})
       .resourceGroupId({resource_group_id})
       .build();
    Response<ToolchainPost> response = toolchainService.createToolchain(createToolchainOptions).execute();
    ToolchainPost toolchain = response.getResult();
    

下表列出並說明先前步驟中使用的每一個變數。

用於使用 API 配置工具鏈的變數
變數 說明
{base_url} 工具鏈 API 端點 URL,例如 https://api.us-south.devops.cloud.ibm.com/toolchain/v2。 如需更多關於此端點 URL 的資訊,包括值清單,請參閱 端點 URL
{iam_api_key} 您的 IAM API 金鑰。
{resource_group_id} 要在其中佈建工具鏈之資源群組的 ID。 若要尋找可用資源群組的 ID,請執行 ibmcloud resource groups
{token} 一個有效的 IAM 承載者憑證。
{toolchain_description} 工具鏈的說明。
{toolchain_name} 為您的工具鏈命名。

如需使用 API 建立工具鏈的相關資訊,請參閱 IBM Cloud API 文件中的 建立工具鏈

使用 Terraform 建立工具鏈

  1. 若要安裝 Terraform CLI 並配置適用於 Terraform 的 IBM Cloud 提供者外掛程式,請遵循 開始使用 Terraform on IBM Cloud® 的指導教學。

  2. 建立一個名為 main.tf`` 的 Terraform 配置檔。 在此檔案中,新增配置以使用 HashiCorp 配置語言來建立工具鏈。 如需使用此配置語言的相關資訊,請參閱 Terraform 文件

    下列範例會使用 ibm_cd_toolchain 資源來建立工具鏈。

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_cd_toolchain" "cd_toolchain" {
      name              = "my toolchain"
      resource_group_id = data.ibm_resource_group.group.id
    }
    

    如需 ibm_cd_toolchain 的相關資訊,請參閱 Terraform 登錄文件中的引數參照詳細資料。

  3. 起始設定 Terraform CLI。

    terraform init
    
  4. 建立 Terraform 執行計劃。 此計劃彙總必須執行以建立工具鏈的所有動作。

    terraform plan
    
  5. 套用 Terraform 執行計畫。 Terraform 會採取所有必要動作來建立工具鏈。

    terraform apply
    

檢視工具鏈

您可以使用主控台、從 CLI、使用 API 或使用 Terraform 來檢視工具鏈。

使用控制台檢視工具鏈

在您配置工具鏈及其工具整合之後,即可檢視工具鏈的視覺化呈現。

您可以在應用程式的「詳細資訊」頁面中點擊工具鏈名稱,即可檢視該應用程式的工具鏈。

  1. 在IBM Cloud控制台中,點選選單圖示漢堡圖示>平台自動化>工具鏈

  2. 在「工具鏈」頁面上,選取 資源群組位置。 系統會顯示所選資源群組及位置中所包含的所有工具鏈。 按一下您要檢視的工具鏈,以開啟「概觀」頁面。 或者,在您的應用程式「應用程式詳細資訊」頁面上,點擊工具鏈名稱。

  3. 若要存取工具鏈中的工具整合,請跳至適當的卡片 (例如 Delivery Pipelines),然後按一下工具整合。

    您也可以在 資源清單開發人員工具 種類內找到工具鏈。 依預設,「資源」清單會顯示多個資源群組及位置之間的工具鏈及其他資源。

    如果您有一個以上的 GitHub 或 Git repo,您可能會在 Repositories 卡中有多個相同工具整合的實體,因為每個 repo 都是單獨表示的。 如果您擁有多個管道,可能會出現同一個工具整合的多個實例,因為每個管道都是獨立呈現的。 例如,當您建立「使用 Kubernetes 和 Helm 開發和測試微服務」工具鏈時,每個微服務都有自己的 GitHub 或 Git repo 以及自己的管道。

從 CLI 檢視工具鏈

指令行介面 (CLI) 工具鏈視圖取決於目標資源群組。 請使用以下指令來指定或變更目標資源群組。

  • 若要檢視現行目標資源群組,請執行下列指令:
ibmcloud target
  • 若未設定資源群組,或您想變更資源群組,請執行以下指令:
ibmcloud target -g [RESOURCE-GROUP]
  • 若要檢視目標資源群組中的工具鏈,請執行下列指令:
ibmcloud dev toolchains
  • 若要檢視特定工具鏈的詳細資料,請執行下列指令:
ibmcloud dev toolchain-get [TOOLCHAIN-NAME]
  • 若要在瀏覽器中檢視工具鏈詳細資料,請執行下列指令:
ibmcloud dev toolchain-open [TOOLCHAIN-NAME]

使用 API 取得工具鏈

  1. 取得 IAM 持有人記號。 或者,如果您使用 SDK,請 取得 IAM API 金鑰,並使用環境變數來設定用戶端選項。

    export CD_TOOLCHAIN_AUTH_TYPE=iam && \
    export CD_TOOLCHAIN_APIKEY={iam_api_key} && \
    export CD_TOOLCHAIN_URL={base_url}
    
  2. 查閱工具鏈所在資源群組的 ID

  3. 選擇工具鏈所在的地區。

  4. 取得資源群組中的工具鏈清單。

    curl -X GET \
      "{base_url}/toolchains?resource_group_id={resource_group_id}" \
      -H 'Authorization: Bearer {token}' \
      -H 'Accept: application/json'
    
    const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2');
    const toolchainService = CdToolchainV2.newInstance();
    ...
    (async() => {
       const response = await toolchainService.listToolchains({
          resourceGroupId: {resource_group_id}
       });
    })();
    
    import (
    	   "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2"
    )
    ...
    toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{}
    toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions)
    listToolchainsOptions := toolchainClient.NewListToolchainsOptions({resource_group_id})
    toolchains, response, err := toolchainClient.ListToolchains(listToolchainsOptions)
    
    from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2
    ...
    toolchainService = CdToolchainV2.new_instance()
    toolchains = toolchainService.list_toolchains(
       resource_group_id = {resource_group_id}
    )
    
    import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain;
    import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*;
    ...
    CdToolchain toolchainService = CdToolchain.newInstance();
    ListToolchainsOptions listToolchainsOptions = new ListToolchainsOptions.Builder()
       .resourceGroupId({resource_group_id})
       .build();
    Response<ToolchainCollection> response = toolchainService.listToolchains(listToolchainsOptions).execute();
    ToolchainCollection toolchains = response.getResult();
    
  5. 取得特定的工具鏈。

    curl -X GET \
      {base_url}/toolchains/{toolchain_id} \
      -H 'Authorization: Bearer {token}' \
      -H 'Accept: application/json'
    
    const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2');
    const toolchainService = CdToolchainV2.newInstance();
    ...
    (async() => {
       const response = await toolchainService.getToolchainById({
          toolchainId: {toolchain_id}
       });
    })();
    
    getToolchainByIDOptions := toolchainClient.NewGetToolchainByIDOptions({toolchain_id})
    toolchain, response, err := toolchainClient.GetToolchainByID(getToolchainByIDOptions)
    
    toolchain = toolchainService.get_toolchain_by_id(
       toolchain_id = {toolchain_id}
    )
    
    GetToolchainByIdOptions getToolchainByIdOptions = new GetToolchainByIdOptions.Builder()
       .toolchainId({toolchain_id})
       .build();
    Response<Toolchain> response = toolchainService.getToolchainById(getToolchainByIdOptions).execute();
    Toolchain toolchain = response.getResult();
    

下表列出並說明先前步驟中使用的每一個變數。

用於使用 API 查看工具鏈的變量
變數 說明
{base_url} 工具鏈 API 端點 URL,例如 https://api.us-south.devops.cloud.ibm.com/toolchain/v2。 如需更多關於此端點 URL 的資訊,包括值清單,請參閱 端點 URL
{resource_group_id} 工具鏈所在資源群組的 ID。 若要尋找可用資源群組的 ID,請執行 ibmcloud resource groups
{token} 一個有效的 IAM 承載者憑證。
{toolchain_id} 工具鏈的 ID。

如需使用 API 列出工具鏈及使用 API 取得工具鏈的相關資訊,請參閱 IBM Cloud API 文件中的 取得工具鏈清單取得工具鏈

使用 Terraform 檢視工具鏈

  1. 找出包含現有工具鏈之 resource 區塊的 Terraform 檔案 (例如,main.tf)。

  2. output 區塊新增至 Terraform 檔案 (如果它尚未包含區塊)。

    下列範例中的 resource 說明現有工具鏈。 output 區塊指示 Terraform 輸出工具鏈資源的屬性。

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_cd_toolchain" "cd_toolchain" {
      name              = "my toolchain"
      resource_group_id = data.ibm_resource_group.group.id
    }
    output "cd_toolchain_attributes" {
      value = ibm_cd_toolchain.cd_toolchain
    }
    

    如需 ibm_cd_toolchain 的相關資訊,請參閱 Terraform 登錄文件中的引數參照詳細資料。

  3. 起始設定 Terraform CLI。

    terraform init
    
  4. 使用 refresh-only 選項套用 Terraform 執行計劃。 Terraform 會重新整理其狀態,並顯示工具鏈資源的屬性。

    terraform apply -refresh-only -auto-approve