

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

# 適用於 Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com, 和 GitLab 自我管理動作的 CodeStarSourceConnection
<a name="action-reference-CodestarConnectionSource"></a>

支援連線的來源動作 AWS CodeConnections。CodeConnections 可讓您建立和管理 AWS 資源與第三方儲存庫之間的連線，例如 GitHub。在第三方原始碼儲存庫上進行新的遞交時，啟動管道。來源動作會在手動執行管道或從來源提供者傳送 Webhook 事件時擷取程式碼變更。

您可以在管道中設定動作以使用 Git 組態，讓您使用觸發條件啟動管道。若要設定管道觸發組態以使用觸發條件進行篩選，請參閱 中的更多詳細資訊[使用程式碼推送或提取請求事件類型新增觸發](pipelines-filter.md)。

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

連線可以將 AWS 資源與下列第三方儲存庫建立關聯：
+ Bitbucket Cloud （透過 CodePipeline 主控台中的 **Bitbucket** 提供者選項或 CLI 中的`Bitbucket`提供者）
**注意**  
您可以建立連至 Bitbucket Cloud 儲存庫的連線。不支援安裝式 Bitbucket 供應商類型，例如 Bitbucket 伺服器。
+ 
**注意**  
如果您使用的是 Bitbucket 工作區，您必須具有管理員存取權才能建立連線。
+ GitHub 和 GitHub Enterprise Cloud （透過 CodePipeline 主控台中的 **GitHub （透過 GitHub 應用程式）** 提供者選項或 CLI 中的`GitHub`提供者）
**注意**  
如果您的儲存庫位於 GitHub 組織中，您必須是組織擁有者才能建立連線。如果您使用的儲存庫不在組織中，您必須是儲存庫擁有者。
+ GitHub Enterprise Server （透過 CodePipeline 主控台中的 **GitHub Enterprise Server** 提供者選項或 CLI 中的`GitHub Enterprise Server`提供者）
+ GitLab.com （透過 CodePipeline 主控台中的 **GitLab** 提供者選項或 CLI 中的`GitLab`提供者）
**注意**  
您可以對在 GitLab 中具有**擁有者**角色的儲存庫建立連線，然後該連線可以與具有 CodePipeline 等資源的儲存庫搭配使用。如果是群組中的儲存庫，您不需要為群組擁有者。
+ GitLab (Enterprise Edition 或 Community Edition) 的自我管理安裝 （透過 CodePipeline 主控台中的 **GitLab 自我管理**提供者選項或 CLI 中的`GitLabSelfManaged`提供者）

**注意**  
每個連線都支援您與該提供者擁有的所有儲存庫。您只需要為每個提供者類型建立新的連線。

連線可讓您的管道透過第三方供應商的安裝應用程式偵測來源變更。例如，Webhook 用於訂閱 GitHub 事件類型，並且可以安裝在組織、儲存庫或 GitHub 應用程式上。您的連線會在訂閱 GitHub 推送類型事件的 GitHub 應用程式上安裝儲存庫 Webhook。

偵測到程式碼變更之後，您有下列選擇將程式碼傳遞給後續動作：
+ 預設：如同其他現有的 CodePipeline 來源動作， `CodeStarSourceConnection`可以輸出 ZIP 檔案，其中包含遞交的淺層副本。
+ 完整複製：`CodeStarSourceConnection`也可以設定為針對後續動作將 URL 參考輸出至儲存庫。

  目前，Git URL 參考只能由下游 CodeBuild 動作用來複製儲存庫和相關聯的 Git 中繼資料。嘗試將 Git URL 參考傳遞至非 CodeBuild 動作會導致錯誤。

CodePipeline 會在您建立連線時提示您將 AWS Connector 安裝應用程式新增至第三方帳戶。您必須先建立第三方供應商帳戶和儲存庫，才能透過 `CodeStarSourceConnection`動作進行連線。

**注意**  
若要使用使用 AWS CodeStar 連線所需的許可來建立或連接政策到您的角色，請參閱[連線許可參考](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html#permissions-reference-connections)。根據 CodePipeline 服務角色的建立時間，您可能需要更新其許可以支援 AWS CodeStar 連線。如需說明，請參閱[將許可新增至 CodePipeline 服務角色](how-to-custom-role.md#how-to-update-role-new-services)。

**注意**  
若要在歐洲 （米蘭） 使用連線 AWS 區域，您必須：  
安裝區域特定的應用程式
啟用區域
此區域特定的應用程式支援歐洲 (米蘭) 區域中的連線。它會在第三方供應商網站上發佈，並且它會與支援其他區域連線的現有應用程式分開。透過安裝此應用程式，您授權第三方提供商僅使用該區域服務來共用您的資料，並且您可以透過解除安裝該應用程式來隨時撤銷許可。  
除非您啟用區域，否則服務不會處理或儲存您的資料。啟用此區域，即表示您授予我們服務許可來處理和儲存您的資料。  
即使未啟用該區域，如果仍已安裝區域特定的應用程式，第三方供應商仍然可以使用我們的服務來共用您的資料，因此請確保在停用該區域後解除安裝該應用程式。如需詳細資訊，請參閱[啟用區域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)。

**Topics**
+ [動作類型](#action-reference-CodestarConnectionSource-type)
+ [組態參數](#action-reference-CodestarConnectionSource-config)
+ [Input artifacts (輸入成品)](#action-reference-CodestarConnectionSource-input)
+ [輸出成品](#action-reference-CodestarConnectionSource-output)
+ [輸出變數](#action-reference-CodestarConnectionSource-variables)
+ [服務角色許可：CodeConnections 動作](#edit-role-connections)
+ [動作宣告](#action-reference-CodestarConnectionSource-example)
+ [安裝安裝應用程式並建立連線](#action-reference-CodestarConnectionSource-auth)
+ [另請參閱](#action-reference-CodestarConnectionSource-links)

## 動作類型
<a name="action-reference-CodestarConnectionSource-type"></a>
+ 類別：`Source`
+ 擁有者：`AWS`
+ 提供者：`CodeStarSourceConnection`
+ 版本：`1`

## 組態參數
<a name="action-reference-CodestarConnectionSource-config"></a>

****ConnectionArn****  
必要：是  
針對來源提供者設定和驗證的連線 ARN。

****FullRepositoryId****  
必要：是  
要偵測來源變更的儲存庫的擁有者和名稱。  
範例：`some-user/my-repo`  
您必須維護 **FullRepositoryId** 值的正確大小寫。例如，如果您的使用者名稱是 `some-user`，而儲存庫名稱是 `My-Repo`，則 **FullRepositoryId** 的建議值為 `some-user/My-Repo`。

****BranchName****  
必要：是  
要偵測來源變更的分支名稱。

****OutputArtifactFormat****  
必要：否  
指定輸出成品格式。可以是 `CODEBUILD_CLONE_REF` 或 `CODE_ZIP`。如果未指定，預設值為 `CODE_ZIP`。  
`CODEBUILD_CLONE_REF` 選項只能由 CodeBuild 下游動作使用。  
如果您選擇此選項，您將需要更新 CodeBuild 專案服務角色的許可，如 所示[新增連線至 Bitbucket、GitHub、GitHub Enterprise Server 或 GitLab.com 的 CodeBuild GitClone 許可 GitLab.com](troubleshooting.md#codebuild-role-connections)。如需示範如何使用**完整複製**選項的教學課程，請參閱 [教學課程：搭配 GitHub 管道來源使用完整複製](tutorials-github-gitclone.md)。

**DetectChanges**  
 必要：否  
在已設定的儲存庫和分支上進行新的遞交時，控制會自動啟動您的管道。如果未指定，預設值為 `true`，且預設不會顯示 欄位。此參數的有效值：  
+ `true`：CodePipeline 會在新遞交時自動啟動您的管道。
+ `false`：CodePipeline 不會在新的遞交上啟動您的管道。

## Input artifacts (輸入成品)
<a name="action-reference-CodestarConnectionSource-input"></a>
+ **成品數量：** `0`
+ **描述：**輸入成品不適用於此動作類型。

## 輸出成品
<a name="action-reference-CodestarConnectionSource-output"></a>
+ **成品數量：** `1`
+ **描述：**從儲存庫產生的成品是 `CodeStarSourceConnection` 動作的輸出成品。原始程式碼遞交 ID 會顯示在 CodePipeline 中，做為觸發管道執行的來源修訂版。您可以在下列項目中設定此動作的輸出成品：
  + ZIP 檔案，其中包含在指定為管道執行來源修訂的遞交上所設定的儲存庫和分支的內容。
  + JSON 檔案，其中包含儲存庫的 URL 參考，讓下游動作可以直接執行 Git 命令。
**重要**  
此選項只能由 CodeBuild 下游動作使用。  
如果您選擇此選項，您將需要更新 CodeBuild 專案服務角色的許可，如 所示[CodePipeline 故障診斷](troubleshooting.md)。如需示範如何使用**完整複製**選項的教學課程，請參閱 [教學課程：搭配 GitHub 管道來源使用完整複製](tutorials-github-gitclone.md)。

## 輸出變數
<a name="action-reference-CodestarConnectionSource-variables"></a>

設定時，此動作會產生變數，供管道中的下游動作的動作組態所參考。即使此動作沒有命名空間，此動作產生的變數仍可視為輸出變數。您可以設定動作的命名空間，讓這些變數可供下游動作的組態使用。

如需詳細資訊，請參閱[變數參考](reference-variables.md)。

AuthorDate  
遞交的撰寫日期 (時間戳記格式)。

BranchName  
進行來源變更的 儲存庫分支的名稱。

CommitId  
觸發管道執行的 遞交 ID。

CommitMessage  
與觸發管道執行的遞交相關聯的描述訊息 (如果有的話)。

ConnectionArn  
針對來源提供者設定和驗證的連線 ARN。

FullRepositoryName  
進行遞交以觸發管道的 儲存庫的名稱。

## 服務角色許可：CodeConnections 動作
<a name="edit-role-connections"></a>

對於 CodeConnections，需要下列許可來建立具有使用連線之來源的管道，例如 Bitbucket Cloud。

```
{
    "Effect": "Allow",
    "Action": [
        "codeconnections:UseConnection"
    ],
    "Resource": "resource_ARN"
},
```

如需連線的 IAM 許可的詳細資訊，請參閱[連線許可參考](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html#permissions-reference-connections)。

## 動作宣告
<a name="action-reference-CodestarConnectionSource-example"></a>

在下列範例中，輸出成品會設定為`CODE_ZIP`與 ARN 連線的預設 ZIP 格式 `arn:aws:codestar-connections:region:account-id:connection/connection-id`。

------
#### [ YAML ]

```
Name: Source
Actions:
  - InputArtifacts: []
    ActionTypeId:
      Version: '1'
      Owner: AWS
      Category: Source
      Provider: CodeStarSourceConnection
    OutputArtifacts:
      - Name: SourceArtifact
    RunOrder: 1
    Configuration:
      ConnectionArn: "arn:aws:codestar-connections:region:account-id:connection/connection-id"
      FullRepositoryId: "some-user/my-repo"
      BranchName: "main"
      OutputArtifactFormat: "CODE_ZIP"
    Name: ApplicationSource
```

------
#### [ JSON ]

```
{
    "Name": "Source",
    "Actions": [
        {
            "InputArtifacts": [],
            "ActionTypeId": {
                "Version": "1",
                "Owner": "AWS",
                "Category": "Source",
                "Provider": "CodeStarSourceConnection"
            },
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "RunOrder": 1,
            "Configuration": {
                "ConnectionArn": "arn:aws:codestar-connections:region:account-id:connection/connection-id",
                "FullRepositoryId": "some-user/my-repo",
                "BranchName": "main",
                "OutputArtifactFormat": "CODE_ZIP"
            },
            "Name": "ApplicationSource"
        }
    ]
},
```

------

## 安裝安裝應用程式並建立連線
<a name="action-reference-CodestarConnectionSource-auth"></a>

第一次使用主控台將新連線新增至第三方儲存庫時，您必須授權 CodePipeline 存取您的儲存庫。您可以選擇或建立安裝應用程式，以協助連線至您用來建立第三方程式碼儲存庫的帳戶。

 使用 AWS CLI 或 CloudFormation 範本時，您必須提供已通過安裝交握之連線的連線 ARN。否則不會觸發管道。

**注意**  
對於`CodeStarSourceConnection`來源動作，您不需要設定 Webhook 或預設輪詢。連線動作會為您管理來源變更偵測。

## 另請參閱
<a name="action-reference-CodestarConnectionSource-links"></a>

以下相關資源可協助您使用此動作。
+ [AWS::CodeStarConnections::Connection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html) – AWS CodeStar Connections 資源的 CloudFormation 範本參考提供 CloudFormation 範本中連線的參數和範例。
+ [AWS CodeStar Connections API 參考](https://docs.aws.amazon.com/codestar-connections/latest/APIReference/Welcome.html) – *AWS CodeStar Connections API 參考*提供可用連線動作的參考資訊。
+ 若要檢視使用連線支援的來源動作建立管道的步驟，請參閱以下內容：
  + 對於 Bitbucket Cloud，請使用主控台中的 **Bitbucket** 選項或 CLI 中的 `CodestarSourceConnection`動作。請參閱 [Bitbucket 雲端連線](connections-bitbucket.md)。
  + 對於 GitHub 和 GitHub Enterprise Cloud，請使用主控台中的 **GitHub** 提供者選項或 CLI 中的 `CodestarSourceConnection`動作。請參閱 [GitHub 連線](connections-github.md)。
  + 對於 GitHub Enterprise Server，請使用主控台中的 **GitHub Enterprise Server** 提供者選項或 CLI 中的 `CodestarSourceConnection`動作。請參閱 [GitHub Enterprise Server 連線](connections-ghes.md)。
  + 對於 GitLab.com,請在 主控台中使用 **GitLab** 提供者選項，或在 CLI 中使用 `CodestarSourceConnection` 動作搭配`GitLab`提供者。請參閱 [GitLab.com 連線](connections-gitlab.md)。
+ 若要檢視使用 Bitbucket 來源和 CodeBuild 動作建立管道的入門教學課程，請參閱[連線入門](https://docs.aws.amazon.com/dtconsole/latest/userguide/getting-started-connections.html)。
+ 如需示範如何連線至 GitHub 儲存庫，以及搭配下游 CodeBuild 動作使用**完整複製**選項的教學課程，請參閱 [教學課程：搭配 GitHub 管道來源使用完整複製](tutorials-github-gitclone.md)。