

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

# 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 리포지토리에 패키지를 만들 수 있습니다. 일반 패키지는 특정 프로그래밍 언어, 파일 유형 또는 패키지 관리 에코시스템과 관련이 없습니다. 이는 애플리케이션 설치 프로그램, 기계 학습 모델, 구성 파일 등과 같은 임의의 빌드 아티팩트를 저장하고 버전을 관리하는 데 유용할 수 있습니다.

일반 패키지는 패키지 이름, 네임스페이스, 버전 및 하나 이상의 자산(또는 파일)으로 구성됩니다. 일반 패키지는 단일 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 Management Console 에 표시되는 종속성을 선언할 수는 없습니다.
+ 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 Management Console에도 표시되지 않습니다.
+ CodeArtifact의 모든 패키지와 마찬가지로 자산 크기 및 패키지당 자산 수에는 제한이 있습니다. CodeArtifact의 제한과 할당량에 대한 자세한 내용은 [in AWS CodeArtifact 할당량](service-limits.md)를 참조하세요.
+ 자산 이름은 다음 규칙에 따라 생성해야 합니다.
  + 자산 이름에는 유니코드 문자와 숫자를 사용할 수 있습니다. 특히 소문자(`Ll`), 수정자(`Lm`), 기타 문자(`Lo`), 제목 대문자(`Lt`), 대문자(`Lu`), 문자 번호(`Nl`), 십진수(`Nd`) 등의 유니코드 문자 범주가 허용됩니다.
  + 다음 특수 문자가 허용됩니다. `~!@^&()-_+[]{};,.` 
  + 자산에는 `.` 또는 `..` 이름을 지정할 수 없습니다.
  + 스페이스는 허용되는 유일한 공백 문자입니다. 자산 이름은 공백 문자로 시작하거나 끝날 수 없으며 연속된 공백 문자가 포함될 수 없습니다.

# 일반 패키지에 지원되는 명령
<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>

일반 패키지는 패키지 이름, 네임스페이스, 버전 및 하나 이상의 자산(또는 파일)으로 구성됩니다. 이 항목에서는 `my-ns` 네임스페이스와 버전 `1.0.0`을 사용하고 `asset.tar.gz` 이름이 지정된 자산 하나를 포함하는 `my-package` 이름이 지정된 패키지를 게시하는 방법을 보여줍니다.

**사전 조건**:
+ CodeArtifact를 AWS Command Line Interface 사용하여 설정 및 구성( 참조[with 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`를 호출할 수 있습니다. 최종 자산을 업로드하는 경우를 제외하고 각 `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"
  }
  ```