搭配 CodeArtifact 設定和使用 pip - CodeArtifact

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

搭配 CodeArtifact 設定和使用 pip

pip 是 Python 套件的套件安裝程式。若要使用 pip 從 CodeArtifact 儲存庫安裝 Python 套件,您必須先使用 CodeArtifact 儲存庫資訊和登入資料來設定 pip 用戶端。

pip 只能用於安裝 Python 套件。若要發佈 Python 套件,您可以使用雙工。如需詳細資訊,請參閱使用 CodeArtifact 設定和使用雙身

使用 login命令設定 pip

首先,設定您的 AWS 登入資料以與 搭配使用 AWS CLI,如中所述CodeArtifact 入門。然後,使用 CodeArtifact login命令來擷取憑證並使用它們pip進行設定。

注意

如果您在擁有的網域中存取儲存庫,則不需要包含 --domain-owner。如需詳細資訊,請參閱跨帳戶網域

若要設定 pip,請執行下列命令。

aws codeartifact login --tool pip --domain my_domain --domain-owner 111122223333 --repository my_repo

login 使用您的 AWS 登入資料從 CodeArtifact 擷取授權字符。login 命令會編輯 ~/.config/pip/pip.confindex-url將 設定為 --repository選項指定的儲存庫,pip以將 設定為與 CodeArtifact 搭配使用。

呼叫 後的預設授權期間login為 12 小時,login必須呼叫 以定期重新整理字符。如需使用 login命令建立的授權字符的詳細資訊,請參閱 使用 login命令建立的字符

設定不含登入命令的 pip

如果您無法使用 login命令來設定 pip,您可以使用 pip config

  1. 使用 AWS CLI 擷取新的授權字符。

    注意

    如果您在擁有的網域中存取儲存庫,則不需要包含 --domain-owner。如需詳細資訊,請參閱跨帳戶網域

    CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  2. 使用 pip config 設定 CodeArtifact 登錄 URL 和登入資料。下列命令只會更新目前的環境組態檔案。若要更新整個系統的組態檔案,請將 取代siteglobal

    pip config set site.index-url https://aws:$CODEARTIFACT_AUTH_TOKEN@my_domain-111122223333.d.codeartifact.region.amazonaws.com/pypi/my_repo/simple/
    注意

    若要使用雙堆疊端點,請使用 codeartifact.region.on.aws端點。

重要

登錄 URL 必須以正斜線 (/) 結尾。否則,您無法連線到儲存庫。

範例 pip 組態檔案

以下是設定 CodeArtifact 登錄 URL 和登入資料後pip.conf的檔案範例。

[global] index-url = https://aws:eyJ2ZX...@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/pypi/my_repo/simple/

執行 pip

若要執行pip命令,您必須pip使用 CodeArtifact 設定 。如需詳細資訊,請參閱下列文件。

  1. 請依照 使用 AWS CodeArtifact 設定區段中的步驟來設定 AWS 您的帳戶、工具和許可。

  2. twine 請依照中的步驟進行設定使用 CodeArtifact 設定和使用雙身

假設您的儲存庫或其中一個上游儲存庫中有套件,您可以使用 安裝套件pip install。例如,使用下列命令來安裝 requests套件。

pip install requests

使用 -i選項暫時還原為從 https://pypi.org 安裝套件,而非 CodeArtifact 儲存庫。

pip install -i https://pypi.org/simple requests