Configurar e usar o Cargo com o CodeArtifact - 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á.

Configurar e usar o Cargo com o CodeArtifact

Você pode usar o Cargo para publicar e baixar crates dos repositórios do CodeArtifact ou para buscar crates em crates.io, o registro de crates da comunidade Rust. Este tópico descreve como configurar o Cargo para se autenticar e usar um repositório do CodeArtifact.

Configurar o Cargo com o CodeArtifact

Para usar o Cargo para instalar e publicar crates por meio do AWS CodeArtifact, primeiro você precisa configurá-los com as informações do seu repositório do CodeArtifact. Siga as etapas em um dos procedimentos a seguir para configurar o Cargo com as informações e credenciais do endpoint do repositório do CodeArtifact.

Configurar o Cargo usando as instruções do console

É possível usar as instruções de configuração no console para conectar o Cargo ao repositório do CodeArtifact. As instruções do console fornecem uma configuração do Cargo personalizada para o repositório do CodeArtifact. Você pode usar essa configuração personalizada para configurar o Cargo sem precisar encontrar e preencher suas informações do CodeArtifact.

  1. Abra o console do AWS CodeArtifact em https://console.aws.amazon.com/codesuite/codeartifact/home.

  2. No painel de navegação, selecione Repositórios e, em seguida, escolha um repositório para conectar ao Cargo.

  3. Clique em Visualizar instruções de conexão.

  4. Selecione o seu sistema operacional.

  5. Selecione Cargo.

  6. Siga as instruções geradas para conectar o Cargo ao seu repositório do CodeArtifact.

Configurar o Cargo manualmente

Se você não puder ou não quiser usar as instruções de configuração do console, poderá usar as instruções a seguir para conectar manualmente o Cargo ao seu repositório do CodeArtifact.

macOS and Linux

Para configurar o Cargo com o CodeArtifact, você precisa definir seu repositório do CodeArtifact como um registro na configuração do Cargo e fornecer as credenciais.

  • Substitua my_registry pelo nome do seu registro.

  • Substitua my_domain pelo seu nome de domínio do CodeArtifact.

  • Substitua 111122223333 pelo ID da conta da AWS do proprietário do domínio. 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.

  • Substitua my_repo pelo nome do seu repositório do CodeArtifact.

Copie a configuração para publicar e baixar pacotes Cargo em seu repositório e salve-a no arquivo ~/.cargo/config.toml para uma configuração em nível de sistema ou .cargo/config.toml para uma configuração em nível de projeto:

[registries.my_registry] index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/" credential-provider = "cargo:token-from-stdout aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text" [registry] default = "my_registry" [source.crates-io] replace-with = "my_registry"
Windows: Download packages only

Para configurar o Cargo com o CodeArtifact, você precisa definir seu repositório do CodeArtifact como um registro na configuração do Cargo e fornecer as credenciais.

  • Substitua my_registry pelo nome do seu registro.

  • Substitua my_domain pelo seu nome de domínio do CodeArtifact.

  • Substitua 111122223333 pelo ID da conta da AWS do proprietário do domínio. 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.

  • Substitua my_repo pelo nome do seu repositório do CodeArtifact.

Copie a configuração para baixar somente pacotes Cargo do seu repositório e salve-a no arquivo %USERPROFILE%\.cargo\config.toml para uma configuração em nível de sistema ou .cargo\config.toml para uma configuração em nível de projeto:

[registries.my_registry] index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/" credential-provider = "cargo:token-from-stdout aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text" [registry] default = "my_registry" [source.crates-io] replace-with = "my_registry"
Windows: Publish and download packages
  1. Para configurar o Cargo com o CodeArtifact, você precisa definir seu repositório do CodeArtifact como um registro na configuração do Cargo e fornecer as credenciais.

    • Substitua my_registry pelo nome do seu registro.

    • Substitua my_domain pelo seu nome de domínio do CodeArtifact.

    • Substitua 111122223333 pelo ID da conta da AWS do proprietário do domínio. 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.

    • Substitua my_repo pelo nome do seu repositório do CodeArtifact.

    Copie a configuração para publicar e baixar pacotes Cargo em seu repositório e salve-a no arquivo %USERPROFILE%\.cargo\config.toml para uma configuração em nível de sistema ou .cargo\config.toml em nível de projeto.

    É recomendável usar o provedor de credenciais cargo:token, que usa as credenciais armazenadas em seu arquivo ~/.cargo/credentials.toml. Você pode encontrar um erro durante cargo publish se usar cargo:token-from-stdout, porque o cliente Cargo não corta o token de autorização adequadamente durante cargo publish.

    [registries.my_registry] index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/" credential-provider = "cargo:token" [registry] default = "my_registry" [source.crates-io] replace-with = "my_registry"
  2. Para publicar pacotes Cargo em seu repositório com o Windows, você deve usar o comando get-authorization-token do CodeArtifact e o comando login do Cargo para obter um token de autorização e suas credenciais.

    • Substitua my_registry pelo nome do seu registro, conforme definido em [registries.my_registry].

    • Substitua my_domain pelo seu nome de domínio do CodeArtifact.

    • Substitua 111122223333 pelo ID da conta da AWS do proprietário do domínio. 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.

    aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text | cargo login --registry my_registry
    nota

    O token de autorização gerado é válido por 12 horas. Você precisará criar um novo se tiverem passado 12 horas desde a criação do token.

A seção [registries.my_registry] no exemplo anterior define um registro com my_registry e fornece as informações de index e credential-provider.

  • index especifica o URL do índice do seu registro, que é o endpoint do repositório do CodeArtifact que termina com /. O prefixo sparse+ é obrigatório para registros que não são repositórios Git.

    nota

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

  • credential-provider especifica o provedor de credenciais para o registro fornecido. Se credential-provider não estiver definido, os provedores em registry.global-credential-providers serão usados. Ao configurar credential-provider como cargo:token-from-stdout, o cliente Cargo buscará o novo token de autorização automaticamente ao publicar ou baixar do seu repositório do CodeArtifact, portanto, não é necessário atualizar manualmente o token de autorização a cada 12 horas.

A seção [registry] define o registro padrão usado.

  • default especifica o nome do registro definido em [registries.my_registry], para usar por padrão ao publicar ou baixar do seu repositório do CodeArtifact.

A seção [source.crates-io] define o registro padrão usado quando um não é especificado.

  • replace-with = "my_registry" substitui o registro público, crates.io, pelo seu repositório do CodeArtifact definido em [registries.my_registry]. Essa configuração é recomendada se você precisar solicitar pacotes da conexão externa, como crates.io.

    Para obter todos os benefícios do CodeArtifact, como o controle de origem do pacote que evita ataques de confusão de dependências, é recomendável usar a substituição de origem. Com a substituição de origem, o CodeArtifact faz o proxy de todas as solicitações para a conexão externa e copia o pacote da conexão externa para o seu repositório. Sem a substituição de origem, o cliente Cargo recuperará diretamente o pacote com base na configuração no arquivo Cargo.toml em seu projeto. Se uma dependência não estiver marcada com registry=my_registry, o cliente Cargo a recuperará diretamente do crates.io sem se comunicar com seu repositório do CodeArtifact.

    nota

    Se você começar a usar a substituição de origem e depois atualizar seu arquivo de configuração para não usar a substituição de origem, poderá encontrar erros. O cenário oposto também poderá levar a erros. Portanto, é recomendável evitar alterar a configuração do seu projeto.

Instalar crates Cargo

Use os procedimentos a seguir para instalar crates Cargo por meio de um repositório do CodeArtifact ou de crates.io.

Instalar crates Cargo por meio do CodeArtifact

É possível usar a CLI do Cargo (cargo) para instalar rapidamente uma versão específica de um crate Ruby por meio do repositório do CodeArtifact.

Como instalar crates Cargo por meio de um repositório do CodeArtifact com cargo
  1. Caso ainda não tenha feito isso, siga as etapas em Configurar e usar o Cargo com o CodeArtifact para configurar a CLI cargo para usar o repositório do CodeArtifact com as credenciais adequadas.

  2. Use o seguinte comando para instalar crates Cargo por meio do CodeArtifact:

    cargo add my_cargo_package@1.0.0

    Para obter mais informações, consulte cargo add em The Cargo Book.

Publicar crates Cargo no CodeArtifact

Use o procedimento a seguir para publicar crates Cargo em um repositório do CodeArtifact usando a CLI cargo.

  1. Caso ainda não tenha feito isso, siga as etapas em Configurar e usar o Cargo com o CodeArtifact para configurar a CLI cargo para usar o repositório do CodeArtifact com as credenciais adequadas.

  2. Use o seguinte comando para publicar crates Cargo em um repositório do CodeArtifact:

    cargo publish

    Para obter mais informações, consulte cargo publish em The Cargo Book.