

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

# HealthOmics의 워크플로 버전 관리
<a name="workflow-versions"></a>

워크플로를 변경해야 하는 경우 새 워크플로 또는 새 워크플로 버전을 생성할 수 있습니다. 실행 로직에 영향을 주지 않는 허용된 구성 변경을 제외하고 버전은 변경할 수 없습니다.

워크플로 버전은 다음과 같은 이점을 제공합니다.
+ 버전은 관련된 논리적 워크플로 그룹을 형성합니다. 각 워크플로 버전에 사용자 정의 이름을 추가하여 보다 쉽게 관리할 수 있습니다(특히 버전이 많은 워크플로의 경우).
+ 여러 버전의 워크플로를 동시에 실행할 수 있습니다.
+ 워크플로의 모든 버전은 동일한 워크플로 ID와 기본 ARN을 공유하므로 워크플로를 수정한 후 파이프라인 관리를 간소화할 수 있습니다.
+ 워크플로 버전은 워크플로와 동일한 수준의 데이터 출처를 제공합니다. 버전은 변경할 수 없으며 HealthOmics는 각 워크플로 버전에 대해 고유한 ARN을 생성합니다. 버전 ARN에는 다음 예제와 같이 워크플로 ID와 버전 이름이 포함됩니다.

  `arn:aws:omics:us-west-2:123456789012:workflow/1234567/version/myUniqueVersionName`
+ 공유 워크플로를 소유한 경우 구독자(이전 버전을 계속 사용할 수 있는 사용자)를 중단하지 않고 워크플로를 업데이트할 수 있습니다. 구독자는 모든 워크플로 버전에 액세스할 수 있습니다. 새 버전을 생성하는 경우 워크플로를 다시 공유할 필요가 없습니다.
+ 워크플로 실행을 시작할 때 워크플로 버전을 지정할 수 있습니다.
  + 사용자는 프로덕션 실행을 위해 안정적인 버전을 유지하고 테스트 실행을 위해 최신 버전을 사용해 볼 수 있습니다.
  + 새 버전에 문제가 발생하면 사용자는 이전 버전의 워크플로로 되돌릴 수 있습니다.
  + 공유 워크플로의 구독자는 사용할 버전을 선택할 수 있습니다.

**Topics**
+ [기본 워크플로 버전](workflows-default-version.md)
+ [워크플로 버전 생성](workflows-version-create.md)
+ [워크플로 버전 업데이트](workflows-version-update.md)
+ [워크플로 버전 삭제](workflows-version-delete.md)

# 기본 워크플로 버전
<a name="workflows-default-version"></a>

워크플로의 버전을 하나 이상 생성한 후 HealthOmics는 원래 워크플로를 기본 버전으로 취급합니다. 실행을 시작할 때 선택적으로 실행에 대한 워크플로 버전을 지정할 수 있습니다. 실행을 시작할 때 버전을 지정하지 않으면 HealthOmics는 기본 버전을 사용합니다.

콘솔에서 HealthOmics는 **기본 버전** 레이블이 있는 원래 워크플로를 나타냅니다. 콘솔은 워크플로 버전을 하나 이상 생성한 후에만이 레이블을 사용합니다. 원본 워크플로는 항상 기본 버전으로 유지됩니다. 다른 버전을 기본값으로 할당할 수 없습니다.

워크플로와 연결된 다른 버전이 있는 경우 워크플로의 기본 버전을 삭제할 수 없습니다. 자세한 내용은 [프라이빗 워크플로 삭제](delete-private-workflow.md) 단원을 참조하십시오.

# 워크플로 버전 생성
<a name="workflows-version-create"></a>

워크플로의 새 버전을 생성할 때 새 버전의 구성 값을 지정해야 합니다. 워크플로에서 구성 값을 상속하지 않습니다.

버전을 생성할 때이 워크플로에 고유한 버전 이름을 제공합니다. HealthOmics가 버전을 생성한 후에는 이름을 변경할 수 없습니다.

버전 이름은 문자 또는 숫자로 시작해야 하며 대문자 및 소문자, 숫자, 하이픈, 마침표 및 밑줄을 포함할 수 있습니다. 최대 길이는 64자입니다. 예를 들어 버전 1, 버전 2, 버전 3과 같은 간단한 이름 지정 체계를 사용할 수 있습니다. 워크플로 버전을 2.7.0, 2.7.1, 2.7.2와 같은 자체 내부 버전 관리 규칙과 일치시킬 수도 있습니다.

선택적으로 버전 설명 필드를 사용하여이 버전에 대한 메모를 추가합니다. 예를 들어 **Fix for syntax error in workflow definition**입니다.

**참고**  
버전 이름에 개인 식별 정보(PII)를 포함하지 마십시오. 버전 이름은 워크플로 버전 ARN에 표시됩니다.

HealthOmics는 워크플로 버전에 고유한 ARN을 할당합니다. ARN은 워크플로 ID와 버전 이름의 조합에 따라 고유합니다.

**주의**  
워크플로 버전을 삭제한 후 HealthOmics를 사용하면 다른 워크플로 버전의 버전 이름을 재사용할 수 있습니다. 버전 이름을 재사용하지 않는 것이 가장 좋습니다. 이름을 재사용하는 경우 워크플로와 각 버전에는 출처에 사용할 수 있는 고유한 UUID가 있습니다.

**Topics**
+ [콘솔을 사용하여 워크플로 버전 생성](#workflow-versions-console-create)
+ [CLI를 사용하여 워크플로 버전 생성](#workflow-versions-api-create)
+ [SDK를 사용하여 워크플로 버전 생성](#workflow-versions-sdk)
+ [워크플로 버전의 상태 확인](#using-get-workflow)

## 콘솔을 사용하여 워크플로 버전 생성
<a name="workflow-versions-console-create"></a>

**워크플로 버전을 생성하는 단계**

1. [HealthOmics 콘솔](https://console.aws.amazon.com/omics/)을 엽니다.

1.  필요한 경우 왼쪽 탐색 창(™)을 엽니다. **프라이빗 워크플로**를 선택합니다.

1. **프라이빗 워크플로** 페이지에서 새 버전의 워크플로를 선택합니다.

1. **워크플로 세부 정보** 페이지에서 **새 버전 생성을** 선택합니다.

1. **버전 생성** 페이지에서 다음 정보를 제공합니다.

   1. **버전 이름**: 워크플로 전체에서 고유한 워크플로 버전의 이름을 입력합니다.

   1. **버전 설명**(선택 사항): 설명 필드를 사용하여이 버전에 대한 메모를 추가할 수 있습니다.

1. **워크플로 정의** 패널에서 다음 정보를 제공합니다.

   1. **워크플로 언어**(선택 사항): 워크플로 버전의 사양 언어를 선택합니다. 그렇지 않으면 HealthOmics가 워크플로 정의에서 언어를 결정합니다.

   1. **워크플로 정의 소스**에서 Git 기반 리포지토리, Amazon S3 위치 또는 로컬 드라이브에서 정의 폴더를 가져오도록 선택합니다.

      1. **리포지토리 서비스에서 가져오기의** 경우:
**참고**  
HealthOmics는 GitHub, , , GitLab, Bitbucket에 대한 퍼블릭 및 프라이빗 리포지토리GitHub self-managed를 지원합니다GitLab self-managed.

         1. **연결을** 선택하여 AWS 리소스를 외부 리포지토리에 연결합니다. 연결을 생성하려면 섹션을 참조하세요[외부 코드 리포지토리와 연결](setting-up-new.md#setting-up-omics-repository).
**참고**  
TLV 리전의 고객은 워크플로를 생성하려면 IAD (us-east-1) 리전에서 연결을 생성해야 합니다.

         1. **전체 리포지토리 ID**에 리포지토리 ID를 user-name/repo-name으로 입력합니다. 이 리포지토리의 파일에 액세스할 수 있는지 확인합니다.

         1. **소스 참조**(선택 사항)에 리포지토리 소스 참조(브랜치, 태그 또는 커밋 ID)를 입력합니다. HealthOmics는 소스 참조가 지정되지 않은 경우 기본 브랜치를 사용합니다.

         1. **파일 패턴 제외**에 파일 패턴을 입력하여 특정 폴더, 파일 또는 확장자를 제외합니다. 이렇게 하면 리포지토리 파일을 가져올 때 데이터 크기를 관리하는 데 도움이 됩니다. 패턴은 최대 50개이며 패턴은 [glob 패턴 구문](https://fossil-scm.org/home/doc/tip/www/globs.md)을 따라야 합니다. 예: 

            1. `tests/`

            1. `*.jpeg`

            1. `large_data.zip`

      1. **S3에서 정의 폴더 선택**의 경우:

         1. 압축된 워크플로 정의 폴더가 포함된 Amazon S3 위치를 입력합니다. Amazon S3 버킷은 워크플로와 동일한 리전에 있어야 합니다.

         1. 계정이 Amazon S3 버킷을 소유하지 않은 경우 S3 버킷 소유자의 AWS 계정 ID에 버킷 소유자의 계정 ID를 입력합니다. **S3 ** 이 정보는 HealthOmics가 버킷 소유권을 확인할 수 있도록 하기 위해 필요합니다.

      1. **로컬 소스에서 정의 폴더 선택의** 경우:

         1. 압축된 워크플로 정의 폴더의 로컬 드라이브 위치를 입력합니다.

   1. **기본 워크플로 정의 파일 경로**(선택 사항): 압축된 워크플로 정의 폴더 또는 리포지토리에서 파일로의 `main` 파일 경로를 입력합니다. 워크플로 정의 폴더에 파일이 하나만 있거나 기본 파일의 이름이 "main"인 경우에는이 파라미터가 필요하지 않습니다.

1. **README 파일**(선택 사항) 패널에서 **README 파일의 소스를** 선택하고 다음 정보를 제공합니다.
   + **리포지토리 서비스에서 가져오기**의 **README 파일 경로**에 리포지토리 내의 README 파일 경로를 입력합니다.
   + **S3에서 파일 선택**의 경우 ** S3의 README 파일에** README 파일의 Amazon S3 URI를 입력합니다.
   + **로컬 소스에서 파일 선택**: **README - 선택** 사항에서 **파일 선택을** 선택하여 업로드할 마크다운(.md) 파일을 선택합니다.

1. **기본 실행 스토리지 구성** 패널에서이 워크플로를 사용하는 실행에 대한 기본 실행 스토리지 유형 및 용량을 제공합니다.

   1. **실행 스토리지 유형**: 정적 또는 동적 스토리지를 임시 실행 스토리지의 기본값으로 사용할지 여부를 선택합니다. 기본값은 정적 스토리지입니다.

   1. **스토리지 용량 실행**(선택 사항): 정적 실행 스토리지 유형의 경우이 워크플로에 필요한 기본 실행 스토리지 양을 입력할 수 있습니다. 이 파라미터의 기본값은 1200GiB입니다. 실행을 시작할 때 이러한 기본값을 재정의할 수 있습니다.

1. **태그**(선택 사항): 최대 50개의 태그를이 워크플로 버전과 연결할 수 있습니다.

1. **다음**을 선택합니다.

1. **워크플로 파라미터 추가**(선택 사항) 페이지에서 **파라미터 소스를** 선택합니다.

   1. **워크플로 정의 파일에서 구문 분석**의 경우 HealthOmics는 워크플로 정의 파일에서 워크플로 파라미터를 자동으로 구문 분석합니다.

   1. **Git 리포지토리의 파라미터 템플릿 제공**에서 리포지토리의 파라미터 템플릿 파일 경로를 사용합니다.

   1. **로컬 소스에서 JSON 파일 선택**에서 파라미터를 지정하는 로컬 소스에서 JSON 파일을 업로드합니다.

   1. **워크플로 파라미터를 수동으로 입력**하려면 파라미터 이름과 설명을 수동으로 입력합니다.

1. **파라미터 미리 보기** 패널에서이 워크플로 버전의 파라미터를 검토하거나 변경할 수 있습니다. JSON 파일을 복원하면 로컬 변경 사항이 손실됩니다.

1. **컨테이너 URI 다시 매핑** 페이지의 **매핑 규칙** 패널에서 워크플로에 대한 URI 매핑 규칙을 정의할 수 있습니다.

   **매핑 파일 소스**에서 다음 옵션 중 하나를 선택합니다.
   + **없음** - 매핑 규칙이 필요하지 않습니다.
   + **S3에서 JSON 파일 선택** - 매핑 파일의 S3 위치를 지정합니다.
   + **로컬 소스에서 JSON 파일 선택** - 로컬 디바이스에서 매핑 파일 위치를 지정합니다.
   + **수동으로 매핑 입력 **- 매핑 패널에 레지스트리 매핑 및 이미지 **매핑을** 입력합니다.

1.  콘솔에 **매핑 패널이** 표시됩니다. 매핑 소스 파일을 선택한 경우 콘솔에 파일의 값이 표시됩니다.

   1. **레지스트리 매핑**에서 매핑을 편집하거나 매핑을 추가할 수 있습니다(최대 20개의 레지스트리 매핑).

      각 레지스트리 매핑에는 다음 필드가 포함됩니다.
      + **업스트림 레지스트리 URL** - 업스트림 레지스트리의 URI입니다.
      + **ECR 리포지토리 접두사** - Amazon ECR 프라이빗 리포지토리에서 사용할 리포지토리 접두사입니다.
      + (선택 사항) **업스트림 리포지토리 접두사** - 업스트림 레지스트리에 있는 리포지토리의 접두사입니다.
      + (선택 사항) **ECR 계정 ID** - 업스트림 컨테이너 이미지를 소유한 계정의 계정 ID입니다.

   1. **이미지 매핑**에서 이미지 매핑을 편집하거나 매핑을 추가할 수 있습니다(최대 100개의 이미지 매핑).

      각 이미지 매핑에는 다음 필드가 포함됩니다.
      + **소스 이미지** - 업스트림 레지스트리에서 소스 이미지의 URI를 지정합니다.
      + **대상 이미지** - 프라이빗 Amazon ECR 레지스트리에서 해당 이미지의 URI를 지정합니다.

1. **다음**을 선택합니다.

1. 버전 구성을 검토한 다음 **버전 생성을** 선택합니다.

버전이 생성되면 콘솔이 워크플로 세부 정보 페이지로 돌아가 워크플로 및 버전 테이블에 새 **버전을** 표시합니다.

## CLI를 사용하여 워크플로 버전 생성
<a name="workflow-versions-api-create"></a>

`CreateWorkflowVersion` API 작업을 사용하여 워크플로 버전을 생성할 수 있습니다. 선택적 파라미터의 경우 HealthOmics는 다음 기본값을 사용합니다.


| 파라미터 | Default | 
| --- | --- | 
| Engine | 워크플로 정의에서 결정됨 | 
| 스토리지 유형 | STATIC | 
| 스토리지 용량(정적 스토리지용) | 1200 GiB | 
| 기본  | 워크플로 정의 폴더의 내용을 기반으로 결정됩니다. 자세한 내용은 [HealthOmics 워크플로 정의 요구 사항](workflow-defn-requirements.md)을 참조하세요. | 
| 액셀러레이터 | 없음 | 
| 태그 | 없음 | 

다음 CLI 예제에서는 정적 스토리지를 기본 실행 스토리지로 사용하여 워크플로 버전을 생성합니다.

```
aws omics create-workflow-version \
--workflow-id 1234567  \
--version-name "my_version" \
--engine WDL \
--definition-zip fileb://workflow-crambam.zip \
--description "my version description" \
--main file://workflow-params.json \
--parameter-template file://workflow-params.json \
--storage-type='STATIC'   \
--storage-capacity 1200   \
--tags example123=string  \
--accelerators GPU
```

워크플로 정의 파일이 Amazon S3 폴더에 있는 경우 대신 `definition-uri` 파라미터를 사용하여 위치를 입력합니다`definition-zip`. 자세한 내용은 AWS HealthOmics API 참조의 [CreateWorkflowVersion](https://docs.aws.amazon.com/omics/latest/api/API_CreateWorkflowVersion.html)을 참조하세요.

`create-workflow-version` 요청에 대해 다음과 같은 응답을 받습니다.

```
{
  "workflowId": "1234567",
  "versionName": "my_version",
  "arn": "arn:aws:omics:us-west-2:123456789012:workflow/1234567/version/3",
  "status": "ACTIVE",
  "tags": {
    "environment": "production",
    "owner": "team-alpha"
  },
  "uuid": "0ac9a563-355c-fc7a-1b47-a115167af8a2"
}
```

## SDK를 사용하여 워크플로 버전 생성
<a name="workflow-versions-sdk"></a>

SDKs.

다음 예제에서는 Python SDK를 사용하여 워크플로 버전을 생성하는 방법을 보여줍니다.

```
import boto3

omics = boto3.client('omics')

with open('definition.zip', 'rb') as f:
   definition = f.read()

response = omics.create_workflow_version(
   workflowId='1234567',
   versionName='my_version',
   requestId='my_request_1'
   definitionZip=definition,
   parameterTemplate={ ... }
)
```

## 워크플로 버전의 상태 확인
<a name="using-get-workflow"></a>

워크플로 버전을 생성한 후 다음과 같이 **get-workflow-version**을 사용하여 워크플로의 상태를 확인하고 다른 세부 정보를 볼 수 있습니다.

```
aws omics get-workflow-version 
--workflow-id 9876543
--version-name "my_version"
```

응답은 다음과 같이 상태를 포함한 워크플로 세부 정보를 제공합니다.

```
{
  "workflowId": "1234567",
  "versionName": "3.0.0",
  "arn": "arn:aws:omics:us-west-2:123456789012:workflow/1234567/version/3.0.0",
  "status": "ACTIVE",
  "description": ...
  "uuid": "0ac9a563-355c-fc7a-1b47-a115167af8a2"
}
```

이 워크플로 버전으로 실행을 시작하려면 상태가 로 전환되어야 합니다`ACTIVE`.

# 워크플로 버전 업데이트
<a name="workflows-version-update"></a>

프라이빗 워크플로 버전에 대한 설명과 기본 실행 스토리지 구성을 업데이트할 수 있습니다. 워크플로 버전의 다른 정보를 변경하려면 새 버전을 생성합니다.

**Topics**
+ [콘솔을 사용하여 워크플로 버전 업데이트](#workflow-versions-console-update)
+ [CLI를 사용하여 워크플로 버전 업데이트](#workflow-versions-api-update)
+ [SDK를 사용하여 워크플로 버전 업데이트](#workflow-versions-sdk-update)

## 콘솔을 사용하여 워크플로 버전 업데이트
<a name="workflow-versions-console-update"></a>

**워크플로 버전을 업데이트하려면**

1. [HealthOmics 콘솔](https://console.aws.amazon.com/omics/)을 엽니다.

1.  필요한 경우 왼쪽 탐색 창(™)을 엽니다. **프라이빗 워크플로**를 선택합니다.

1. **프라이빗 워크플로** 페이지에서 워크플로를 선택합니다.

1. **워크플로** 페이지의 업데이트할 워크플로 버전을 선택하고 **작업** 목록에서 **선택한 편집**을 선택합니다.
   + 기본 버전을 선택하면 콘솔에서 **워크플로 편집** 페이지가 열립니다. 자세한 내용은 [프라이빗 워크플로 업데이트](update-private-workflow.md) 단원을 참조하십시오.
   + 사용자 정의 버전을 선택하면 콘솔에서 **버전 편집** 페이지가 열립니다.

1. **버전 편집** 페이지에서 다음 정보를 제공합니다.
   + **버전 설명**(선택 사항) -이 버전에 대한 설명입니다.

1. **기본 실행 스토리지 구성** 패널에서이 워크플로 버전을 사용하는 실행에 대해 다음과 같은 기본값을 제공합니다. 실행을 시작할 때 기본값을 재정의할 수 있습니다.
   + **스토리지 유형 실행**에서 **정적** 또는 **동적**을 선택합니다.
   + 정적 실행 스토리지의 경우이 워크플로 버전을 사용하는 실행의 **기본 스토리지 용량 실행**을 선택합니다. 이 파라미터의 기본값은 1200GiB입니다.

1. **변경 사항 저장**을 선택합니다.

콘솔이 워크플로 세부 정보 페이지로 돌아가고 업데이트된 워크플로 버전이 포함된 페이지 배너가 표시됩니다.

## CLI를 사용하여 워크플로 버전 업데이트
<a name="workflow-versions-api-update"></a>

다음 CLI 명령을 사용하여 워크플로 버전의 파라미터를 업데이트할 수 있습니다. 워크플로 ID와 버전 이름의 조합은 버전을 고유하게 식별합니다.

```
aws omics update-workflow-version
--workflow-id 1234567
--version-name "my_version"
--storage-type 'STATIC' 
--storage-capacity 2400
--description "version description"
```

`update-workflow-version` 요청에 대한 응답을 받지 못합니다.

## SDK를 사용하여 워크플로 버전 업데이트
<a name="workflow-versions-sdk-update"></a>

SDKs. 다음 python SDK 예제에서는 워크플로 버전의 스토리지 유형과 설명을 업데이트하는 방법을 보여줍니다.

```
import boto3

omics = boto3.client('omics')

response = omics.update_workflow_version(
   workflowID=1234567,
   versionName='3.0.0',
   storageType='DYNAMIC',
   description='new version description'
)
```

# 워크플로 버전 삭제
<a name="workflows-version-delete"></a>

콘솔, CLI 또는 SDKs. 워크플로 버전을 삭제해도 워크플로 버전을 사용하는 진행 중인 실행에는 영향을 주지 않습니다.

는 삭제할 수 없습니다[기본 워크플로 버전](workflows-default-version.md). 모든 사용자 정의 버전을 삭제한 다음 워크플로를 삭제합니다.

**Topics**
+ [콘솔을 사용하여 워크플로 버전 삭제](#workflow-versions-console-delete)
+ [CLI를 사용하여 워크플로 버전 삭제](#workflow-versions-api-delete)
+ [SDK를 사용하여 워크플로 버전 삭제](#workflow-versions-sdk-delete)

## 콘솔을 사용하여 워크플로 버전 삭제
<a name="workflow-versions-console-delete"></a>

**워크플로 버전을 삭제하려면**

1. [HealthOmics 콘솔](https://console.aws.amazon.com/omics/)을 엽니다.

1.  필요한 경우 왼쪽 탐색 창(™)을 엽니다. **프라이빗 워크플로**를 선택합니다.

1. **프라이빗 워크플로** 페이지에서 워크플로를 선택합니다.

1. **워크플로** 페이지의 삭제할 워크플로 버전을 선택하고 **작업** 목록에서 **선택한 삭제**를 선택합니다.

1. **워크플로 버전 삭제** 모달에 "확인"을 입력하여 삭제를 확인합니다.

1. **삭제**를 선택합니다.

콘솔에 삭제된 워크플로 버전이 포함된 페이지 배너가 표시됩니다.

## CLI를 사용하여 워크플로 버전 삭제
<a name="workflow-versions-api-delete"></a>

다음 CLI 명령을 사용하여 사용자 정의 워크플로 버전을 삭제할 수 있습니다. 워크플로 ID와 버전 이름의 조합은 버전을 고유하게 식별합니다.

```
aws omics delete-workflow-version
--workflow-id 9876543
--version-name "my_version"
```

`delete-workflow-version` 요청에 대한 응답을 받지 못합니다.

## SDK를 사용하여 워크플로 버전 삭제
<a name="workflow-versions-sdk-delete"></a>

SDKs.

다음 예제에서는 Python SDK를 사용하여 워크플로를 삭제하는 방법을 보여줍니다.

```
import boto3

omics = boto3.client('omics')

response = omics.delete_workflow_version(
   workflowID=1234567,
   versionName='3.0.0'
)
```