CodeArtifact 與數字網或網點網 CLI 一起使用 - CodeArtifact

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

CodeArtifact 與數字網或網點網 CLI 一起使用

您可以使用 CLI 工具,例nuget如從 CodeArtifact. dotnet 本文件提供設定 CLI 工具以及使用它們來發佈或使用套件的相關資訊。

設定數字或網點網路 CLI

您可以使用或手動使用 CodeArtifact NuGet 認證提供者來設定 nuget 或 dotnet CLI。 AWS CLI強烈建議您 NuGet 使用認證提供者進行設定,以簡化設定和持續驗證。

方法 1:使用 CodeArtifact NuGet 認證提供者進行設定

CodeArtifact NuGet 認證提供者可簡化 CodeArtifact 使用 NuGet CLI 工具的驗證和設定。 CodeArtifact 身份驗證令牌的有效期最多為 12 小時。為了避免在使用 nuget 或 dotnet CLI 時必須手動刷新令牌,憑據提供程序會在當前令牌到期之前定期獲取新令牌。

重要

若要使用認證提供者,請確定已從nuget.config檔案中清除任何可能已手動新增的現有 AWS CodeArtifact 認證,或執aws codeartifact login行 NuGet 先前設定。

安裝和設定 CodeArtifact NuGet 認證提供者

dotnet
  1. 下載最新版本的 AWS。 CodeArtifact。 NuGet。 CredentialProvider 使用以下dotnet命令來自 NuGet .org 的工具。

    dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
  2. 使用命codeartifact-creds install令將憑證提供者複製到 NuGet plugins 資料夾。

    dotnet codeartifact-creds install
  3. (選擇性):設 AWS 定您要與認證提供者搭配使用的設定檔。如果未設定,認證提供者將使用預設設定檔。如需 AWS CLI 設定檔的詳細資訊,請參閱具名的設定檔

    dotnet codeartifact-creds configure set profile profile_name
nuget

執行下列步驟以使用 NuGet CLI 從 Amazon S3 儲存貯體安裝 CodeArtifact NuGet 登入資料提供者並進行設定。認證提供者將使用預設設定 AWS CLI 檔,如需有關設定檔的詳細資訊,請參閱具名的設定檔

  1. 從 Amazon S3 儲存貯體下載最新版本的CodeArtifact NuGet 登入資料提供者 (codeartifact-nuget-credentialprovider.zip)

    若要檢視和下載舊版,請參閱CodeArtifact NuGet 認證提供者版本

  2. 解壓縮檔案。

  3. 複製 AWS。 CodeArtifact。 NuGetCredentialProvider文件夾從網絡文件夾到%user_profile%/.nuget/plugins/netfx/視窗或 Linux 或 MacOS ~/.nuget/plugins/netfx 上。

  4. 複製 AWS。 CodeArtifact。 NuGetCredentialProvider文件夾從網絡核心文件夾%user_profile%/.nuget/plugins/netcore/到視窗或 Linux 或 MacOS ~/.nuget/plugins/netcore 上。

建立存放庫並設定認證提供者之後,您可以使用nugetdotnet CLI 工具來安裝和發佈套件。如需詳細資訊,請參閱 使用 NuGet 套件 CodeArtifact將 NuGet 套件發佈至 CodeArtifact

方法 2:使用登錄命令配置 nuget 或 dotnet

中的codeartifact login命令將存儲庫端點和授權令牌 AWS CLI 添加到您的 NuGet 配置文件中,以使 nuget 或 dotnet 連接到您的存儲庫。 CodeArtifact 這將修改位於視窗和~/.config/NuGet/NuGet.Config~/.nuget/NuGet/NuGet.Config Mac /Linux 的%appdata%\NuGet\NuGet.Config用戶級 NuGet 配置。如需有關 NuGet 組態的詳細資訊,請參閱一般 NuGet 組態

使用命令配置 nuget 或網點網 login
  1. 設定您的 AWS 認證以搭配使用 AWS CLI,如中所述入門 CodeArtifact

  2. 確定已正確安裝及設定 NuGet CLI 工具 (nugetdotnet)。如需指示,請參閱 Nugetdot net 文件。

  3. 使用命 CodeArtifact login令擷取要搭配使用的認證 NuGet。

    注意

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

    dotnet
    重要

    Linux 和 MacOS 使用者:由於非 Windows 平台不支援加密,因此擷取的認證會以純文字形式儲存在您的設定檔中。

    aws codeartifact login --tool dotnet --domain my_domain --domain-owner 111122223333 --repository my_repo
    nuget
    aws codeartifact login --tool nuget --domain my_domain --domain-owner 111122223333 --repository my_repo

登入指令將會:

  • 從 CodeArtifact 使用您的 AWS 憑據中獲取授權令牌。

  • 使用 NuGet 套件來源的新項目來更新您的使用者層級 NuGet 組態。指向您的 CodeArtifact 存儲庫端點的源將被調用domain_name/repo_name

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

建立存放庫並設定驗證後,您可以使用nugetdotnet、或 msbuild CLI 用戶端來安裝和發佈套件。如需詳細資訊,請參閱 使用 NuGet 套件 CodeArtifact將 NuGet 套件發佈至 CodeArtifact

方法 3:在沒有登錄命令的情況下配置 nuget 或 dotnet

對於手動配置,您必須將存儲庫端點和授權令牌添加到 NuGet 配置文件中,以使 nuget 或 dotnet 連接到您的存儲庫。 CodeArtifact

手動配置 nuget 或 dotnet 以連接到您的存儲庫。 CodeArtifact

  1. 使用get-repository-endpoint AWS CLI 命令確定您的 CodeArtifact 存儲庫端點。

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format nuget

    輸出範例:

    { "repositoryEndpoint": "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/" }
  2. 使用命令從軟件包管理器獲取授權get-authorization-token AWS CLI 令牌以連接到存儲庫。

    aws codeartifact get-authorization-token --domain my_domain

    輸出範例:

    { "authorizationToken": "eyJ2I...viOw", "expiration": 1601616533.0 }
  3. 透過附加至步驟 3 所傳回的 URL /v3/index.json 來建立完整的存放庫端點 URL。get-repository-endpoint

  4. 將 nuget 或 dotnet 配置為使用步驟 1 中的存儲庫端點和步驟 2 中的授權令牌。

    注意

    來源網址必須以結尾,nuget 或 dotnet 才能成功連線到儲存庫。/v3/index.json CodeArtifact

    dotnet

    Linux 和 MacOS 使用者:由於非 Windows 平台不支援加密,因此您必須將--store-password-in-clear-text旗標新增至下列命令。請注意,這會將您的密碼作為純文本存儲在您的配置文件中。

    dotnet nuget add source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json --name packageSourceName --password eyJ2I...viOw --username aws
    注意

    若要更新既有的來源,請使用dotnet nuget update source指令。

    nuget
    nuget sources add -name domain_name/repo_name -Source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json -password eyJ2I...viOw -username aws

    輸出範例:

    Package source with Name: domain_name/repo_name added successfully.

使用 NuGet 套件 CodeArtifact

NuGet 配置完成後 CodeArtifact,您可以使用儲存在儲存庫或其上游儲存庫之一中的 NuGet 套裝程式。 CodeArtifact

若要使nuget用或使用儲 CodeArtifact 存庫或其上游儲存庫之一的套件版本dotnet,請執行下列指令,以您要使用的套件名稱取代 PackageName,並packageSourceName使用 NuGet 組態檔中儲 CodeArtifact 存庫的來源名稱取代 PackageName。如果您使用此指login令來設定 NuGet 組態,則來源名稱為網域名稱/repo_name

注意

當要求套件時, NuGet 用戶端會快取該套件的哪些版本存在。由於這種行為,先前在所需版本可用之前請求的套件,安裝可能會失敗。若要避免此失敗並成功安裝現有的套件,您可以在使用或進行安裝之前清除 NuGet 快取dotnet nuget locals all --clearnuget locals all --clear或者透過提供的選項nuget-NoCache選項來避免在installrestore指令期間使用快取dotnet--no-cache

dotnet
dotnet add package packageName --source packageSourceName
nuget
nuget install packageName -Source packageSourceName

若要安裝特定版本的套件

dotnet
dotnet add package packageName --version 1.0.0 --source packageSourceName
nuget
nuget install packageName -Version 1.0.0 -Source packageSourceName

如需詳細資訊,請參閱使用 nuget.exe CLI 管理套件或使用 dotnet CLI 安裝和管理套

您可以透過 CodeArtifact 儲存庫使用 NuGet.org 的外部連線來使用 NuGet.org 的 NuGet 套件。從 NuGet.org 使用的套件會擷取並儲存在您的儲存 CodeArtifact 庫中。如需新增外部連線的詳細資訊,請參閱將 CodeArtifact 存儲庫 Connect 到公共存儲庫

將 NuGet 套件發佈至 CodeArtifact

配置 NuGet 完成後 CodeArtifact,您可以使用nugetdotnet將套件版本發佈到 CodeArtifact 儲存庫。

若要將套件版本推送至 CodeArtifact 儲存庫,請執行下列指令,並在 NuGet 組態檔中使用.nupkg檔案的完整路徑和 CodeArtifact 儲存庫的來源名稱。如果您使用login指令來設定 NuGet 組態,則來源名稱為domain_name/repo_name

注意

如果您沒有要發佈的 NuGet 封裝,您可以建立封裝。如需詳細資訊,請參閱 Microsoft 文件中的 P ackage 建立工作流程

dotnet
dotnet nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg --source packageSourceName
nuget
nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg -Source packageSourceName

CodeArtifact NuGet 憑證提供者參考

CodeArtifact NuGet 憑證提供者可讓您輕鬆設定和驗證您 NuGet 的 CodeArtifact 儲存庫。

CodeArtifact NuGet 認證提供者命令

本節包含 CodeArtifact NuGet 認證提供者的命令清單。這些命令必須加上前綴,dotnet codeartifact-creds如下列範例所示。

dotnet codeartifact-creds command
  • configure set profile profile:設定認證提供者以使用提供 AWS 的設定檔。

  • configure unset profile:移除設定的設定檔 (如果已設定)。

  • install:將認證提供者複製到資plugins料夾。

  • install --profile profile:將認證提供者複製到plugins資料夾,並將其設定為使用提供 AWS 的設定檔。

  • uninstall:解除安裝認證提供者。這不會移除組態檔案的變更。

  • uninstall --delete-configuration:解除安裝認證提供者,並移除組態檔的所有變更。

CodeArtifact NuGet 認證提供者記錄

若要啟用 CodeArtifact NuGet 認證提供者的記錄,您必須在環境中設定記錄檔。認證提供者記錄檔包含有用的偵錯資訊,例如:

  • 用於 AWS 建立連線的設定檔

  • 任何驗證錯誤

  • 如果提供的端點不是 CodeArtifact URL

設定 CodeArtifact NuGet 認證提供者記錄檔

export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file

設定記錄檔之後,任何codeartifact-creds指令都會將其記錄輸出附加至該檔案的內容。

CodeArtifact NuGet 認證提供者版本

下表包含 CodeArtifact NuGet 認證提供者的版本記錄資訊和下載連結。

版本 變更 出版日期 下載連結 (S3)

(最新版本)

升級的依賴

06/26/2024

下載

1.0.1

增加了對 net5,net6 和 SSO 配置文件的支持

03/05/2022

下載

1.0.0

初始 CodeArtifact NuGet 認證提供者版本

11/20/2020

下載版本