템플릿 동기화 구성을 생성합니다. - AWS Proton

템플릿 동기화 구성을 생성합니다.

AWS Proton를 사용하여 템플릿 동기화 구성을 생성하는 방법을 알아보세요.

템플릿 동기화 구성 전제 조건을 생성하기:
리포지토리 링크는 다음 구성 요소로 이루어져 있습니다.
  • 리포지토리에 액세스하고 해당 알림을 구독할 수 있는 AWS Proton 권한을 부여하는 AWS CodeStar Connections 연결입니다.

  • 서비스 연결 역할 리포지토리를 연결하면 서비스 연결 역할이 자동으로 만들어집니다.

첫 번째 템플릿 동기화 구성을 생성하기 전에 다음 디렉토리 레이아웃과 같이 템플릿 번들을 저장소에 푸시하세요.

/templates/ # subdirectory (optional) /templates/my-env-template/ # template name /templates/my-env-template/v1/ # template version /templates/my-env-template/v1/infrastructure/ # template bundle /templates/my-env-template/v1/schema/

첫 번째 템플릿 동기화 구성을 만든 후 업데이트된 템플릿 번들을 새 버전 에 추가하는 커밋을 푸시하면 새 템플릿 버전이 자동으로 생성됩니다(예: /my-env-template/v2/ 아래).

/templates/ # subdirectory (optional) /templates/my-env-template/ # template name /templates/my-env-template/v1/ # template version /templates/my-env-template/v1/infrastructure/ # template bundle /templates/my-env-template/v1/schema/ /templates/my-env-template/v2/ /templates/my-env-template/v2/infrastructure/ /templates/my-env-template/v2/schema/

동기화로 구성된 하나 이상의 템플릿에 대한 새 템플릿 번들 버전을 단일 커밋에 포함할 수 있습니다. AWS Proton은 커밋에 포함된 각 새 템플릿 번들 버전에 대해 새 템플릿 버전을 만듭니다.

템플릿 동기화 구성을 생성한 후에도 콘솔 또는 AWS CLI에서 S3 버킷에서 템플릿 번들을 업로드하여 템플릿의 새 버전을 수동으로 생성할 수 있습니다. 템플릿 동기화는 리포지토리에서 AWS Proton의 한 방향으로만 작동합니다. 수동으로 생성한 템플릿 버전은 동기화되지 않습니다.

템플릿 동기화 구성을 설정한 후 AWS Proton은 리포지토리의 변경 사항을 수신합니다. 변경 사항이 푸시될 때마다 템플릿과 이름이 같은 디렉토리를 찾습니다. 그런 다음 해당 디렉터리 내에서 메이저 버전처럼 보이는 모든 디렉터리를 찾습니다. AWS Proton은 템플릿 번들을 해당 템플릿 메이저 버전에 등록합니다. 새 버전은 항상 DRAFT 상태를 유지합니다. 콘솔 또는 AWS CLI를 사용하여새 버전을 게시할 수 있습니다.

예를 들어 my-env-template이라는 템플릿이 다음과 같은 레이아웃으로 브랜치 mainmy-repo/templates에서 동기화되도록 구성되어 있다고 가정해 보겠습니다.

/code /code/service.go README.md /templates/ /templates/my-env-template/ /templates/my-env-template/v1/ /templates/my-env-template/v1/infrastructure/ /templates/my-env-template/v1/schema/ /templates/my-env-template/v2/ /templates/my-env-template/v2/infrastructure/ /templates/my-env-template/v2/schema/

AWS Proton은 /templates/my-env-template/v1/의 콘텐츠를 my-env-template:1에 동기화하고 /templates/my-env-template/v2/의 콘텐츠를 my-env-template:2에 동기화합니다. 아직 존재하지 않는 경우 다음과 같은 메이저 버전이 생성됩니다.

AWS Proton은 템플릿 이름과 일치하는 첫 번째 디렉터리를 찾았습니다. 템플릿 동기화 구성을 만들거나 편집할 때 subdirectoryPath를 지정하여 디렉토리 AWS Proton 검색을 제한할 수 있습니다. 예를 들어, subdirectoryPath에 대해 /production-templates/로 지정할 수 있습니다.

콘솔 또는 CLI를 사용하여 서비스 동기화 구성을 만들 수 있습니다.

AWS Management Console
콘솔을 사용하여 템플릿 및 템플릿 동기화 구성을 생성합니다.
  1. AWS Proton 콘솔에서 환경 템플릿을 선택합니다.

  2. 환경 템플릿 생성을 선택합니다.

  3. 환경 템플릿 생성 페이지의 템플릿 옵션 단원에서 새 환경을 프로비저닝하기 위한 템플릿 생성을 선택합니다.

  4. 템플릿 번들 소스 단원에서 Git에서 템플릿 동기화를 선택합니다.

  5. 소스 코드 리포지토리에서,

    1. 리포지토리의 경우 템플릿 번들이 포함된 연결된 리포지토리를 선택합니다.

    2. 브랜치의 경우 동기화할 리포지토리 브랜치를 선택합니다.

    3. (선택 사항) 템플릿 번들 디렉터리의 경우 디텍터리의 이름을 입력하여 템플릿 번들 검색 범위를 좁힙니다.

  6. 템플릿 세부 정보 단원에서.

    1. 템플릿 이름을 입력합니다.

    2. (선택 사항) 템플릿 표시 이름을 입력합니다.

    3. (선택 사항) 환경 템플릿에 대한 템플릿 설명을 입력합니다.

  7. (선택 사항) 암호화 설정 단원에서 암호화 설정 사용자 지정(고급) 확인란을 선택하여 고유한 암호화 키를 제공하세요.

  8. (선택 사항) 태그 단원에서 새 태그 추가를 선택하고 키와 값을 입력하여 고객 관리형 태그를 생성합니다.

  9. 환경 템플릿 생성을 선택합니다.

    이제 새 환경 템플릿의 상태 및 세부 정보를 표시하는 새 페이지가 열립니다. 이러한 세부 정보에는 관리 태그와 고객 AWS 관리형 태그 목록이 포함됩니다. AWS Proton는 AWS Proton 리소스를 생성할 때 AWS 관리형 태그를 자동으로 생성합니다. 자세한 내용은 AWS Proton 리소스 및 태깅 단원을 참조하세요.

  10. 템플릿 세부 정보 페이지에서 동기화 탭을 선택하여 템플릿 동기화 구성 세부 정보 데이터를 확인합니다.

  11. 템플릿 버전 탭을 선택하면 상태 세부 정보가 포함된 템플릿 버전을 볼 수 있습니다.

  12. 새 환경 템플릿 상태의 상태는 초안 상태에서 시작됩니다. 사용자 및 proton:CreateEnvironment 권한이 있는 다른 사용자가 보고 액세스할 수 있습니다. 다음 단계에 따라 다른 사람이 템플릿을 사용할 수 있도록 합니다.

  13. 템플릿 버전 단원에서 방금 만든 템플릿의 마이너 버전 왼쪽에 있는 라디오 버튼 (1.0) 을 선택합니다. 또는 정보 알림에서 게시를 선택하고 다음 단계를 건너뛸 수도 있습니다.

  14. 템플릿 버전 단원에서 게시를 선택합니다.

  15. 템플릿 상태가 게시됨으로 변경됩니다. 템플릿의 최신 및 권장 버전입니다.

  16. 탐색 창에서 환경 템플릿을 선택하여 환경 템플릿 및 세부 정보 목록을 확인합니다.

서비스 템플릿과 템플릿 동기화 구성을 만드는 절차는 비슷합니다.

AWS CLI
AWS CLI를 사용하여 템플릿 및 템플릿 동기화 구성을 생성합니다.
  1. 템플릿 생성 이 예시에서는 환경 템플릿이 생성됩니다.

    다음 명령을 실행합니다.

    $ aws proton create-environment-template \ --name "env-template"

    응답은 다음과 같습니다.

    { "environmentTemplate": { "arn": "arn:aws:proton:us-east-1:123456789012:environment-template/env-template", "createdAt": "2021-11-07T23:32:43.045000+00:00", "displayName": "env-template", "lastModifiedAt": "2021-11-07T23:32:43.045000+00:00", "name": "env-template", "status": "DRAFT", "templateName": "env-template" } }
  2. 다음을 입력하여 AWS CLI로 템플릿 동기화 구성을 만듭니다:
    • 동기화할 템플릿입니다. 템플릿 동기화 구성을 만든 후에도 콘솔에서 또는 AWS CLI를 사용하여 수동으로 새 버전을 만들 수 있습니다.

    • 템플릿 이름입니다.

    • 템플릿 유형.

    • 동기화하려는 링크된 리포지토리

    • 연결된 저장소 제공자.

    • 템플릿 번들이 있는 브랜치입니다.

    • (선택 사항) 템플릿 번들이 포함된 디렉터리의 경로입니다. 기본적으로 AWS Proton은 템플릿 이름과 일치하는 첫 번째 디렉터리를 찾습니다.

    다음 명령을 실행합니다.

    $ aws proton create-template-sync-config \ --template-name "env-template" \ --template-type "ENVIRONMENT" \ --repository-name "myrepos/templates" \ --repository-provider "GITHUB" \ --branch "main" \ --subdirectory "env-template/"

    응답은 다음과 같습니다.

    { "templateSyncConfigDetails": { "branch": "main", "repositoryName": "myrepos/templates", "repositoryProvider": "GITHUB", "subdirectory": "templates", "templateName": "env-template", "templateType": "ENVIRONMENT" } }
  3. 템플릿 버전을 게시하려면 템플릿 등록 및 게시을 참조하세요.

서비스 템플릿 동기화

위 예제는 환경 템플릿을 동기화하는 방법을 보여줍니다. 서비스 템플릿도 비슷합니다. 서비스 템플릿을 동기화하려면 템플릿 번들의 각 메이저 버전 디렉터리에 이름이 지정된 .template-registration.yaml 추가 파일을 추가합니다. 이 파일에는 커밋 후 서비스 템플릿 버전을 만들 때 AWS Proton에서 필요한 추가 세부 정보가 들어 있습니다. AWS Proton 콘솔이나 API를 사용하여 명시적으로 서비스 템플릿 버전을 생성할 때 이러한 세부 정보를 입력으로 제공하면 이 파일이 템플릿 동기화에 대한 이러한 입력을 대체합니다.

./templates/ # subdirectory (optional) /templates/my-svc-template/ # service template name /templates/my-svc-template/v1/ # service template version /templates/my-svc-template/v1/.template-registration.yaml # service template version properties /templates/my-svc-template/v1/instance_infrastructure/ # template bundle /templates/my-svc-template/v1/schema/

.template-registration.yaml 파일에는 다음 코드가 포함되어 있습니다.

  • 호환되는 환경[필수] - 이러한 환경 템플릿 및 메이저 버전을 기반으로 하는 환경은 이 서비스 템플릿 버전을 기반으로 하는 서비스와 호환됩니다.

  • 지원되는 구성 요소 소스[선택 사항] - 이러한 소스를 사용하는 구성 요소는 이 서비스 템플릿 버전을 기반으로 하는 서비스와 호환됩니다. 지정하지 않으면 구성 요소를 이러한 서비스에 연결할 수 없습니다. 구성 요소에 대한 자세한 내용은 AWS Proton 구성 요소를 참조하세요.

파일의 YAML 구문은 다음과 같습니다.

compatible_environments: - env-templ-name:major-version - ... supported_component_sources: - DIRECTLY_DEFINED

하나 이상의 환경 템플릿/메이저 버전 조합을 지정합니다. supported_component_sources 지정은 선택 사항이며 지원되는 값은 DIRECTLY_DEFINED뿐입니다.

예 .template-registration.yaml

이 예제에서 서비스 템플릿 버전은 my-env-template 환경 템플릿의 메이저 버전 1 및 2와 호환됩니다. 또한 another-env-template 환경 템플릿의 주요 버전 1 및 3과도 호환됩니다. 파일은 supported_component_sources을 지정하지 않으므로 이 서비스 템플릿 버전을 기반으로 하는 서비스에 구성 요소를 연결할 수 없습니다.

compatible_environments: - my-env-template:1 - my-env-template:2 - another-env-template:1 - another-env-template:3
참고

이전에는 AWS Proton은 호환 환경을 지정하기 위해 다른 파일을 .compatible-envs를 정의했습니다. AWS Proton은 이전 버전과의 호환성을 위해 해당 파일과 해당 형식을 계속 지원합니다. 확장이 불가능하고 구성 요소와 같은 최신 기능을 지원할 수 없으므로 더 이상 사용하지 않는 것이 좋습니다.