View a markdown version of this page

Configure e use o Cargo com 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á.

Configure e use o Cargo com CodeArtifact

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

Configure o Cargo com CodeArtifact

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

Configurar o Cargo usando as instruções do console

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

  1. Abra o AWS CodeArtifact console 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 CodeArtifact repositório.

Configurar o Cargo manualmente

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

macOS and Linux

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

  • my_registrySubstitua pelo nome do seu registro.

  • my_domainSubstitua pelo seu nome de CodeArtifact domínio.

  • 111122223333Substitua pelo ID da AWS conta 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 Cross-account domínios.

  • my_repoSubstitua pelo nome CodeArtifact do seu repositório.

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 CodeArtifact, você precisa definir seu CodeArtifact repositório como um registro na configuração do Cargo e fornecer credenciais.

  • my_registrySubstitua pelo nome do seu registro.

  • my_domainSubstitua pelo seu nome de CodeArtifact domínio.

  • 111122223333Substitua pelo ID da AWS conta 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 Cross-account domínios.

  • my_repoSubstitua pelo nome CodeArtifact do seu repositório.

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 CodeArtifact, você precisa definir seu CodeArtifact repositório como um registro na configuração do Cargo e fornecer credenciais.

    • my_registrySubstitua pelo nome do seu registro.

    • my_domainSubstitua pelo seu nome de CodeArtifact domínio.

    • 111122223333Substitua pelo ID da AWS conta 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 Cross-account domínios.

    • my_repoSubstitua pelo nome CodeArtifact do seu repositório.

    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 CodeArtifact get-authorization-token comando e o login comando Cargo para obter um token de autorização e suas credenciais.

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

    • my_domainSubstitua pelo seu nome de CodeArtifact domínio.

    • 111122223333Substitua pelo ID da AWS conta 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 Cross-account domínios.

    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.

  • indexespecifica a URL do índice do seu registro, que é o endpoint do CodeArtifact repositório que termina com a. / 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 credential-provider configurar comocargo:token-from-stdout, o cliente Cargo busca um novo token de autorização automaticamente ao publicar ou baixar do seu CodeArtifact repositório, portanto, você não precisa atualizar manualmente o token de autorização a cada 12 horas.

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

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

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 CodeArtifact repositório 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 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 da fonte, faz o CodeArtifact 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 comregistry=my_registry, o cliente Cargo a recuperará diretamente do crates.io sem se comunicar com seu repositório. 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 caixas de carga a partir de um CodeArtifact repositório ou de crates.io.

Instale caixas de carga a partir de CodeArtifact

Você pode usar a CLI Cargo (cargo) para instalar rapidamente uma versão específica de uma caixa Cargo do seu repositório. CodeArtifact

Para instalar caixas de carga a partir de um CodeArtifact repositório com carga
  1. Caso contrário, siga as etapas Configure e use o Cargo com CodeArtifact para configurar a cargo CLI para usar seu CodeArtifact repositório com as credenciais adequadas.

  2. Use o comando a seguir para instalar caixas de carga a partir de CodeArtifact:

    cargo add my_cargo_package@1.0.0

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

Publicando caixas de carga para CodeArtifact

Use o procedimento a seguir para publicar caixas de carga em um CodeArtifact repositório usando a CLIcargo.

  1. Caso contrário, siga as etapas Configure e use o Cargo com CodeArtifact para configurar a cargo CLI para usar seu CodeArtifact repositório com as credenciais adequadas.

  2. Use o comando a seguir para publicar caixas de carga em um CodeArtifact repositório:

    cargo publish

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