Use CodeArtifact com o nuget ou dotnet CLI - CodeArtifact

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use CodeArtifact com o nuget ou dotnet CLI

Você pode usar CLI ferramentas como nuget e dotnet para publicar e consumir pacotes CodeArtifact. Este documento fornece informações sobre como configurar as CLI ferramentas e usá-las para publicar ou consumir pacotes.

Configurar o nuget ou o dotnet CLI

Você pode configurar o nuget ou o dotnet CLI com o provedor de CodeArtifact NuGet credenciais, com o AWS CLI ou manualmente. A configuração NuGet com o provedor de credenciais é altamente recomendada para simplificar a configuração e a autenticação contínua.

Método 1: Configurar com o provedor de CodeArtifact NuGet credenciais

O provedor de CodeArtifact NuGet credenciais simplifica a autenticação e a configuração CodeArtifact com NuGet CLI ferramentas. CodeArtifact os tokens de autenticação são válidos por no máximo 12 horas. Para evitar a necessidade de atualizar manualmente o token ao usar o nuget ou o dotnetCLI, o provedor de credenciais busca periodicamente um novo token antes que o token atual expire.

Importante

Para usar o provedor de credenciais, certifique-se de que todas AWS CodeArtifact as credenciais existentes sejam apagadas do seu nuget.config arquivo que possam ter sido adicionadas manualmente ou executando aws codeartifact login a configuração anterior. NuGet

Instalar e configurar o provedor de CodeArtifact NuGet credenciais

dotnet
  1. Baixe a versão mais recente do AWS. CodeArtifact. NuGet. CredentialProvider ferramenta do NuGet domínio.org com o seguinte dotnet comando.

    dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
  2. Use o codeartifact-creds install comando para copiar o provedor de credenciais para a pasta de NuGet plug-ins.

    dotnet codeartifact-creds install
  3. (Opcional): defina o AWS perfil que você deseja usar com o provedor de credenciais. Se não for definido, o provedor de credenciais usará o perfil padrão. Para obter mais informações sobre AWS CLI perfis, consulte Perfis nomeados.

    dotnet codeartifact-creds configure set profile profile_name
nuget

Execute as etapas a seguir para usar o NuGet CLI para instalar o provedor de CodeArtifact NuGet credenciais a partir de um bucket do Amazon S3 e configurá-lo. O provedor de credenciais usará o AWS CLI perfil padrão. Para obter mais informações sobre perfis, consulte Perfis nomeados.

  1. Baixe a versão mais recente do provedor de CodeArtifact NuGet credenciais (codeartifact-nuget-credentialprovider.zip) de um bucket do Amazon S3.

    Para visualizar e baixar versões anteriores, consulte CodeArtifact NuGet Versões do Credential Provider.

  2. Descompacte o arquivo.

  3. Copie AWSo. CodeArtifact. NuGetCredentialProviderpasta da pasta netfx para %user_profile%/.nuget/plugins/netfx/ no Windows, no Linux ou ~/.nuget/plugins/netfx no macOS.

  4. Copie AWSo. CodeArtifact. NuGetCredentialProviderpasta da pasta netcore para %user_profile%/.nuget/plugins/netcore/ no Windows, no Linux ou ~/.nuget/plugins/netcore no macOS.

Depois de criar um repositório e configurar o provedor de credenciais, você pode usar as dotnet CLI ferramentas nuget ou para instalar e publicar pacotes. Para ter mais informações, consulte Consuma NuGet pacotes de CodeArtifact e Publique NuGet pacotes em CodeArtifact.

Método 2: configurar o nuget ou dotnet com o comando login

O codeartifact login comando no AWS CLI adiciona um endpoint do repositório e um token de autorização ao seu arquivo de NuGet configuração, permitindo que o nuget ou o dotnet se conectem ao seu repositório. CodeArtifact Isso modificará a NuGet configuração em nível de usuário que está localizada em %appdata%\NuGet\NuGet.Config para Windows ~/.config/NuGet/NuGet.Config e/ou ~/.nuget/NuGet/NuGet.Config para Mac/Linux. Para obter mais informações sobre NuGet configurações, consulte NuGet Configurações comuns.

Configurar o nuget ou dotnet com o comando login
  1. Configure suas AWS credenciais para uso com o AWS CLI, conforme descrito emConceitos básicos do CodeArtifact.

  2. Certifique-se de que a NuGet CLI ferramenta (nugetoudotnet) tenha sido instalada e configurada corretamente. Para ver instruções, consulte a documentação do nuget ou do dotnet.

  3. Use o CodeArtifact login comando para buscar credenciais para uso com. NuGet

    nota

    Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir --domain-owner. Para obter mais informações, consulte Domínios entre contas.

    dotnet
    Importante

    Usuários de Linux e macOS: como a criptografia não são compatíveis com plataformas que não sejam Windows, suas credenciais buscadas serão armazenadas como texto sem formatação no seu arquivo de configuração.

    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

O comando de login fará o seguinte:

  • Obtenha um token de autorização CodeArtifact usando suas AWS credenciais.

  • Atualize sua NuGet configuração em nível de usuário com uma nova entrada para a fonte NuGet do pacote. A fonte que aponta para o endpoint do seu CodeArtifact repositório será chamada. domain_name/repo_name

O período de autorização padrão após chamar o login é de 12 horas e o login deve ser chamado para atualizar o token periodicamente. Para obter mais informações sobre o token de autorização criado com o comando login, consulte Tokens criados com o comando login.

Depois de criar um repositório e configurar a autenticação, você pode usar os msbuild CLI clientes nugetdotnet, ou para instalar e publicar pacotes. Para ter mais informações, consulte Consuma NuGet pacotes de CodeArtifact e Publique NuGet pacotes em CodeArtifact.

Método 3: configurar o nuget ou dotnet sem o comando login

Para configuração manual, você deve adicionar um endpoint do repositório e um token de autorização ao seu arquivo de NuGet configuração para permitir que o nuget ou o dotnet se conectem ao seu repositório. CodeArtifact

Configure manualmente o nuget ou o dotnet para se conectar ao seu repositório. CodeArtifact

  1. Determine o endpoint do seu CodeArtifact repositório usando o get-repository-endpoint AWS CLI comando.

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

    Resultado do exemplo:

    { "repositoryEndpoint": "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/" }
  2. Obtenha um token de autorização para se conectar ao seu repositório a partir do seu gerenciador de pacotes usando o get-authorization-token AWS CLI comando.

    aws codeartifact get-authorization-token --domain my_domain

    Resultado do exemplo:

    { "authorizationToken": "eyJ2I...viOw", "expiration": 1601616533.0 }
  3. Crie o endpoint completo do repositório anexando /v3/index.json ao URL by URL retornado get-repository-endpoint na etapa 3.

  4. Configure o nuget ou o dotnet para usar o endpoint do repositório da etapa 1 e o token de autorização da etapa 2.

    nota

    A fonte URL deve terminar em /v3/index.json para que nuget ou dotnet se conectem com sucesso a um repositório. CodeArtifact

    dotnet

    Usuários de Linux e macOS: como a criptografia não são compatíveis com plataformas que não sejam Windows, você deve adicionar o --store-password-in-clear-text sinalizador ao comando a seguir. Observe que isso armazenará sua senha como texto simples no arquivo de configuração.

    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
    nota

    Para atualizar uma fonte existente, use o comando 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

    Resultado do exemplo:

    Package source with Name: domain_name/repo_name added successfully.
    nota

    Para usar um endpoint de pilha dupla, use o endpoint. codeartifact.region.on.aws

Consuma NuGet pacotes de CodeArtifact

Depois de configurar NuGet com CodeArtifact, você pode consumir NuGet pacotes que estão armazenados em seu CodeArtifact repositório ou em um de seus repositórios upstream.

Para consumir uma versão de pacote de um CodeArtifact repositório ou de um de seus repositórios upstream com nuget oudotnet, execute o seguinte comando substituindo packageName com o nome do pacote que você deseja consumir e packageSourceName com o nome da fonte do seu CodeArtifact repositório no seu arquivo NuGet de configuração. Se você usou o login comando para configurar sua NuGet configuração, o nome da fonte é domain_name/repo_name.

nota

Quando um pacote é solicitado, o NuGet cliente armazena em cache quais versões desse pacote existem. Devido a esse comportamento, uma instalação pode falhar para um pacote que foi solicitado anteriormente antes que a versão desejada fosse disponibilizada. Para evitar essa falha e instalar com êxito um pacote existente, você pode limpar o NuGet cache antes de uma instalação com nuget locals all --clear oudotnet nuget locals all --clear, ou evitar usar o cache durante install os restore comandos, fornecendo a -NoCache opção para nuget ou a --no-cache opção paradotnet.

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

Para instalar uma versão específica de um pacote

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

Consulte Gerenciar pacotes usando o nuget.exe CLI ou Instalar e gerenciar pacotes usando o dotnet CLI na documentação da Microsoft para obter mais informações.

Você pode consumir NuGet pacotes de NuGet.org por meio de um CodeArtifact repositório configurando o repositório com uma conexão externa com .org. NuGet Os pacotes consumidos em NuGet.org são ingeridos e armazenados no seu CodeArtifact repositório. Para ver mais informações sobre como adicionar conexões externas, consulte Conectar um CodeArtifact repositório a um repositório público.

Publique NuGet pacotes em CodeArtifact

Depois de configurar NuGet com CodeArtifact, você pode usar nuget ou dotnet publicar versões de pacotes em CodeArtifact repositórios.

Para enviar uma versão do pacote para um CodeArtifact repositório, execute o comando a seguir com o caminho completo do seu .nupkg arquivo e o nome da fonte do seu CodeArtifact repositório no seu arquivo de NuGet configuração. Se você usou o login comando para configurar sua NuGet configuração, o nome da fonte édomain_name/repo_name.

nota

Você pode criar um NuGet pacote se não tiver um para publicar. Para ver mais informações, consulte Fluxo de trabalho de criação de pacotes na documentação da Microsoft.

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 Referência do provedor de credenciais

O provedor de CodeArtifact NuGet credenciais facilita a configuração e a autenticação em seus NuGet CodeArtifact repositórios.

CodeArtifact NuGet Comandos do provedor de credenciais

Esta seção inclui a lista de comandos para o provedor de CodeArtifact NuGet credenciais. Esses comandos devem ser prefixados com dotnet codeartifact-creds como o seguinte exemplo.

dotnet codeartifact-creds command
  • configure set profile profile: configura o provedor de credenciais para usar o perfil fornecido AWS .

  • configure unset profile: remove o perfil configurado, se definido.

  • install: copia o provedor de credenciais na pasta plugins.

  • install --profile profile: copia o provedor de credenciais para a plugins pasta e o configura para usar o perfil fornecido AWS .

  • uninstall: desinstala o provedor de credenciais. Isso não remove as alterações no arquivo de configuração.

  • uninstall --delete-configuration: desinstala o provedor de credenciais e remove todas as alterações no arquivo de configuração.

CodeArtifact NuGet Registros do provedor de credenciais

Para habilitar o registro para o provedor de CodeArtifact NuGet credenciais, você deve definir o arquivo de log em seu ambiente. Os logs do provedor de credenciais contêm informações úteis de depuração, como:

  • O AWS perfil usado para fazer conexões

  • Quaisquer erros de autenticação

  • Se o endpoint fornecido não for um CodeArtifact URL

Definir o arquivo de log do provedor de CodeArtifact NuGet credenciais

export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file

Depois que o arquivo de log for definido, qualquer comando codeartifact-creds anexará sua saída de log ao conteúdo desse arquivo.

CodeArtifact NuGet Versões do Credential Provider

A tabela a seguir contém informações do histórico de versões e links para download do provedor de CodeArtifact NuGet credenciais.

Version (Versão) Alterações Data de publicação Link para download (S3)

1.0.2 (mais recente)

Dependências atualizadas

26/06/2024

Baixar v1.0.2

1.0.1

Foi adicionado suporte para net5, net6 e perfis SSO

03/05/2022

Fazer download da v1.0.1

1.0.0

Lançamento inicial do CodeArtifact NuGet Credential Provider

20/11/2020

Fazer download da v1.0.0