

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# GitLab 自我管理的連線
<a name="connections-gitlab-managed"></a>

連線可讓您授權和建立將第三方供應商與 AWS 資源建立關聯的組態。若要將第三方儲存庫關聯為管道的來源，請使用 連線。

**注意**  
您可以使用另一個 之間的共用連線，而不是在帳戶中建立或使用現有的連線 AWS 帳戶。請參閱 [使用與其他 帳戶共用的連線](connections-shared.md)。

**注意**  
此功能不適用於亞太區域 （香港）、亞太區域 （海德拉巴）、亞太區域 （雅加達）、亞太區域 （墨爾本）、亞太區域 （大阪）、非洲 （開普敦）、中東 （巴林）、中東 （阿拉伯聯合大公國）、歐洲 （西班牙）、歐洲 （蘇黎世）、以色列 （特拉維夫） 或 AWS GovCloud （美國西部） 區域。若要參考其他可用的動作，請參閱 [與 CodePipeline 的產品和服務整合](integrations.md)。如需歐洲 （米蘭） 區域中此動作的考量，請參閱 中的備註[適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)。

若要在 CodePipeline 中新增 GitLab 自我管理來源動作，您可以選擇：
+ 使用 CodePipeline 主控台**建立管道**精靈或**編輯動作**頁面，選擇 **GitLab 自我管理**提供者選項。請參閱 [建立 GitLab 自我管理的連線 (主控台)](#connections-gitlab-managed-console) 以新增 動作。主控台可協助您建立主機資源和連線資源。
+ 使用 CLI 向`GitLabSelfManaged`提供者新增`CreateSourceConnection`動作的動作組態，並建立您的資源：
  + 若要建立連線資源，請參閱[建立主機並連線至 GitLab 自我管理 (CLI)](#connections-gitlab-managed-cli)使用 CLI 建立主機資源和連線資源。
  + 使用 中`CreateSourceConnection`的範例動作組態[適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)來新增動作，如 所示[建立管道 (CLI)](pipelines-create.md#pipelines-create-cli)。

**注意**  
您也可以使用**設定**下的開發人員工具主控台建立連線。請參閱[建立連線](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。

開始之前：
+ 您必須先在 GitLab 建立帳戶，並擁有具自我管理安裝的 GitLab 企業版或 GitLab 社群版。如需詳細資訊，請參閱 [https://docs.gitlab.com/ee/subscriptions/self\$1managed/](https://docs.gitlab.com/ee/subscriptions/self_managed/)。
**注意**  
連線只能存取用於建立和授權連線之帳戶。
**注意**  
您可以對在 GitLab 中具有**擁有者**角色的儲存庫建立連線，然後該連線可以與具有 CodePipeline 等資源搭配使用。如果是群組中的儲存庫，您不需要為群組擁有者。
+ 您必須已經創建了僅具有以下範圍縮小許可的 GitLab 個人存取權杖 (PAT)：api。如需詳細資訊，請參閱 [https://docs.gitlab.com/ee/user/profile/personal\$1access\$1tokens.html](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。您必須是管理員才能建立和使用 PAT。
**注意**  
您的 PAT 會用於授權主機，不會以其他方式儲存或由連線使用。若要設置主體，您可以建立臨時 PAT，然後在設置主體後刪除 PAT。
+ 您可以選擇提前設定您的主機。您可以使用或不使用 VPC 設定主機。如需 VPC 組態的詳細資訊，以及建立主機的其他資訊，請參閱[建立主機](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-host-create.html)。

**Topics**
+ [建立 GitLab 自我管理的連線 (主控台)](#connections-gitlab-managed-console)
+ [建立主機並連線至 GitLab 自我管理 (CLI)](#connections-gitlab-managed-cli)

## 建立 GitLab 自我管理的連線 (主控台)
<a name="connections-gitlab-managed-console"></a>

使用這些步驟來使用 CodePipeline 主控台為您的 GitLab 自我管理儲存庫新增連線動作。

**注意**  
GitLab 自我管理連線僅提供存取 GitLab 自我管理帳戶所擁有的儲存庫，該儲存庫用於建立連線。

**開始之前：**

對於 GitLab 自我管理的主機連線，您必須完成為連線建立主機資源的步驟。請參閱[管理連線的主機](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-hosts.html)。

### 步驟 1：建立或編輯管道
<a name="connections-gitlab-managed-console-action"></a>

**建立或編輯管道**

1. 登入 CodePipeline 主控台。

1. 選擇下列其中一項。
   + 選擇 以建立管道。依照*建立管道*中的步驟完成第一個畫面，然後選擇**下一步**。在**來源**頁面的**來源提供者**下，選擇 **GitLab 自我管理**。
   + 選擇 編輯現有的管道。選擇**編輯**，然後選擇**編輯階段**。選擇 以新增或編輯來源動作。在**編輯動作**頁面**的動作名稱**下，輸入動作的名稱。在**動作提供者**中，選擇 **GitLab 自我管理**。

1. 執行以下任意一項：
   + 在**連線**下，如果您尚未建立與提供者的連線，請選擇**連線至 GitLab 自我管理**。繼續步驟 2：建立 GitLab 自我管理的連線。
   + 在**連線**下，如果您已建立與提供者的連線，請選擇連線，然後繼續進行步驟 3：儲存您的 GitLab 自我管理來源動作。

### 步驟 2：建立 GitLab 自我管理的連線
<a name="connections-gitlab-managed-console-create"></a>

選擇建立連線後，會顯示**連線至 GitLab 自我管理**頁面。

**連線至 GitLab 自我管理**

1. 針對 **Connection name (連線名稱**)，請輸入連線的名稱。

1. 在 **URL** 中，輸入伺服器的端點。
**注意**  
如果提供的 URL 已用於設定連線的主機，系統會提示您選擇先前為該端點建立的主機資源 ARN。

1. 如果您已在 Amazon VPC 中啟動伺服器，並且想要與 VPC 連線，請選擇**使用 VPC **並完成 VPC 的資訊。

1. 選擇**連線 GitLab 自我管理**。建立的連線會顯示 **Pending (待定)** 狀態。系統會利用您提供的伺服器資訊為連線建立主機資源。主機名稱會使用 URL。

1. 選擇 **Update pending connection (更新待定連線)**。

1. 如果頁面開啟時出現重新導向訊息，確認您想要繼續前往供應商，請選擇**繼續**。輸入提供者的授權。

1. 將顯示**設定 *host\$1name*** 頁面。在**提供個人存取字符**中，僅向 GitLab PAT 提供下列縮小範圍許可：`api`。
**注意**  
只有管理員可以建立和使用 PAT。

   選擇**繼續**。  
![\[主控台螢幕擷取畫面，顯示新主機的 GitLab 自我管理個人存取字符項目\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/connections-create-glsm-pat.png)

1. 連線頁面會顯示建立的連線處於 **Available (可用)** 狀態。

### 步驟 3：儲存您的 GitLab 自我管理來源動作
<a name="connections-gitlab-managed-console-save"></a>

在精靈或**編輯動作**頁面上使用這些步驟，將來源動作與連線資訊一起儲存。

**使用連線完成並儲存來源動作**

1. 在 **Repository name (儲存庫名稱)** 中，選擇第三方儲存庫的名稱。

1. 如果您的動作是 CodeConnections 動作，您可以在**管道觸發**下新增觸發。若要設定管道觸發組態並選擇性地使用觸發來篩選，請參閱 中的更多詳細資訊[使用程式碼推送或提取請求事件類型新增觸發](pipelines-filter.md)。

1. 在 **Output artifact format (輸出成品格式)** 中，您必須選擇成品的格式。
   + 若要使用預設方法儲存 GitLab 自我管理動作的輸出成品，請選擇 **CodePipeline 預設**。動作會從儲存庫存取檔案，並將成品存放在管道成品存放區中的 ZIP 檔案中。
   + 若要存放包含儲存庫 URL 參考的 JSON 檔案，以便下游動作可以直接執行 Git 命令，請選擇 **Full clone (完整複製)**。此選項只能由 CodeBuild 下游動作使用。

1. 在精靈上選擇**下一步**，或在**編輯動作**頁面上選擇**儲存**。

## 建立主機並連線至 GitLab 自我管理 (CLI)
<a name="connections-gitlab-managed-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 來建立連線。

若要這麼做，請使用 **create-connection** 命令。

**重要**  
根據預設，透過 AWS CLI 或 建立的連線 AWS CloudFormation 處於 `PENDING` 狀態。建立與 CLI 或 的連線後 CloudFormation，請使用 主控台來編輯連線，使其成為狀態 `AVAILABLE`。

您可以使用 AWS Command Line Interface (AWS CLI) 為已安裝的連線建立主機。

您可以使用主機來代表安裝第三方供應商的基礎設施之端點。使用 CLI 完成主機建立後，主機會處於**待定**狀態。然後，您可以設定或註冊主機，將其移至**可用**狀態。主機變為可用後，便可完成建立連線的步驟。

若要這麼做，請使用 **create-host** 命令。

**重要**  
根據預設，透過 建立的主機 AWS CLI 處於 `Pending` 狀態。使用 CLI 建立主機之後，請使用 主控台或 CLI 來設定主機使其狀態為 `Available`。

**建立主機**

1. 開啟終端機 (Linux、macOS 或 Unix) 或命令提示 (Windows)。使用 AWS CLI 執行 **create-host**命令，`--provider-endpoint`為您的連線指定 `--name`、 `--provider-type`和 。在此範例中，第三方供應商名稱為 `GitLabSelfManaged`，而端點為 `my-instance.dev`。

   ```
   aws codestar-connections create-host --name MyHost --provider-type GitLabSelfManaged --provider-endpoint "https://my-instance.dev"
   ```

   如果成功，此命令會傳回類似下列內容的主機 Amazon Resource Name (ARN) 資訊。

   ```
   {
       "HostArn": "arn:aws:codestar-connections:us-west-2:account_id:host/My-Host-28aef605"
   }
   ```

   完成此步驟後，主機會處於 `PENDING` 狀態。

1. 使用主控台完成主機設定，並將主機變為 `Available` 狀態。

**建立 GitLab 自我管理的連線**

1. 開啟終端機 (Linux、macOS 或 Unix) 或命令提示 (Windows)。使用 AWS CLI 執行 **create-connection**命令，`--connection-name`為您的連線指定 `--host-arn`和 。

   ```
   aws codestar-connections create-connection --host-arn arn:aws:codestar-connections:us-west-2:account_id:host/MyHost-234EXAMPLE --connection-name MyConnection
   ```

   如果成功，此命令會傳回類似下列內容的連線 ARN 資訊。

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad"
   }
   ```

1. 使用主控台來設定待定連線。

1. 管道預設為在程式碼推送至連線來源儲存庫時偵測變更。若要設定手動發行或 Git 標籤的管道觸發組態，請執行下列其中一項操作：
   + 若要將管道觸發組態設定為僅從手動版本開始，請將以下行新增至組態：

     ```
     "DetectChanges": "false",
     ```
   + 若要設定管道觸發組態以使用觸發條件進行篩選，請參閱 中的更多詳細資訊[使用程式碼推送或提取請求事件類型新增觸發](pipelines-filter.md)。例如，以下內容會新增至管道 JSON 定義的管道層級。在此範例中， `release-v0`和 `release-v1`是要包含的 Git 標籤， `release-v2`是要排除的 Git 標籤。

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```