--- title: "コネクタの概要" order: 2 hidden: true ---

コネクタは、ProGet のフィードに外部のソースからパッケージを取り寄せる機能です。

NuGet.orgなどのパブリックギャラリー、または Azure DevOps Packages や Artifactory などの別のサードパーティパッケージソース、別のProGetフィードなどが、コネクタのソースとして利用し、パッケージを取り寄せられます。

💡
コネクタは、フィードと並び、ProGet の核となる機能です。脆弱性のスキャンとブロック、プロモーション、そしてもちろん複数のフィードの使用など、他のほとんどの ProGet 機能に必要になります。


コネクタを利用する 4 つのメリット

「わざわざコネクタやフィードを通さなくても、直接 NuGet.org などからパッケージをダウンロードできるし、なんでそんな面倒なことをするの?」と思うかもしれません。

ここでは、コネクタを利用するメリットや、コネクタを利用しないことの危険性を説明します。

1. オープンソースの脆弱性とライセンス違反などをゼロにする。

開発者が直接 NuGet.org などに直接アクセスして、オープンソースのパッケージをダウンロードできると、脆弱性のあるパッケージや、GPL や GNU などのライセンスのパッケージが開発中の製品に混入する可能性があります。

社内の規定で、脆弱性のあるパッケージを使わないことや、GPL や GNU、あるいは不明なライセンスを使わないことを、研修と罰則で徹底しようとしても、それでも納期が近い時などは、プロセスが守られない場合もあります。

オープンソースのリポジトリ(フィード)への直接アクセスを禁止し、ProGet のコネクタを通じて、ライセンスの検知と、脆弱性スキャンなどのコンプライアンスに合格したパッケージのみを、開発者がダウンロードできるように設定すれば、これらのリスクはゼロになります。

2. 複数のフィードを一か所に集めることで、探す手間をなくす

現状では、開発者が、NuGet.org、Rubygems.org、そして社内のファイルサーバや、バージョン管理システムなどにある、パッケージやライブラリから、必要なパッケージを探しているでしょう。

複数のフィードを、一か所にまとめることで、必要なパッケージを探す手間がなくなり、よりアジャイルな開発が可能になります。

3. 外部インターネットにアクセスしなくても、サードパーティのパッケージが使える。

金融、政府、軍事など、セキュリティとコンプライアンスが厳しい業界では、開発者がインターネットにアクセスできないこともあります。または、ファイアウォールの制限により npmjs.org など、一部のサードパーティのWebサイトにアクセスできない場合あるでしょう。

ProGet のサーバは、社内にあり、サードパーティのパッケージがキャッシュされているので、社内ネットワークで、サードパーティのパッケージを検索・ダウンロードできます。

4. パッケージのローカルキャッシュで、待機時間削減

NuGet Update-Package コマンドが遅いと感じたことはありませんか?

プロジェクトが大規模化し、更新するパッケージの数が増えれば、パッケージのダウンロードや更新に数分どころか数時間かかることすらあります。

パッケージとメタデータをローカルにキャッシュして、パッケージを再ダウンロードするための待機時間をなくします。

5. パッケージのトラッキングなど、その他のメリット

NuGet.org などから直接パッケージをダウンロードせずに、ProGet で管理をすれば、パッケージのダウンロード統計、トラッキング、ロードバランスなど、様々な機能が使えます。

💡
ProGetは、コネクタの状態を1時間に1回チェックして、コネクタの URL にアクセスできるかどうか、およびリモートフィード内のパッケージの数を確認します。

フィードへの関連付け

コネクタを作成した後、コネクタからパッケージを取得する前に、コネクタを1つ以上のフィードに関連付ける必要があります。

これを行うには、[Manage Feed (フィードの管理)] ページで [add connector (コネクタの追加)] をクリックして、コネクタを選択します。コネクタからのパッケージは、すぐにフィードで利用できるようになります。

ProGet 5.3 以降、コネクタは特定のフィード内に作成され、そのフィードに自動的に関連付けられます。

コネクタに関連付けられているフィードを変更する必要がある場合:

  1. [Manage Feed (フィードの管理)] ページに移動します。
  2. [Connectors & Replication (コネクタとレプリケーション)] タブを選択します。
  3. Xをクリックして、コネクタとフィードの関連付けを解除します。
  4. 次に、そのフィードの [Manage Feed (フィードの管理)] ページから、別のフィードにコネクタを追加できます。 

コネクタ画面からコネクタを完全に削除できます。[Feeds (フィード)] > [Connector (コネクタ)] です。

セルフコネクタ

セルフコネクタは、ProGet の同じインスタンスを参照するコネクタです。 これらは次のメリットがあります。

💡
セルフコネクタは、同じインスタンスに対してローカルであるにもかかわらず、非ローカルであるかのようにWeb リクエストを転送します。 つまり、統合Windows認証が有効になっているユーザーは、接続されたフィードにアクセスするためのアクセス許可を持つアカウントとして実行するように、ProGet統合Webサーバーログオンユーザー(またはIISを使用している場合はアプリケーションプールID)のいずれかを構成する必要があります。


セルフコネクタの作成に必要なURLは、ソースフィードの「Feed Overview (フィードの概要)」ページにあります。

コネクタをキャッシュする

ProGetは、パッケージとメタデータのキャッシュします。パッケージはすでに ProGet にあるため、ProGet でパッケージとメタデータをキャッシュすると、クエリが減り、待機時間が短縮されます。

パッケージキャッシュはフィードレベルで構成されます。有効にすると、パッケージキャッシュは、関連するフィードにダウンロードされた、すべてのコネクタパッケージのコピーを保存します。パッケージは引き続き UI にコネクタパッケージとして表示されますが、外部パッケージソースにアクセスできない場合でも利用できます。パッケージのキャッシュはデフォルトで有効になっており、ProGetのすべてのエディションに含まれています。

メタデータキャッシュはコネクタレベルで設定されます。有効にすると、メタデータキャッシュは、最近使用されたクエリの応答をコネクタのソースに保存します。たとえば、ツールが ProGet フィードにパッケージの最新バージョンを照会する場合があるため、ProGet はフィードの各コネクタに最新バージョンを照会する必要があります。メタデータキャッシュを有効にすると、パフォーマンスが大幅に向上します。ただし、これには、潜在的に古いクエリが犠牲になります。メタデータキャッシュは、ProGet 有料エディションでのみ使用できます。

コネクタフィルター

コネクタフィルターは、信頼できるパッケージ名( "JQuery"や "Microsoft。*"など)を自動的に含み、受け入れられないパッケージ名をブロックすることで、サードパーティのパッケージをキュレートするのに役立ちます。そのため、パッケージ(およびバージョン)の承認プロセスが楽になります。

💡
この機能は、有料版と試用版の ProGet で利用できます。 コネクタフィルターは ProGet 無料版で構成できますが、無視されます。

コネクタフィルターを追加するには:

[Manage Feed (フィードの管理)] ページに移動します。 [Connectors & Replication (コネクタとレプリケーション)] タブを選択します。 目的のコネクタ名を選択します。 [Add Filter (フィルターの追加)] をクリックし、フィルターの詳細を入力して、[Allow (許可)] または [Block (ブロック)] を選択します。