我已將 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 主控台。
- 在導覽窗格中,展開 Build (建置),然後選擇 Build projects (建置專案)。
- 選取您的建置專案,然後選擇 Edit (編輯)。
- 在 Source (來源) 區段中,查看 Credential (憑證) 訊息,確認您所使用的驗證方法。
個人存取權杖
若要確認您的個人存取權杖存在且有效,請執行以下動作:
Secrets Manager 密碼
若要確認您的 Secrets Manager 密碼存在且未過期,請執行以下動作:
- 如果您是透過 Secrets Manager 密碼連線,請檢查該密碼是否存在且為最新值。
- 確認您的 CodeBuild 專案服務角色是否具有 secretsmanager:GetSecretValue 以取得密碼。
若要檢查您是否擁有 secretsmanager:GetSecretValue 許可,請取得 CodeBuild 專案的服務角色。請完成下列步驟:
- 開啟 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 上的 Applications (應用程式) 清單中,包含 aws-codesuite 擁有的 AWS CodeBuild (區域) 應用程式。
CodeConnections
若要確認 CodeConnections 存在且有效,請執行以下動作:
相關資訊
GitHub OAuth 應用程式
在 CodeBuild 中存取 GitHub 與 GitHub Enterprise Server
變更 AWS CodeBuild 中的建置專案設定