

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CodeArtifact でのジェネリックパッケージの使用
<a name="using-generic"></a>

以下のトピックでは、 AWS CodeArtifact を使用して、ジェネリックパッケージを使用および公開する方法について説明します。

**Topics**
+ [ジェネリックパッケージの概要](generic-packages-overview.md)
+ [ジェネリックパッケージでサポートされるコマンド](generic-packages-supported-commands.md)
+ [ジェネリックパッケージの公開と使用](publishing-using-generic-packages.md)

# ジェネリックパッケージの概要
<a name="generic-packages-overview"></a>

`generic` パッケージ形式を使用すると、任意のタイプのファイルをアップロードして CodeArtifact リポジトリにパッケージを作成できます。ジェネリックパッケージは、特定のプログラミング言語、ファイルタイプ、またはパッケージ管理エコシステムには関連付けられていません。これは、アプリケーションインストーラー、機械学習モデル、設定ファイルなど、任意のビルドアーティファクトの保存とバージョン管理に使用できます。

ジェネリックパッケージは、パッケージ名、名前空間、バージョン、および 1 つ以上のアセット (またはファイル) で構成されます。ジェネリックパッケージは、他の形式のパッケージと一緒に単一の CodeArtifact リポジトリに存在できます。

 AWS CLI または SDK を使用して汎用パッケージを操作できます。汎用パッケージで動作する AWS CLI コマンドの完全なリストについては、「」を参照してください[ジェネリックパッケージでサポートされるコマンド](generic-packages-supported-commands.md)。

## ジェネリックパッケージの制約
<a name="generic-packages-constraints"></a>
+ アップストリームリポジトリからは取得できません。ジェネリックパッケージは公開先のリポジトリからのみ取得できます。
+ [ListPackageVersionDependencies](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersionDependencies.html) から返される依存関係を宣言したり、 AWS マネジメントコンソール に表示したりすることはできません。
+ ジェネリックパッケージには README ファイルと LICENSE ファイルを保存できますが、CodeArtifact はこれらのファイルを読み取ることはできません。これらのファイル内の情報は [GetPackageVersionReadme](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetPackageVersionReadme.html) や [DescribePackageVersion](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_DescribePackageVersion.html) では返されず、 AWS マネジメントコンソールにも表示されません。
+ CodeArtifact のすべてのパッケージと同様に、アセットのサイズとパッケージあたりのアセット数には制限があります。CodeArtifact での制限とクォータの詳細については、「[AWS CodeArtifact のクォータ](service-limits.md)」を参照してください。
+ ジェネリックパッケージに含まれるアセット名は、以下の規則に従う必要があります。
  + アセット名には Unicode の文字と数字を使用できます。具体的には、小文字 (`Ll`)、修飾文字 (`Lm`)、その他の文字 (`Lo`)、タイトルケース文字 (`Lt`)、大文字 (`Lu`)、文字番号 (`Nl`)、および 10 進数 (`Nd`) の Unicode 文字カテゴリを使用できます。
  + 次の特殊文字を使用できます。`~!@^&()-_+[]{};,.`
  + `.` や `..` はアセット名に使用できません。
  + 使用できる空白文字はスペースのみです。アセット名の先頭や末尾にスペースを含めることはできません。また、連続するスペースを含めることはできません。

# ジェネリックパッケージでサポートされるコマンド
<a name="generic-packages-supported-commands"></a>

 AWS CLI または SDK を使用して汎用パッケージを操作できます。ジェネリックパッケージでは、以下の CodeArtifact コマンドを使用できます。
+ [copy-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/copy-package-versions.html) (「[リポジトリ間でのパッケージのコピー](copy-package.md)」を参照)
+ [delete-package](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/delete-package.html) (「[パッケージの削除 (AWS CLI)](delete-package.md#delete-package-CLI)」を参照)
+ [delete-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/delete-package-versions.html) (「[パッケージバージョンの削除 (AWS CLI)](delete-package.md#delete-package-version-CLI)」を参照)
+ [describe-package](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/describe-package.html) 
+ [describe-package-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/describe-package-version.html) (「[パッケージのバージョンの詳細と依存関係の表示および更新](describe-package-version.md)」を参照)
+ [dispose-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/dispose-package-versions.html) (「[パッケージバージョンの廃棄](update-package-version-status.md#dispose-package-versions)」を参照)
+ [get-package-version-asset](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/get-package-version-asset.html) (「[パッケージバージョンアセットのダウンロード](download-assets.md)」を参照)
+ [list-package-version-assets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-package-version-assets.html) (「[パッケージバージョンのアセットを一覧表示する](list-assets.md)」を参照)
+ [list-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-package-versions.html) (「[パッケージバージョンを一覧表示する](list-packages-versions.md)」を参照)
+ [list-packages](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-packages.html) (「[パッケージ名を一覧表示する](list-packages.md)」を参照)
+ [publish-package-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/publish-package-version.html) (「[ジェネリックパッケージの公開](publishing-using-generic-packages.md#publishing-generic-packages)」を参照)
+ [put-package-origin-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/put-package-origin-configuration.html) (「[パッケージオリジンコントロールの編集](package-origin-controls.md)」を参照)
**注記**  
`publish` オリジンコントロール設定を使用して、リポジトリ内のジェネリックパッケージ名の公開を許可または禁止できます。ただし、ジェネリックパッケージはアップストリームリポジトリから取得できないため、`upstream` 設定はジェネリックパッケージには適用されません。
+ [update-package-versions-status](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/update-package-versions-status.html) (「[パッケージバージョンのステータスの更新](update-package-version-status.md#updating-pv-status)」を参照)

# ジェネリックパッケージの公開と使用
<a name="publishing-using-generic-packages"></a>

ジェネリックパッケージバージョンとそれに関連するアセットを公開するには、`publish-package-version` コマンドを使用します。`list-package-version-asset` コマンドを使用してジェネリックパッケージのアセットを一覧表示し、`get-package-version-asset` を使用してダウンロードします。以下のトピックでは、これらのコマンドを使用してジェネリックパッケージを公開したり、ジェネリックパッケージアセットをダウンロードしたりする手順について説明します。

## ジェネリックパッケージの公開
<a name="publishing-generic-packages"></a>

ジェネリックパッケージは、パッケージ名、名前空間、バージョン、および 1 つ以上のアセット (またはファイル) で構成されます。このトピックでは、`my-package` という名前のパッケージを、名前空間 `my-ns`、バージョン `1.0.0`、`asset.tar.gz` という名前の 1 つのアセットを含むパッケージを公開する方法を示します。

**前提条件**:
+ CodeArtifact AWS Command Line Interface を使用して をセットアップおよび設定する (「」を参照[AWS CodeArtifact でのセットアップ](get-set-up-for-codeartifact.md))
+ CodeArtifact ドメインとリポジトリを用意する (「[AWS CLI を使用した開始方法](getting-started-cli.md)」を参照)

**ジェネリックパッケージを公開するには**

1. 以下のコマンドを使用して、パッケージバージョンにアップロードする各ファイルの SHA256 ハッシュを生成し、その値を環境変数に入力します。この値は、最初に送信された後にファイルの内容が変更されていないことを確認するための整合性チェックに使用されます。

------
#### [ Linux ]

   ```
   export ASSET_SHA256=$(sha256sum asset.tar.gz | awk '{print $1;}')
   ```

------
#### [ macOS ]

   ```
   export ASSET_SHA256=$(shasum -a 256 asset.tar.gz | awk '{print $1;}')
   ```

------
#### [ Windows ]

   ```
   for /f "tokens=*" %G IN ('certUtil -hashfile asset.tar.gz SHA256 ^| findstr /v "hash"') DO SET "ASSET_SHA256=%G"
   ```

------

1. `publish-package-version` を呼び出して、アセットをアップロードし、新しいパッケージバージョンを作成します。
**注記**  
 パッケージに複数のアセットが含まれている場合は、アセットごとに `publish-package-version` を 1 回呼び出してアップロードします。最後のアセットをアップロードする場合を除き、`publish-package-version` を呼び出すたびに `--unfinished` 引数を含めます。`--unfinished` を省略するとパッケージバージョンのステータスが `Published` に設定され、追加のアセットがアップロードされなくなります。  
 または、`publish-package-version` を呼び出すたびに `--unfinished` を含め、`update-package-versions-status` コマンドを使用してパッケージバージョンのステータスを `Published` に設定します。

------
#### [ Linux/macOS ]

   ```
   aws codeartifact publish-package-version --domain my_domain --repository my_repo \
         --format generic --namespace my-ns --package my-package --package-version 1.0.0 \
         --asset-content asset.tar.gz --asset-name asset.tar.gz \
         --asset-sha256 $ASSET_SHA256
   ```

------
#### [ Windows ]

   ```
   aws codeartifact publish-package-version --domain my_domain --repository my_repo ^
         --format generic --namespace my-ns --package my-package --package-version 1.0.0 ^
         --asset-content asset.tar.gz --asset-name asset.tar.gz ^  
         --asset-sha256 %ASSET_SHA256%
   ```

------

   出力は以下のようになります。

   ```
   {
       "format": "generic",
       "namespace": "my-ns",
       "package": "my-package",
       "version": "1.0.0",
       "versionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC",
       "status": "Published",
       "asset": {
           "name": "asset.tar.gz",
           "size": 11,
           "hashes": {
               "MD5": "41bba98d5b9219c43089eEXAMPLE-MD5",
               "SHA-1": "69b215c25dd4cda1d997a786ec6EXAMPLE-SHA-1",
               "SHA-256": "43f24850b7b7b7d79c5fa652418518fbdf427e602b1edabe6EXAMPLE-SHA-256",
               "SHA-512": "3947382ac2c180ee3f2aba4f8788241527c8db9dfe9f4b039abe9fc560aaf5a1fced7bd1e80a0dca9ce320d95f0864e0dec3ac4f2f7b2b2cbEXAMPLE-SHA-512"
           }
       }
   }
   ```

## ジェネリックパッケージアセットの一覧表示
<a name="listing-generic-package-assets"></a>

ジェネリックパッケージに含まれるアセットを一覧表示するには、`list-package-version-assets` コマンドを使用します。詳細については、「[パッケージバージョンのアセットを一覧表示する](list-assets.md)」を参照してください。

以下の例では、パッケージ `my-package` のバージョン `1.0.0` のアセットを一覧表示しています。

**パッケージバージョンのアセットを一覧表示するには**
+ ジェネリックパッケージに含まれるアセットを一覧表示するには、`list-package-version-assets` を呼び出します。

------
#### [ Linux/macOS ]

  ```
  aws codeartifact list-package-version-assets --domain my_domain \
    --repository my_repo --format generic --namespace my-ns \
    --package my-package --package-version 1.0.0
  ```

------
#### [ Windows ]

  ```
  aws codeartifact list-package-version-assets --domain my_domain ^
    --repository my_repo --format generic --namespace my-ns ^
    --package my-package --package-version 1.0.0
  ```

------

  出力は以下のようになります。

  ```
  {
      "assets": [
          {
              "name": "asset.tar.gz",
              "size": 11,
              "hashes": {
                  "MD5": "41bba98d5b9219c43089eEXAMPLE-MD5",
                  "SHA-1": "69b215c25dd4cda1d997a786ec6EXAMPLE-SHA-1",
                  "SHA-256": "43f24850b7b7b7d79c5fa652418518fbdf427e602b1edabe6EXAMPLE-SHA-256",
                  "SHA-512": "3947382ac2c180ee3f2aba4f8788241527c8db9dfe9f4b039abe9fc560aaf5a1fced7bd1e80a0dca9ce320d95f0864e0dec3ac4f2f7b2b2cbEXAMPLE-SHA-512"
              }
          }
      ],
      "package": "my-package",
      "format": "generic",
      "namespace": "my-ns",
      "version": "1.0.0",
      "versionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC"
  }
  ```

## ジェネリックパッケージアセットのダウンロード
<a name="downloading-generic-package-assets"></a>

ジェネリックパッケージからアセットをダウンロードするには、`get-package-version-asset` コマンドを使用します。詳細については、「[パッケージバージョンアセットのダウンロード](download-assets.md)」を参照してください。

次の例では、パッケージ `my-package` のバージョン `1.0.0` から、`asset.tar.gz` という名前のファイルとしてアセット `asset.tar.gz` を現在の作業ディレクトリにダウンロードします。

**パッケージバージョンアセットをダウンロードするには**
+ `get-package-version-asset` を呼び出してジェネリックパッケージからアセットをダウンロードします。

------
#### [ Linux/macOS ]

  ```
  aws codeartifact get-package-version-asset --domain my_domain \
    --repository my_repo --format generic --namespace my-ns --package my-package \
    --package-version 1.0.0 --asset asset.tar.gz \ 
    asset.tar.gz
  ```

------
#### [ Windows ]

  ```
  aws codeartifact get-package-version-asset --domain my_domain ^
    --repository my_repo --format generic --namespace my-ns --package my-package ^
    --package-version 1.0.0 --asset asset.tar.gz ^
    asset.tar.gz
  ```

------

  出力は以下のようになります。

  ```
  {
      "assetName": "asset.tar.gz",
      "packageVersion": "1.0.0",
      "packageVersionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC"
  }
  ```