다음과 같이 Cargo를 구성하고 사용하십시오. CodeArtifact - CodeArtifact

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

다음과 같이 Cargo를 구성하고 사용하십시오. CodeArtifact

Cargo를 사용하여 CodeArtifact 저장소에서 크레이트를 게시 및 다운로드하거나 Rust 커뮤니티의 크레이트 레지스트리인 crates.io에서 크레이트를 가져올 수 있습니다. 이 주제에서는 저장소를 인증하고 사용하도록 Cargo를 구성하는 방법을 설명합니다. CodeArtifact

다음과 같이 Cargo를 구성합니다 CodeArtifact

Cargo를 사용하여 크레이트를 설치하고 게시하려면 먼저 CodeArtifact 저장소 정보를 사용하여 크레이트를 구성해야 합니다. AWS CodeArtifact 다음 절차 중 하나의 단계에 따라 CodeArtifact 리포지토리 엔드포인트 정보 및 자격 증명으로 Cargo를 구성하십시오.

콘솔 지침을 사용하여 Cargo를 구성하십시오.

콘솔의 구성 지침을 사용하여 Cargo를 CodeArtifact 저장소에 연결할 수 있습니다. 콘솔 지침은 CodeArtifact 저장소에 맞게 사용자 지정된 Cargo 구성을 제공합니다. 이 사용자 지정 구성을 사용하면 CodeArtifact 정보를 찾아 입력할 필요 없이 Cargo를 설정할 수 있습니다.

  1. https://console.aws.amazon.com/codesuite/codeartifact/home 에서 AWS CodeArtifact 콘솔을 엽니다.

  2. 탐색 창에서 리포지토리를 선택한 다음 Cargo에 연결할 리포지토리를 선택합니다.

  3. 연결 지침 보기를 선택합니다.

  4. 운영 체제를 선택합니다.

  5. Cargo를 선택하세요.

  6. 생성된 지침에 따라 Cargo를 CodeArtifact 저장소에 연결합니다.

Cargo를 수동으로 설정하세요

콘솔의 구성 지침을 사용할 수 없거나 사용하고 싶지 않은 경우 다음 지침에 따라 Cargo를 CodeArtifact 저장소에 수동으로 연결할 수 있습니다.

macOS and Linux

Cargo를 사용하여 구성하려면 Cargo 구성에서 CodeArtifact 저장소를 레지스트리로 정의하고 자격 증명을 제공해야 합니다. CodeArtifact

  • my_registry를 레지스트리 이름으로 바꾸십시오.

  • my_domain을 도메인 이름으로 바꾸십시오. CodeArtifact

  • 111122223333을 도메인 소유자의 AWS 계정 ID로 바꾸십시오. 소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner를 포함하지 않아도 됩니다. 자세한 정보는 크로스 계정 도메인을 참조하세요.

  • my_repo를 저장소 이름으로 바꾸십시오. CodeArtifact

구성을 복사하여 Cargo 패키지를 리포지토리에 게시 및 다운로드하고 시스템 수준 구성 또는 .cargo/config.toml 프로젝트 수준 구성을 위해 ~/.cargo/config.toml 파일에 저장합니다.

[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

Cargo를 구성하려면 Cargo 구성에서 CodeArtifact 저장소를 레지스트리로 정의하고 자격 증명을 제공해야 합니다. CodeArtifact

  • my_registry를 레지스트리 이름으로 바꾸십시오.

  • my_domain을 도메인 이름으로 바꾸십시오. CodeArtifact

  • 111122223333을 도메인 소유자의 AWS 계정 ID로 바꾸십시오. 소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner를 포함하지 않아도 됩니다. 자세한 정보는 크로스 계정 도메인을 참조하세요.

  • my_repo를 저장소 이름으로 바꾸십시오. CodeArtifact

리포지토리에서 Cargo 패키지만 다운로드하도록 구성을 복사하고 시스템 수준 구성 또는 .cargo\config.toml 프로젝트 수준 구성을 위해 %USERPROFILE%\.cargo\config.toml 파일에 저장하십시오.

[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. Cargo를 구성하려면 Cargo 구성에서 CodeArtifact 저장소를 레지스트리로 정의하고 자격 증명을 제공해야 합니다. CodeArtifact

    • my_registry를 레지스트리 이름으로 바꾸십시오.

    • my_domain을 도메인 이름으로 바꾸십시오. CodeArtifact

    • 111122223333을 도메인 소유자의 AWS 계정 ID로 바꾸십시오. 소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner를 포함하지 않아도 됩니다. 자세한 정보는 크로스 계정 도메인을 참조하세요.

    • my_repo를 저장소 이름으로 바꾸십시오. CodeArtifact

    구성을 복사하여 Cargo 패키지를 리포지토리에 게시 및 다운로드하고 시스템 수준 구성 또는 .cargo\config.toml 프로젝트 수준 구성을 위해 %USERPROFILE%\.cargo\config.toml 파일에 저장합니다.

    파일에 저장된 자격 증명을 사용하는 자격 증명 공급자를 cargo:token 사용하는 것이 좋습니다. ~/.cargo/credentials.toml 사용하는 동안 Cargo 클라이언트가 인증 토큰을 제대로 트리밍하지 cargo:token-from-stdout 않기 때문에 사용 중에 cargo publish 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. Windows가 설치된 저장소에 Cargo 패키지를 게시하려면 명령과 Cargo CodeArtifact get-authorization-token login 명령을 사용하여 인증 토큰과 자격 증명을 가져와야 합니다.

    • my_registry를 에 정의된 레지스트리 이름으로 바꾸십시오. [registries.my_registry]

    • my_domain을 도메인 이름으로 바꾸십시오. CodeArtifact

    • 111122223333을 도메인 소유자의 AWS 계정 ID로 바꾸십시오. 소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner를 포함하지 않아도 됩니다. 자세한 정보는 크로스 계정 도메인을 참조하세요.

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

    생성된 권한 부여 토큰은 12시간 동안 유효합니다. 토큰이 생성된 후 12시간이 경과한 경우 새 토큰을 생성해야 합니다.

위 예제의 [registries.my_registry] 섹션에서는 레지스트리를 정의하고 정보를 제공합니다. my_registry index credential-provider

  • index레지스트리 인덱스의 URL을 지정합니다. 이 URL은 / a로 끝나는 CodeArtifact 리포지토리 엔드포인트입니다. Git 리포지토리가 아닌 레지스트리에는 sparse+ 접두사가 필요합니다.

  • credential-provider해당 레지스트리의 자격 증명 공급자를 지정합니다. credential-provider설정되지 않은 경우 의 registry.global-credential-providers 공급자가 사용됩니다. credential-providercargo:token-from-stdout 설정하면 Cargo 클라이언트가 CodeArtifact 저장소에서 게시하거나 다운로드할 때 새 인증 토큰을 자동으로 가져오므로 12시간마다 인증 토큰을 수동으로 새로 고칠 필요가 없습니다.

[registry] 섹션에서는 사용되는 기본 레지스트리를 정의합니다.

  • default에 정의된 레지스트리 이름을 지정하여 CodeArtifact 저장소에서 게시하거나 다운로드할 때 기본적으로 사용합니다. [registries.my_registry]

[source.crates-io] 섹션에서는 레지스트리를 지정하지 않을 때 사용되는 기본 레지스트리를 정의합니다.

  • replace-with = "my_registry"공용 레지스트리인 crates.io를 에 정의된 저장소로 바꿉니다. CodeArtifact [registries.my_registry] 이 구성은 crates.io와 같은 외부 연결에서 패키지를 요청해야 하는 경우 권장됩니다.

    종속성 혼동 공격을 방지하는 패키지 오리진 제어와 같은 이점을 모두 활용하려면 소스 대체를 사용하는 것이 좋습니다. CodeArtifact 소스 교체를 사용하면 모든 요청을 외부 연결로 CodeArtifact 프록시하고 외부 연결의 패키지를 리포지토리로 복사합니다. 소스를 교체하지 않으면 Cargo 클라이언트는 프로젝트 내 Cargo.toml 파일의 구성을 기반으로 패키지를 직접 검색합니다. 종속성이 표시되지 않은 경우 Cargo 클라이언트는 저장소와 통신하지 않고 crates.io에서 직접 해당 종속성을 검색합니다. registry=my_registry CodeArtifact

    참고

    소스 교체를 사용하기 시작한 다음 소스 교체를 사용하지 않도록 구성 파일을 업데이트하면 오류가 발생할 수 있습니다. 반대 시나리오로 인해 오류가 발생할 수도 있습니다. 따라서 프로젝트의 구성을 변경하지 않는 것이 좋습니다.

카고 크레이트 설치

CodeArtifact 저장소 또는 crates.io에서 카고 크레이트를 설치하려면 다음 절차를 사용하십시오.

카고 크레이트는 다음에서 설치할 수 있습니다. CodeArtifact

Cargo (cargo) CLI를 사용하여 저장소에서 특정 버전의 Cargo 크레이트를 빠르게 설치할 수 있습니다. CodeArtifact

다음을 사용하여 저장소에서 Cargo 크레이트를 설치하려면 CodeArtifact cargo
  1. 아직 구성하지 않았다면 다음 단계에 따라 적절한 자격 다음과 같이 Cargo를 구성하고 사용하십시오. CodeArtifact 증명이 있는 CodeArtifact 리포지토리를 사용하도록 cargo CLI를 구성하십시오.

  2. 다음 명령을 사용하여 Cargo 크레이트를 설치하세요. CodeArtifact

    cargo add my_cargo_package@1.0.0

    자세한 내용은 카고 북의 cargo add를 참조하십시오.

카고 크레이트 퍼블리싱 대상 CodeArtifact

CLI를 사용하여 CARGO 크레이트를 CodeArtifact 저장소에 게시하려면 다음 절차를 사용하십시오. cargo

  1. 아직 구성하지 않았다면 다음 단계에 따라 적절한 자격 다음과 같이 Cargo를 구성하고 사용하십시오. CodeArtifact 증명이 있는 CodeArtifact 리포지토리를 사용하도록 cargo CLI를 구성하십시오.

  2. 다음 명령을 사용하여 Cargo 크레이트를 리포지토리에 게시하십시오. CodeArtifact

    cargo publish

    자세한 내용은 카고 북의 cargo 게시를 참조하십시오.