CodeArtifact で Cargo を設定して使用する
Cargo を使用して、CodeArtifact リポジトリからクレートを公開およびダウンロードしたり、Rust コミュニティのクレートレジストリである crates.io
CodeArtifact で Cargo を設定する
Cargo を使用して AWS CodeArtifact からクレートをインストールして公開するには、まず CodeArtifact リポジトリ情報を使用してクレートを設定する必要があります。次のいずれかの手順に沿って、CodeArtifact リポジトリのエンドポイント情報と認証情報を使用して Cargo を設定します。
コンソールの手順を使用して Cargo を設定する
コンソールの設定手順を使用して、Cargo を CodeArtifact リポジトリに接続できます。コンソールの手順では、お使いの CodeArtifact リポジトリ用にカスタマイズされた Cargo 設定を提供します。このカスタム設定を使用すれば、CodeArtifact 情報を検索して入力する必要なく、Cargo をセットアップできます。
-
https://console.aws.amazon.com/codesuite/codeartifact/home
で AWS CodeArtifact コンソールを開きます。 -
ナビゲーションペインで、[リポジトリ] を選択し、Cargo に接続するリポジトリを選びます。
-
[接続手順の表示] を選択します。
-
オペレーティングシステムを選択します。
-
[Cargo] を選択します。
-
生成された手順に沿って、Cargo を CodeArtifact リポジトリに接続します。
手動で Cargo を設定する
コンソールの設定手順を使用できない場合、または使用しない場合は、次の手順を使用して、手動で Cargo を CodeArtifact リポジトリに接続できます。
上記の例の [registries. セクションでは、my_registry] を使用してレジストリを定義し、my_registryindex および credential-provider の情報を提供します。
-
indexは、レジストリのインデックスの URL を指定します。これは、/で終わる CodeArtifact リポジトリのエンドポイントです。sparse+プレフィックスは、Git リポジトリではないレジストリに必要です。注記
デュアルスタックエンドポイントを使用するには、
codeartifact.エンドポイントを使用してください。region.on.aws -
credential-providerは、指定レジストリの認証情報プロバイダーを指定します。credential-providerが設定されていない場合は、registry.global-credential-providersのプロバイダーが使用されます。credential-providerをcargo:token-from-stdoutに設定することで、Cargo クライアントは、CodeArtifact リポジトリから公開またはダウンロードするときに新しい認可トークンを自動的に取得するため、12 時間ごとに認可トークンを手動で更新する必要はありません。
[registry] セクションは、使用するデフォルトのレジストリを定義します。
-
defaultは、CodeArtifact リポジトリから公開またはダウンロードするときにデフォルトで使用する、[registries.で定義されたレジストリの名前を指定します。my_registry]
[source.crates-io] セクションは、レジストリが指定されていない場合に使用する、デフォルトのレジストリを定義します。
-
replace-with = "は、パブリックレジストリ crates.io を、my_registry"[registries.で定義された CodeArtifact リポジトリに置き換えます。crates.io などの外部接続からパッケージをリクエストする必要がある場合、この設定が推奨されます。my_registry]依存関係撹乱攻撃を防ぐパッケージオリジンコントロールなど、CodeArtifact の利点を最大限に得るには、ソース置換を使用することが推奨されます。ソースを置換する場合、CodeArtifact は、外部接続へのすべてのリクエストをプロキシし、外部接続からリポジトリにパッケージをコピーします。ソースを置換しない場合、Cargo クライアントはプロジェクトの
Cargo.tomlファイルの設定に基づいてパッケージを直接取得します。依存関係がregistry=でマークされていない場合、Cargo クライアントは CodeArtifact リポジトリと通信せずに crates.io から直接取得します。my_registry注記
ソース置換の使用を開始してから、ソース置換を使用しないように設定ファイルを更新すると、エラーが発生する可能性があります。また、逆のシナリオでもエラーが発生する可能性があります。そのため、プロジェクトの設定は変更しないことをお勧めします。
Cargo クレートのインストール
次の手順に沿って、CodeArtifact リポジトリまたは crates.io
CodeArtifact から Cargo クレートをインストールする
Cargo (cargo) CLI を使用すると、CodeArtifact リポジトリから特定のバージョンの Cargo クレートをすばやくインストールできます。
cargo を使用して CodeArtifact リポジトリから Cargo クレートをインストールする方法
まだ
cargoCLI を設定していない場合は、「CodeArtifact で Cargo を設定して使用する」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して設定します。-
次のコマンドを使用して、CodeArtifact から Cargo クレートをインストールします。
cargo add my_cargo_package@1.0.0詳細については、「The Cargo Book」の「cargo add
」を参照してください。
CodeArtifact への Cargo クレートの公開
cargo CLI を使用して Cargo クレートを CodeArtifact リポジトリに公開するには、次の手順に従います。
まだ
cargoCLI を設定していない場合は、「CodeArtifact で Cargo を設定して使用する」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して設定します。-
次のコマンドを使用して、Cargo を CodeArtifact リポジトリに公開します。
cargo publish詳細については、「The Cargo Book」の「cargo publish
」を参照してください。