我已將 AWS CodeBuild 專案設定為使用 GitHub Action 作為來源提供者。然而,當建置進入「Download_Source」階段時,會發生失敗。
簡短說明
您必須加入 CodeBuild 主控台的專案名稱,才能使用正確的專案設定調用作業。當您沒有驗證資訊且 CodeBuild 專案在「Download_Source」失敗時,會出現以下錯誤:
「CLIENT_ERROR: authentication required for primary source」
「CLIENT_ERROR: authorization failed for primary source and source version:」
若要解決這些錯誤,請識別所使用的驗證方法,然後設定必要的設定與權限。
解決方法
若要確定您是使用哪種方法將 CodeBuild 連線至 GitHub,請完成以下步驟:
- 開啟 CodeBuild console (CodeBuild 主控台)。
- 在導覽窗格中,展開 Build (建置),然後選擇 Build projects (建置專案)。
- 選取您的建置專案,然後選擇 Edit (編輯)。
- 在 Source (來源) 區段中,查看 Credential (憑證) 訊息,以識別您所使用的驗證方法。
對於個人存取權杖
若要確認您的個人存取權杖存在且有效,請執行以下操作:
- 檢查您的 GitHub 開發人員設定。如需更多資訊,請參閱 GitHub Docs 網站上的管理您的個人存取權杖。
- 確保您已正確設定個人存取權杖及存取權杖先決條件。
- 如果您的個人存取權杖已過期,請重新生成驗證權杖,並在 AWS Secrets Manager 中更新權杖。
對於 Secrets Manager 密碼
若要確認您的 Secrets Manager 密碼存在且未過期,請執行以下操作:
- 如果您是透過 Secrets Manager 密碼連線,請檢查該密碼存在且值為最新。
- 確認您的 CodeBuild 專案服務角色具有 secretsmanager:GetSecretValue 權限,以取得密碼。
若要檢查您是否擁有 secretsmanager:GetSecretValue 權限,請取得 CodeBuild 專案的服務角色。請完成下列步驟:
- 開啟 CodeBuild console (CodeBuild 主控台)。
- 選取專案,然後選擇 Project details (專案詳細資料) 索引標籤。
- 在 Environment (環境) 組態中,選擇 Service role (服務角色) 設定。
- 選取服務角色。
- 確認該角色擁有以下權限:
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": [
"arn:aws:secretsmanager:region:account-id:secret:secretName"
]
**注意:**將 region 替換為您的 AWS 區域,將 account-ID 替換為您的 AWS 帳戶 ID,並將 secretName 替換為您的密碼名稱。
對於 OAuth 應用程式
您的 OAuth 權杖與 GitHub 使用者綁定。如果 GitHub 使用者已移出組織,則該權杖將不再有效。若要檢視您已授權的 OAuth 應用程式,請確認 GitHub 上的應用程式清單中,包含 aws-codesuite 擁有的 AWS CodeBuild (區域) 應用程式。
對於 CodeConnections
若要確認 CodeConnections 存在且有效,請執行以下操作:
相關資訊
GitHub OAuth 應用程式
在 CodeBuild 中存取 GitHub 與 GitHub Enterprise Server
變更 AWS CodeBuild 中的建置專案設定