기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
튜토리얼: 컴포저블 PDK 블루프린트로 풀스택 애플리케이션 만들기
CodeCatalyst Amazon은 프로젝트를 빠르게 시작하는 데 도움이 되는 다양한 청사진을 제공합니다. 블루프린트로 만든 프로젝트에는 소스 리포지토리, 샘플 소스 코드, CI/CD 워크플로, 빌드 및 테스트 보고서, 통합 문제 추적 도구 등 필요한 리소스가 포함됩니다. 하지만 가끔은 프로젝트를 점진적으로 구축하거나 블루프린트로 만든 기존 프로젝트에 기능을 추가하고 싶을 수도 있습니다. 블루프린트로 이 작업을 수행할 수도 있습니다. 이 튜토리얼에서는 토대를 마련하고 모든 프로젝트 코드를 단일 리포지토리에 저장할 수 있는 단일 블루프린트로 시작하는 방법을 보여줍니다. 이제 편의에 따라 초기 청사진 위에 다른 청사진을 추가하여 추가 리소스와 인프라를 유연하게 통합할 수 있습니다. 이 빌딩 블록 방법을 통해 여러 프로젝트의 특정 요구 사항을 해결할 수 있습니다.
이 튜토리얼에서는 여러 AWS Project Development Kit (AWSPDK) 블루프린트를 함께 작성하여 React 웹 사이트, Smithy API 및 이를 배포할 지원 인프라로 구성된 애플리케이션을 만드는 방법을 보여줍니다. CDK AWS 는 프로젝트를 관리하고 빌드하기 위한 개발 도구와 함께 일반적인 패턴을 위한 구성 요소를 AWS PDK 제공합니다. 자세한 내용은 AWSPDK GitHub 소스 리포지토리를
다음 PDK 블루프린트는 컴포저블 방식으로 애플리케이션을 빌드하는 데 서로 함께 사용할 수 있도록 설계되었습니다.
모노레포
- 모노레포 내 프로젝트 간 상호 종속성을 관리하는 루트 수준 프로젝트를 만듭니다. 이 프로젝트는 빌드 캐싱과 종속성 시각화도 제공합니다. Type Safe API
- Smithy 또는 Open API v3에서 정의할 수 API 있는 버전을 만들고, 빌드 타임 코드 생성을 관리하여 형식에 안전한 방식으로 구현하고 상호 작용할 수 있도록 합니다. API Gateway로의 배포를 관리하고 CDK 자동 입력 검증을 구성하는 구문을 판매합니다. API API Cloudscape React 웹 사이트
- Cognito Auth와 사전 통합되고 (선택 사항) 사용자가 API 만든 Cloudscape를 사용하여 구축된 React 기반 웹 사이트를 생성하여 안전하게 호출할 수 있는 기능을 제공합니다. API 인프라 - 애플리케이션을
배포하는 데 필요한 모든 관련 인프라를 설정하는 프로젝트를 생성합니다. CDK 또한 빌드할 때마다 CDK 코드를 기반으로 다이어그램을 생성하도록 사전 구성되어 제공됩니다. DevOps
- AWS 프로젝트 개발 키트 () AWS PDK 에 있는 구성과 호환되는 DevOps 워크플로를 만듭니다.
이 자습서에는 배포된 애플리케이션을 보고, 다른 사용자를 초대하여 작업하도록 하고, pull 요청이 병합되면 연결된 AWS 계정의 리소스에 자동으로 빌드되어 배포되는 pull 요청을 사용하여 코드를 변경하는 방법에 대한 단계도 포함되어 있습니다.
PDK블루프린트로 구성된 프로젝트를 만들면 프로젝트에 다음 리소스가 포함된 프로젝트가 생성됩니다. CodeCatalyst
모노레포로 구성된 소스 리포지토리.
정적 코드 분석 및 라이선스 검사를 실행하고 기본 브랜치가 변경될 때마다 샘플 코드를 빌드 및 배포하는 워크플로입니다. 코드를 변경할 때마다 아키텍처 다이어그램이 생성됩니다.
작업을 계획하고 추적하는 데 사용할 수 있는 이슈 보드 및 백로그입니다.
자동 보고서가 포함된 테스트 보고서 세트입니다.
주제
사전 조건
프로젝트를 만들고 업데이트하려면 다음과 설정 및 로그인 CodeCatalyst 같은 작업을 완료해야 합니다.
-
로그인할 AWS 빌더 ID가 있어야 CodeCatalyst 합니다.
-
스페이스에 속하고 해당 스페이스에서 스페이스 관리자 또는 파워 사용자 역할을 할당받아야 합니다. 자세한 내용은 공백 생성, 사용자에게 공간 권한 부여, Space 관리자 역할 단원을 참조하세요.
-
스페이스와 연결된 AWS 계정이 있어야 하며 가입 시 생성한 IAM 역할을 보유해야 합니다. 예를 들어 가입 시 -라는 역할 정책을 사용하여 서비스 역할을 생성하도록 선택할 수 있습니다. CodeCatalystWorkflowDevelopmentRole
spaceName
역할 정책. 역할에는 고유 식별자가CodeCatalystWorkflowDevelopmentRole-
추가된 이름이 지정됩니다. 역할 및 역할 정책에 대한 자세한 내용은 을 참조하십시오CodeCatalystWorkflowDevelopmentRole-spaceName서비스 역할 이해. 역할 생성 단계는 을 참조하십시오계정 및 스페이스에 대한 CodeCatalystWorkflowDevelopmentRole-spaceName역할 만들기.spaceName
1단계: 모노레포 프로젝트 생성
먼저 PDK- Monorepo 블루프린트로 시작하여 기초 역할을 하는 모노레포 코드베이스를 만들어 추가 블루프린트를 추가할 수 있습니다. PDK
- Monorepo 블루프린트를 사용하여 프로젝트를 만들려면 PDK
-
CodeCatalyst 콘솔에서 프로젝트를 만들려는 스페이스로 이동합니다.
-
스페이스 대시보드에서 프로젝트 생성을 선택합니다.
-
'블루프린트로 시작하기'를 선택합니다.
-
PDK- Monorepo 블루프린트를 선택한 후 다음을 선택합니다.
-
프로젝트 이름 아래에 프로젝트에 할당하려는 이름과 관련 리소스 이름을 입력합니다. 이름은 스페이스 내에서 고유해야 합니다.
-
프로젝트 리소스에서 다음을 수행하십시오.
기본 프로그래밍 언어에서 프로젝트 코드를 개발하는 데 사용할 언어를 선택합니다. Java 또는 Python 중에서 TypeScript 선택할 수 있습니다.
[코드 구성] 을 선택합니다.
소스 리포지토리 텍스트 입력 필드에 새 리포지토리를 생성할 소스 리포지토리의 이름을 입력하거나 기존 링크된 리포지토리에서 선택합니다. 기존 저장소는 비어 있어야 합니다. 자세한 내용은 소스 리포지토리 연결 단원을 참조하십시오.
(선택 사항) Package Manager 드롭다운 메뉴에서 패키지 관리자를 선택합니다. 이는 기본 프로그래밍 언어로 선택한 TypeScript 경우에만 필요합니다.
-
(선택 사항) 선택한 프로젝트 매개 변수에 따라 생성될 코드를 미리 보려면 프로젝트 미리 보기 생성에서 코드 보기를 선택합니다.
-
(선택 사항) 블루프린트 카드에서 세부 정보 보기를 선택하면 블루프린트의 아키텍처 개요, 필요한 연결 및 권한, 블루프린트가 생성하는 리소스 종류 등 블루프린트에 대한 구체적인 세부 정보를 볼 수 있습니다.
-
프로젝트 생성을 선택하여 모노레포 프로젝트를 생성합니다. 생성된 루트 레벨 프로젝트는 모노레포 내 프로젝트 간의 상호 종속성을 관리하고 빌드 캐싱 및 종속성 관리를 제공합니다.
프로젝트 블루프린트에 대한 자세한 내용은 을 참조하십시오. CodeCatalyst 청사진을 사용하여 포괄적인 프로젝트 생성
PDK- Monorepo 청사진은 프로젝트의 토대를 만들 뿐입니다. 블루프린트를 사용하여 실행 가능한 애플리케이션을 만들려면 Type Safe, Cloudscape React 웹사이트API, 인프라 등과 같은 다른 PDK 블루프린트를 추가해야 합니다. DevOps 다음 단계에서는 프로젝트에 Type Safe를 추가할 것입니다. API
2단계: 프로젝트에 타입 세이프 API 추가
PDK- 타입 세이프 API 블루프린트를 사용하면 Smithy 또는 OpenAI API v3를 사용하여 정의할 수 있습니다. API정의에서 런타임 패키지를 생성하는데, 여기에는 사용자와 상호 작용하는 클라이언트 API 및 구현을 위한 서버 측 코드가 포함됩니다. API 또한 블루프린트는 모든 작업에 대해 형식 안전성을 갖춘 CDK 구문을 생성합니다. API 기존 PDK 모노레포 프로젝트에 청사진을 추가하여 프로젝트에 API 기능을 추가할 수 있습니다.
PDK- Type Safe 블루프린트를 추가하려면 API
-
모노레포 프로젝트의 탐색 패널에서 블루프린트를 선택한 다음 블루프린트 추가를 선택합니다.
-
PDK- Type Safe API 블루프린트를 선택하고 다음을 선택합니다.
-
블루프린트 구성에서 블루프린트 파라미터를 구성합니다.
모델 언어에서 모델이 정의되는 API 언어를 선택합니다.
네임스페이스 텍스트 입력 필드에 원하는 네임스페이스를 입력합니다. API
API이름 텍스트 입력 필드에 이름을 입력합니다. API
CDKAPI언어에서 배포할 CDK 인프라를 작성하는 데 사용할 기본 언어를 선택합니다.
핸들러 언어 드롭다운 메뉴를 선택한 다음 작업에 사용할 핸들러를 구현할 언어를 선택합니다. API
문서 형식 드롭다운 메뉴를 선택한 다음 문서 생성에 사용할 형식을 선택합니다. API
-
코드 변경 탭에서 제안된 변경 사항을 검토하십시오. 풀 리퀘스트에 표시된 차이는 풀 리퀘스트가 생성된 시점의 프로젝트 변경 내용을 보여줍니다.
-
블루프린트가 적용될 때 적용될 제안된 변경 사항에 만족하면, Add blueprint (청사진 추가) 를 선택합니다.
풀 리퀘스트를 생성한 후 코멘트를 추가할 수 있습니다. 풀 리퀘스트나 파일의 개별 라인, 전체 풀 리퀘스트에 댓글을 추가할 수 있습니다.
@
기호와 파일 이름을 차례로 사용하여 파일 등의 리소스에 링크를 추가할 수 있습니다. -
상태 열에서 PDK- Type Safe API 블루프린트 행에 대해 Pending pull request (풀 리퀘스트) 를 선택한 다음, 열려 있는 풀 리퀘스트의 링크를 선택합니다.
-
병합을 선택하고 선호하는 병합 전략을 선택한 다음 병합을 선택하여 적용된 블루프린트의 변경 사항을 통합합니다.
풀 리퀘스트가 병합되면 monorepo 프로젝트 내에 구성된 Type API Safe와 관련된 모든 소스 코드가 들어 있는 새
packages/apis/
폴더가 생성됩니다. APImypdkapi
-
탐색 창에서 블루프린트를 선택하여 PDK- Type Safe의 상태가 최신으로 API 표시되는지 확인합니다.
3단계: 프로젝트에 Cloudscape React 웹 사이트 추가
PDK- Cloudscape React 웹사이트 블루프린트는 웹사이트를 생성합니다. 선택적 매개변수 (Type SafeAPIs) 를 연결하여 다양한 클라이언트를 테스트하기 위한 대화형 API 탐색기와 함께 인증된 유형 안전 클라이언트를 설정하도록 웹 사이트를 자동으로 구성할 수 있습니다. API
추가하려면 PDK - Cloudscape React 웹사이트 청사진
-
모노레포 프로젝트의 탐색 창에서 블루프린트를 선택한 다음 블루프린트 추가를 선택합니다.
-
PDK- Cloudscape React 웹사이트 블루프린트를 선택한 후 다음을 선택합니다.
-
블루프린트 구성에서 블루프린트 매개변수를 구성합니다.
웹사이트 이름 텍스트 입력 필드에 웹사이트 이름을 입력합니다.
Type Safe APIs 드롭다운 메뉴를 선택한 다음 웹사이트에 통합하려는 API 블루프린트를 선택합니다. 전달하면 인증된 클라이언트가 API 설정되고 필요한 종속성, API 탐색기 및 기타 기능이 추가됩니다.
-
코드 변경 탭에서 제안된 변경 사항을 검토하십시오. 풀 리퀘스트에 표시된 차이는 풀 리퀘스트가 생성된 시점의 프로젝트 변경 내용을 보여줍니다.
-
블루프린트가 적용될 때 적용될 제안된 변경 사항에 만족하면, Add blueprint (청사진 추가) 를 선택합니다.
풀 리퀘스트를 생성한 후 코멘트를 추가할 수 있습니다. 풀 리퀘스트나 파일의 개별 라인, 전체 풀 리퀘스트에 댓글을 추가할 수 있습니다.
@
기호와 파일 이름을 차례로 사용하여 파일 등의 리소스에 링크를 추가할 수 있습니다. -
상태 열에서 PDK- Cloudscape React 웹사이트 블루프린트 행에 대해 대기 중인 풀 리퀘스트를 선택한 다음, 열려 있는 풀 리퀘스트의 링크를 선택합니다.
-
병합을 선택하고 선호하는 병합 전략을 선택한 다음 병합을 선택하여 적용된 블루프린트의 변경 사항을 통합합니다.
풀 리퀘스트가 병합되면 monorepo 프로젝트 내에 새 웹사이트의 모든 소스 코드가 들어 있는 새
packages/websites/
폴더가 생성됩니다.my-website-name
-
탐색 창에서 블루프린트를 선택하여 PDK- Cloudscape React 웹사이트 상태가 최신으로 표시되는지 확인합니다.
다음으로 PDK- 인프라 청사진을 추가하여 웹사이트를 클라우드에 배포하기 위한 인프라를 생성합니다. AWS
4단계: 애플리케이션을 클라우드에 배포하기 위한 AWS 인프라 생성
PDK- 인프라 블루프린트는 웹사이트 및 API 웹 사이트 배포를 위한 모든 CDK 코드가 포함된 패키지를 설정합니다. 또한 기본적으로 다이어그램 생성 및 프로토타이핑 내그 팩에 대한 적합성을 제공합니다.
추가 방법 - 인프라 청사진 PDK
-
모노레포 프로젝트의 탐색 창에서 블루프린트를 선택한 다음 블루프린트 추가를 선택합니다.
-
PDK- 인프라 블루프린트를 선택한 후 다음을 선택합니다.
-
블루프린트 구성에서 블루프린트 매개변수를 구성합니다.
CDK언어에서 인프라 개발에 사용할 언어를 선택합니다.
스택 이름 텍스트 입력 필드에 블루프린트용으로 생성된 CloudFormation 스택 이름을 입력합니다.
참고
DevOps 워크플로를 설정하는 다음 단계를 위해 이 스택 이름을 메모해 두세요.
Type Safe APIs 드롭다운 메뉴를 선택한 다음 웹 사이트에 통합하려는 API 블루프린트를 선택합니다.
Cloudscape React TS 웹사이트 드롭다운 메뉴를 선택한 다음 인프라 내에 배포하려는 웹사이트 블루프린트 (예: - Cloudscape React 웹사이트) 를 선택합니다. PDK
-
코드 변경 탭에서 제안된 변경 사항을 검토하세요. 풀 리퀘스트에 표시된 차이는 풀 리퀘스트가 생성된 시점의 프로젝트 변경 내용을 보여줍니다.
-
블루프린트가 적용될 때 적용될 제안된 변경 사항에 만족하면, Add blueprint (청사진 추가) 를 선택합니다.
풀 리퀘스트를 생성한 후 코멘트를 추가할 수 있습니다. 풀 리퀘스트나 파일의 개별 라인, 전체 풀 리퀘스트에 댓글을 추가할 수 있습니다.
@
기호와 파일 이름을 차례로 사용하여 파일 등의 리소스에 링크를 추가할 수 있습니다. -
상태 열에서 PDK- 인프라 블루프린트 행의 Pending pull request를 선택한 다음, 열려 있는 풀 리퀘스트의 링크를 선택합니다.
-
병합을 선택하고 선호하는 병합 전략을 선택한 다음 병합을 선택하여 적용된 청사진의 변경 사항을 통합하십시오.
풀 리퀘스트가 병합되면 monorepo 프로젝트 내에 새
packages/infra
폴더가 생성되는데, 이 폴더에는 프로젝트를 클라우드에 배포할 인프라가 들어 있습니다. AWS -
탐색 창에서 블루프린트를 선택하여 인프라 상태가 최신으로 표시되는지 확인합니다. PDK
다음으로 PDK- DevOps 블루프린트를 추가하여 애플리케이션을 배포합니다.
5단계: 프로젝트를 배포하기 위한 DevOps 워크플로를 설정합니다.
PDK- DevOps blueprint는 구성에 지정된 AWS 계정과 역할을 사용하여 프로젝트를 빌드하고 배포하는 데 필요한 DevOps 워크플로를 생성합니다.
PDK- DevOps 블루프린트를 추가하려면
-
모노레포 프로젝트의 탐색 창에서 블루프린트를 선택한 다음 블루프린트 추가를 선택합니다.
-
PDK- DevOps 블루프린트를 선택한 후 다음을 선택합니다.
-
블루프린트 구성에서 블루프린트 파라미터를 구성합니다.
현재 환경에서 CDK부트스트랩을 선택합니다.
스택 이름 텍스트 입력 필드에 배포하려는 CloudFormation 스택의 이름을 입력합니다. 이 이름은 PDK- 인프라 4단계: 애플리케이션을 클라우드에 배포하기 위한 AWS 인프라 생성 블루프린트에 구성된 스택 이름과 일치해야 합니다.
AWS계정 연결 드롭다운 메뉴를 선택한 다음 리소스에 사용할 AWS 계정을 선택합니다. 자세한 내용은 공백 AWS 계정 에 추가 단원을 참조하십시오.
애플리케이션 배포에 사용할 역할 드롭다운 메뉴를 선택한 다음 프로젝트 애플리케이션을 배포하는 데 사용할 IAM 역할을 선택합니다.
참고
역할을 만들 때는 프로젝트 설정에
ProjectID
있는 현재 IAM 역할만SourceArn
사용하도록 제한하세요. 자세한 내용은 CodeCatalystWorkflowDevelopmentRole-spaceName서비스 역할 이해 단원을 참조하십시오.지역 드롭다운 메뉴를 선택한 다음 모노레포 프로젝트를 배포할 지역을 선택합니다. 배포는 필수 AWS 서비스가 있는 지역에서만 가능합니다. 자세한 내용은 지역별 AWS 서비스를
참조하십시오.
-
코드 변경 탭에서 제안된 변경 사항을 검토하십시오. 풀 리퀘스트에 표시된 차이는 풀 리퀘스트가 생성된 시점의 프로젝트 변경 내용을 보여줍니다.
-
블루프린트가 적용될 때 적용될 제안된 변경 사항에 만족하면, Add blueprint (청사진 추가) 를 선택합니다.
풀 리퀘스트를 생성한 후 코멘트를 추가할 수 있습니다. 풀 리퀘스트나 파일의 개별 라인, 전체 풀 리퀘스트에 댓글을 추가할 수 있습니다.
@
기호와 파일 이름을 차례로 사용하여 파일 등의 리소스에 링크를 추가할 수 있습니다. -
상태 열에서 PDK- 인프라 블루프린트 행의 Pending pull request를 선택한 다음, 열려 있는 풀 리퀘스트의 링크를 선택합니다.
-
병합을 선택하고 선호하는 병합 전략을 선택한 다음 병합을 선택하여 적용된 청사진의 변경 사항을 통합하십시오.
풀 리퀘스트가 병합되면 모노레포 프로젝트 내에 새
.codecatalyst/workflows
폴더가 생성됩니다. -
탐색 창에서 블루프린트를 선택하여 PDK-의 상태가 최신으로 DevOps 표시되는지 확인합니다.
참고
향후 빌드와 배포를 반복할 수 있도록 백그라운드에서 잠금 파일이 생성되기 때문에 PDK- DevOps PDK 블루프린트와 이후의 모든 블루프린트 변경은 이 시점부터 상당히 느려질 것입니다. 지원되는 모든 언어의 모든 패키지에 대한 잠금 파일이 생성됩니다.
6단계: 출시 워크플로 확인 및 웹 사이트 보기
이전 단계를 완료했으면 릴리스 워크플로를 확인하여 프로젝트가 빌드되고 있는지 확인할 수 있습니다.
출시 워크플로를 확인하고 웹사이트를 보려면
-
monorepo 프로젝트의 탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.
-
릴리스 워크플로의 경우 최신 워크플로 실행을 선택하여 세부 정보를 확인하세요. 자세한 내용은 단일 실행의 상태 및 세부 정보 보기 단원을 참조하십시오.
-
워크플로 실행이 성공적으로 완료되면 워크플로의 마지막 작업 (예: eta-ap-souteastDeploy-B-2) 을 선택한 다음 변수를 선택합니다.
-
변수 테이블에 있는 링크를 복사하여 붙여넣으면 배포된 웹 사이트를 볼 수 있습니다 (예:
MyPDKApi
websiteDistributionDomain이름 XXXXX) 을 새 브라우저 창에 입력합니다.웹사이트에 로그인하려면 Amazon Cognito 계정이 필요합니다. 기본적으로 사용자 풀은 자체 등록을 허용하도록 설정되지 않습니다.
-
AWSCognito
콘솔로 이동합니다. -
사용자 풀 테이블에서 PDK- DevOps 블루프린트로 만든 사용자 풀과 일치하는 사용자 풀 이름을 선택합니다. 이 이름은 Variables 테이블에서 찾을 수 있습니다 (예: infra).
calculate
betaUserIdentityinfracalculate
betaUserIdentityIdentityPoolIdXXXXX. 자세한 내용은 사용자 풀 시작하기를 참조하십시오. -
사용자 생성을 선택합니다.
-
사용자 정보 매개변수 구성:
초대 메시지에서 이메일 초대 보내기를 선택합니다.
사용자 이름 텍스트 입력 필드에 사용자 이름을 입력합니다.
이메일 주소 텍스트 입력 필드에 사용자 이름을 입력합니다.
임시 비밀번호에서 비밀번호 생성을 선택합니다.
-
사용자 생성을 선택합니다.
-
사용자 정보 매개변수로 입력한 이메일 계정으로 이동하여 임시 비밀번호가 포함된 이메일을 엽니다. 비밀번호를 기록해 두십시오.
-
배포된 웹사이트로 돌아가서 생성한 사용자 이름과 받은 임시 비밀번호를 입력한 다음 로그인을 선택합니다.
-
-
(선택 사항) 워크플로 실행이 성공적으로 완료된 후 생성된 다이어그램을 볼 수도 있습니다. 에서 CodeCatalyst아티팩트 탭을 선택하고 다이어그램 행에서 다운로드를 선택한 다음 다운로드한 파일을 엽니다.
프로젝트에서 협업하고 반복하세요. PDK
프로젝트를 설정한 후 소스 코드를 변경할 수 있습니다. 다른 스페이스 구성원을 초대하여 프로젝트 작업을 수행할 수도 있습니다. PDK블루프린트를 사용하면 각 블루프린트의 구성을 완전히 제어하면서 필요할 때 필요한 것만 추가하여 반복적으로 애플리케이션을 빌드할 수 있습니다.
주제
1단계: 프로젝트에 구성원 초대
콘솔을 사용하여 프로젝트에 사용자를 초대할 수 있습니다. 스페이스 구성원을 초대하거나 스페이스 외부에서 이름을 추가할 수 있습니다.
사용자를 프로젝트에 초대하려면 프로젝트 관리자 또는 스페이스 관리자 역할로 로그인해야 합니다.
스페이스 관리자 역할을 가진 사용자는 이미 스페이스의 모든 프로젝트에 대한 암시적 액세스 권한을 가지고 있으므로 프로젝트에 초대할 필요가 없습니다.
스페이스 관리자 역할을 할당하지 않고 프로젝트에 사용자를 초대하면 해당 사용자는 프로젝트 아래의 프로젝트 멤버 테이블과 스페이스 아래의 프로젝트 멤버 테이블에 표시됩니다.
프로젝트 설정 탭에서 멤버를 프로젝트에 초대하려면
-
프로젝트로 이동합니다.
작은 정보
상단 내비게이션 바에서 보려는 프로젝트를 선택할 수 있습니다.
-
탐색 창에서 프로젝트 설정을 선택합니다.
-
구성원 탭을 선택합니다.
-
프로젝트 멤버에서 새 멤버 초대를 선택합니다.
-
새 구성원의 이메일 주소를 입력하고 이 구성원의 역할을 선택한 다음 초대를 선택합니다. 역할에 관한 자세한 내용은 사용자 역할로 액세스 권한 부여 단원을 참조하세요.
프로젝트 개요 페이지에서 멤버를 프로젝트에 초대하려면
-
프로젝트로 이동합니다.
작은 정보
상단 내비게이션 바에서 보려는 프로젝트를 선택할 수 있습니다.
-
멤버 + 버튼을 선택합니다.
-
새 구성원의 이메일 주소를 입력하고 이 구성원의 역할을 선택한 다음 초대를 선택합니다. 역할에 관한 자세한 내용은 사용자 역할로 액세스 권한 부여 단원을 참조하세요.
2단계: 공동 작업을 위한 이슈 생성 및 작업 추적
CodeCatalyst 기능, 작업, 버그 및 문제가 있는 프로젝트와 관련된 기타 작업을 추적하는 데 도움이 됩니다. 이슈를 생성하여 필요한 작업과 아이디어를 추적할 수 있습니다. 기본적으로 이슈를 생성하면 백로그에 추가됩니다. 진행 중인 작업을 추적할 수 있는 게시판으로 이슈를 옮길 수 있습니다. 특정 프로젝트 멤버에게 이슈를 할당할 수도 있습니다. 이 단계에서는 이슈를 생성하여 PDK 프로젝트를 변경하세요.
이슈를 만들려면
https://codecatalyst.aws/
에서 CodeCatalyst 콘솔을 엽니다. -
이슈를 만들려는 모노레포 프로젝트로 이동하세요.
-
프로젝트 홈페이지에서 이슈 생성을 선택합니다. 또는 탐색 창에서 이슈를 선택합니다.
-
이슈 생성을 선택합니다.
참고
그리드 보기를 사용할 때 이슈를 인라인으로 추가할 수도 있습니다.
-
이슈의 제목을 입력합니다.
-
(선택 사항) 설명을 입력합니다. 이 문제의 경우 다음 설명을 입력합니다
a change in the src/mysfit_data.json file.
. 마크다운을 사용하여 서식을 추가할 수 있습니다. -
(선택 사항) 문제의 상태, 우선 순위, 추정을 선택합니다.
-
(선택 사항) 기존 라벨을 추가하거나 새 라벨을 만든 다음 + 라벨 추가를 선택하여 추가합니다.
기존 라벨을 추가하려면 목록에서 라벨을 선택합니다. 필드에 검색어를 입력하여 프로젝트에서 해당 용어가 포함된 모든 라벨을 검색할 수 있습니다.
새 레이블을 생성하여 추가하려면 만들려는 레이블의 이름을 검색 필드에 입력하고 Enter 키를 누릅니다.
-
(선택 사항) + 담당자 추가를 선택하여 담당자를 추가합니다. + Add me를 선택하여 자신을 담당자로 빠르게 추가할 수 있습니다.
작은 정보
Amazon Q에 문제를 할당하여 Amazon Q에서 문제 해결을 시도하도록 할 수 있습니다. 자세한 내용은 튜토리얼: CodeCatalyst 제너레이티브 AI 기능을 사용하여 개발 작업의 속도를 높이세요 단원을 참조하십시오.
이 기능을 사용하려면 공간에 제너레이티브 AI 기능을 활성화해야 합니다. 자세한 내용은 제너레이티브 AI 기능 관리를 참조하십시오.
-
(선택 사항) 기존 사용자 지정 필드를 추가하거나 새 사용자 지정 필드를 생성합니다. 이슈에는 사용자 지정 필드가 여러 개 있을 수 있습니다.
기존 사용자 지정 필드를 추가하려면 목록에서 사용자 지정 필드를 선택합니다. 필드에 검색어를 입력하여 프로젝트에서 해당 용어가 포함된 모든 사용자 지정 필드를 검색할 수 있습니다.
새 사용자 지정 필드를 만들어 추가하려면 만들려는 사용자 지정 필드의 이름을 검색 필드에 입력하고 Enter 키를 누릅니다. 그런 다음 만들려는 사용자 지정 필드 유형을 선택하고 값을 설정합니다.
-
이슈 생성을 선택합니다. 오른쪽 하단에 알림이 표시됩니다. 이슈가 성공적으로 생성되면 이슈가 성공적으로 생성되었다는 확인 메시지가 나타납니다. 이슈가 성공적으로 생성되지 않은 경우 실패 이유가 포함된 오류 메시지가 나타납니다. 그런 다음 [Retry] 를 선택하여 문제를 편집하고 다시 생성하거나 [취소] 를 선택하여 문제를 삭제할 수 있습니다. 두 옵션 모두 알림을 무시합니다.
참고
풀 리퀘스트를 생성할 때는 이슈에 연결할 수 없습니다. 하지만 생성 후 편집하여 풀 리퀘스트에 링크를 추가할 수 있습니다.
자세한 내용은 의 문제 추적 및 구성 CodeCatalyst 단원을 참조하십시오.
3단계: 소스 리포지토리 보기
Amazon에서 프로젝트와 관련된 소스 리포지토리를 볼 수 있습니다. CodeCatalyst 의 CodeCatalyst 소스 리포지토리의 경우 리포지토리의 개요 페이지는 다음을 포함하여 해당 리포지토리의 정보 및 활동에 대한 간략한 개요를 제공합니다.
-
리포지토리에 대한 설명 (있는 경우)
-
리포지토리 내 브랜치 수
-
리포지토리에 대해 열려 있는 풀 리퀘스트 수
-
리포지토리의 관련 워크플로 수
-
기본 브랜치 또는 선택한 브랜치에 있는 파일 및 폴더
-
표시된 브랜치에 마지막으로 커밋한 제목, 작성자, 날짜
-
마크다운에서 README 렌더링된.md 파일의 내용 (README.md 파일이 포함된 경우)
또한 이 페이지는 리포지토리의 커밋, 브랜치 및 풀 요청에 대한 링크와 개별 파일을 열고, 보고, 편집할 수 있는 빠른 방법을 제공합니다.
참고
콘솔에서는 연결된 리포지토리에 대한 이 정보를 볼 수 없습니다. CodeCatalyst 연결된 리포지토리에 대한 정보를 보려면 리포지토리 목록에서 링크를 선택하여 해당 리포지토리를 호스팅하는 서비스에서 해당 리포지토리를 여십시오.
프로젝트의 소스 리포지토리로 이동하려면
-
프로젝트로 이동하여 다음 중 하나를 수행하십시오.
프로젝트 요약 페이지의 목록에서 원하는 리포지토리를 선택한 다음 리포지토리 보기를 선택합니다.
-
탐색 창에서 코드를 선택한 다음 소스 리포지토리를 선택합니다. 소스 리포지토리의 목록에서 리포지토리 이름을 선택합니다. 필터 막대에 리포지토리 이름의 일부를 입력하여 리포지토리 목록을 필터링할 수 있습니다.
-
리포지토리 홈 페이지에서 리포지토리의 콘텐츠와 관련 리소스에 대한 정보 (예: pull request 및 워크플로 수) 를 볼 수 있습니다. 기본적으로 기본 브랜치의 콘텐츠가 표시됩니다. 드롭다운 목록에서 다른 브랜치를 선택하여 보기를 변경할 수 있습니다.
작은 정보
프로젝트 요약 페이지에서 프로젝트 코드 보기를 선택하여 프로젝트의 리포지토리로 빠르게 이동할 수도 있습니다.
4단계: 개발 환경 만들기 및 코드 변경
이 단계에서는 개발 환경을 만들고 코드를 변경한 다음 이를 기본 브랜치에 병합합니다. 이 자습서에서는 간단한 AWS PDK 프로젝트를 안내하지만 리포지토리에 제공된 좀 더 복잡한 예제를 따라할 수도 있습니다. AWS PDK GitHub
새 브랜치를 사용하여 개발 환경을 만들려면
-
monorepo 프로젝트의 탐색 창에서 다음 중 하나를 수행하십시오.
개요를 선택한 다음 내 개발 환경 섹션으로 이동합니다.
코드를 선택한 다음 개발 환경을 선택합니다.
코드를 선택하고 소스 리포지토리를 선택한 다음 개발 환경을 만들려는 모노레포 리포지토리를 선택합니다.
-
드롭다운 메뉴에서 지원되는 IDE 항목을 선택합니다. 자세한 내용은 Dev Environments에 지원되는 통합 개발 환경 섹션을 참조하세요.
-
리포지토리 복제를 선택합니다.
-
복제할 리포지토리를 선택하고, 새 브랜치에서 작업을 선택하고, 브랜치 이름 필드에 브랜치 이름을 입력하고, 다음에서 브랜치 생성 드롭다운 메뉴에서 새 브랜치를 만들 브랜치를 선택합니다.
참고
소스 리포지토리 페이지 또는 특정 소스 리포지토리에서 개발 환경을 만드는 경우 리포지토리를 선택할 필요가 없습니다. 개발 환경은 소스 리포지토리 페이지에서 선택한 소스 리포지토리에서 생성됩니다.
-
(선택 사항) 별칭 - 선택 사항에 개발 환경의 별칭을 입력합니다.
-
(선택 사항) 개발 환경 구성 편집 버튼을 선택하여 개발 환경의 컴퓨팅, 스토리지 또는 타임아웃 구성을 편집합니다.
-
(선택 사항) Amazon Virtual Private Cloud (AmazonVPC) - 선택 사항인 경우 드롭다운 메뉴에서 개발 환경에 연결할 VPC 연결을 선택합니다.
공간에 기본값이 VPC 설정되어 있으면 개발 환경이 해당 공간에 연결되어 실행됩니다. VPC 다른 연결을 연결하여 이를 무시할 수 있습니다. VPC 또한 VPC -connected 개발 환경은 툴킷을 지원하지 않는다는 점에 유의하세요. AWS
참고
VPC연결이 있는 개발 환경을 만들면 내부에 새 네트워크 인터페이스가 생성됩니다. VPC CodeCatalyst 관련 VPC 역할을 사용하여 이 인터페이스와 상호 작용합니다. 또한 IPv4 CIDR 블록이
172.16.0.0/12
IP 주소 범위로 구성되어 있지 않은지 확인하십시오. -
생성(Create)을 선택합니다. 개발 환경이 생성되는 동안 개발 환경 상태 열에 시작 중이 표시되고, 개발 환경이 생성되면 상태 열에 실행 중이 표시됩니다.
개발 환경이 실행된 후에는 pull 요청이 병합될 때 연결된 AWS 계정의 리소스에 자동으로 빌드되고 배포되는 pull 요청을 사용하여 코드를 CodeCatalyst 변경하여 생성된 샘플 애플리케이션을 사용할 수 있습니다. 모노레포는 devfile을 제공하므로 필요한 모든 글로벌 종속성 및 런타임이 자동으로 표시됩니다.
프로젝트의 코드를 변경하려면
-
개발 환경의 작동 중인 터미널에서 monorepo 프로젝트로 이동한 다음 다음 명령어를 실행하여 프로젝트 종속 항목을 설치합니다.
npx projen install
-
예제 작업을 정의하는
packages/apis/
로 이동합니다. API 이 자습서에서는 두 숫자를 더하는 간단한mypdkapi
/model/src/main/smithy/operations/say-hello.smithyCalculate
연산을 만들어 보겠습니다. 코드를 변경하여 입력과 출력을 포함하여 이 연산을 정의하십시오.예:
$version: "2" namespace com.aws @http(method: "
POST
", uri: "/calculate
") @handler(language: "typescript") operationCalculate
{ input := {@required numberA: Integer @required numberB: Integer
} output := {@required result: Integer
} }이
@handler
특성은 Type API Safe에 이 작업을 작성된 AWS Lambda 핸들러로 구현하겠다고 알려줍니다. TypeScript Type API Safe는 사용자가 구현할 수 있는 이 작업에 대한 스텁을 생성합니다. TypeScript@required
특성이 추가되었는데, 이는 배포되는 API 게이트웨이에 의해 런타임에 적용된다는 의미입니다. 자세한 내용은 Smithy설명서를 참조하십시오. -
코드 변경에 맞는
/say-hello.smithy
이름으로 파일 이름을 바꾸십시오 (예:).calculate.smithy
-
로 이동하여
packages/apis/
코드를 변경하여 작업을 연결합니다. 에 정의된mypdkapi
/model/src/main/smithy/main.smithyCalculate
작업을 이 파일의operations
필드에/calculate.smithy
나열하여 표시할 수 있습니다.예:
$version: "2" namespace com.aws use aws.protocols#restJson1 /// A sample smithy api @restJson1 service MyPDKApi { version: "1.0" operations: [
Calculate
] errors: [ BadRequestError NotAuthorizedError InternalFailureError ] } -
다음 명령을 실행하여 변경 내용을 빌드합니다.
npx projen build
참고
선택적으로
--parallel X
플래그를 전달하여 여러X
코어에 빌드를 배포할 수 있습니다.@handler
트레이트가 추가되었으므로 빌드가 완료된 후 다음 파일이 생성됩니다.-
/packages/apis/
mypdkapi
/handlers/typescript/src/calculate.ts
-
/packages/apis/
mypdkapi
/handlers/typescript/test/calculate.test.ts
-
-
packages/apis/
로 이동하여 코드를 변경합니다. 이 파일은 에 대해 호출되는 서버 핸들러입니다. APImypdkapi
/handlers/typescript/src/calculate.ts
import { calculateHandler, CalculateChainedHandlerFunction, INTERCEPTORS, Response, LoggingInterceptor, } from 'mypdkapi-typescript-runtime'; /** * Type-safe handler for the Calculate operation */ export const calculate: CalculateChainedHandlerFunction = async (request) => { LoggingInterceptor.getLogger(request).info('Start Calculate Operation'); const { input } = request; return
Response.success
({result: input.body.numberA + input.body.numberB,
}); }; /** * Entry point for the AWS Lambda handler for the Calculate operation. * The calculateHandler method wraps the type-safe handler and manages marshalling inputs and outputs */ export const handler = calculateHandler(...INTERCEPTORS, calculate); -
/packages/apis/
파일을 탐색하고 코드를 변경하여 단위 테스트를 업데이트하십시오.mypdkapi
/handlers/typescript/test/calculate.test.ts
예:
import { CalculateChainedRequestInput,
CalculateResponseContent,
} from 'mypdkapi-typescript-runtime'; import { calculate, } from '../src/calculate'; // Common request arguments const requestArguments = { chain: undefined as never, event: {} as any, context: {} as any, interceptorContext: { logger: { info: jest.fn(), }, }, } satisfies Omit<CalculateChainedRequestInput, 'input'>; describe('Calculate', () => { it('should return correct sum
', async () => { const response = await calculate({ ...requestArguments, input: { requestParameters: {}, body: {numberA: 1, numberB: 2
} }, }); expect(response.statusCode).toBe(200
); expect((response.body asCalculateResponseContent
).result
).toEqual(3
); }); }); -
/packages/infra/main/src/constructs/apis/
파일로 이동한 다음 코드를 변경하여 CDK 인프라에mypdkapi.ts
Calculate
작업을 위한 통합을 추가하세요. 이 API 구조에는 통합 속성이 있으며, 이 속성을 사용하여 이전에 추가한 구현을 전달할 수 있습니다. Smithy 모델의@handler
트레이트를Calculate
작업에 사용하고 있으므로 미리 구성된 생성된CalculateFunction
CDK 구문을 사용하여 핸들러 구현을 가리킬 수 있습니다.예:
import { UserIdentity } from "@aws/pdk/identity"; import { Authorizers,
Integrations
} from "@aws/pdk/type-safe-api"; import { Stack } from "aws-cdk-lib"; import { Cors } from "aws-cdk-lib/aws-apigateway"; import { AccountPrincipal, AnyPrincipal, Effect, PolicyDocument, PolicyStatement, } from "aws-cdk-lib/aws-iam"; import { Construct } from "constructs"; import { Api,CalculateFunction
} from "calculateapi-typescript-infra"; /** * Api construct props. */ export interface CalculateApiProps { /** * Instance of the UserIdentity. */ readonly userIdentity: UserIdentity; } /** * Infrastructure construct to deploy a Type Safe API. */ export class CalculateApi extends Construct { /** * API instance */ public readonly api: Api; constructor(scope: Construct, id: string, props?: CalculateApiProps) { super(scope, id); this.api = new Api(this, id, { defaultAuthorizer: Authorizers.iam(), corsOptions: { allowOrigins: Cors.ALL_ORIGINS, allowMethods: Cors.ALL_METHODS, }, integrations:{ calculate: { integration: Integrations.lambda(new CalculateFunction(this, "CalculateFunction")) }
}, policy: new PolicyDocument({ statements: [ // Here we grant any AWS credentials from the account that the prototype is deployed in to call the api. // Machine to machine fine-grained access can be defined here using more specific principals (eg roles or // users) and resources (ie which api paths may be invoked by which principal) if required. // If doing so, the cognito identity pool authenticated role must still be granted access for cognito users to // still be granted access to the API. new PolicyStatement({ effect: Effect.ALLOW, principals: [new AccountPrincipal(Stack.of(this).account)], actions: ["execute-api:Invoke"], resources: ["execute-api:/*"], }), // Open up OPTIONS to allow browsers to make unauthenticated preflight requests new PolicyStatement({ effect: Effect.ALLOW, principals: [new AnyPrincipal()], actions: ["execute-api:Invoke"], resources: ["execute-api:/*/OPTIONS/*"], }), ], }), }); // Grant authenticated users access to invoke the api props?.userIdentity.identityPool.authenticatedRole.addToPrincipalPolicy( new PolicyStatement({ effect: Effect.ALLOW, actions: ["execute-api:Invoke"], resources: [this.api.api.arnForExecuteApi("*", "/*", "*")], }), ); } } -
다음 명령어를 실행하여 변경 내용을 빌드하세요.
npx projen build
프로젝트 빌드가 완료되면 업데이트된 생성된 다이어그램을 볼 수 있습니다. 이 다이어그램은 에서 찾을 수 /packages/infra/main/cdk.out/cdkgraph/diagram.png
있습니다. 다이어그램은 함수가 어떻게 추가되고 API 생성된 함수에 연결되는지를 보여줍니다. CDK코드가 수정되면 이 다이어그램도 업데이트됩니다.
이제 변경 내용을 저장소의 기본 브랜치에 푸시하고 병합하여 변경 내용을 배포할 수 있습니다.
5단계: 코드 변경 사항 푸시 및 병합
코드 변경 사항을 커밋하고 푸시한 다음 소스 리포지토리의 기본 브랜치에 병합할 수 있습니다.
변경 내용을 기능 브랜치에 푸시하려면
-
다음 명령어를 실행하여 변경 사항을 기능 브랜치에 커밋하고 푸시하세요.
git add .
git commit -m "
my commit message
"git push
변경 사항을 푸시하면 기능 브랜치에 대한 새 워크플로가 실행되며 콘솔에서 이를 확인할 수 있습니다. CodeCatalyst 그런 다음 풀 요청을 생성하여 변경 내용을 소스 리포지토리의 기본 브랜치에 병합할 수 있습니다. 기능 브랜치를 메인 브랜치에 병합하면 릴리스 워크플로가 트리거됩니다. 풀 리퀘스트를 이슈에 연결할 수도 있습니다.
풀 리퀘스트를 생성하여 이슈에 연결하려면
-
모노레포 프로젝트에서 다음 중 하나를 수행하세요.
-
탐색 창에서 코드를 선택하고 풀 요청을 선택한 다음 풀 리퀘스트 생성을 선택합니다.
-
리포지토리 홈 페이지에서 추가를 선택한 다음 풀 리퀘스트 생성을 선택합니다.
-
프로젝트 페이지에서 풀 리퀘스트 생성을 선택합니다.
-
-
소스 리포지토리에서 지정된 소스 리포지토리가 커밋된 코드를 포함하는 리포지토리인지 확인합니다. 이 옵션은 리포지토리의 기본 페이지에서 풀 리퀘스트를 만들지 않은 경우에만 나타납니다.
-
대상 브랜치에서 코드를 검토한 후 병합할 메인 브랜치를 선택합니다.
-
소스 브랜치에서 커밋된 코드가 포함된 기능 브랜치를 선택합니다.
-
풀 리퀘스트 제목에 다른 사용자가 검토해야 할 내용과 이유를 이해하는 데 도움이 되는 제목을 입력합니다.
-
(선택 사항) 풀 리퀘스트 설명에 문제 링크 또는 변경 내용 설명과 같은 정보를 입력합니다.
작은 정보
Pull Request에 포함된 변경 사항에 대한 설명을 CodeCatalyst 자동으로 생성하도록 나를 위한 설명 쓰기를 선택할 수 있습니다. 자동으로 생성된 설명을 풀 리퀘스트에 추가한 후 변경할 수 있습니다.
이 기능을 사용하려면 공간에 제너레이티브 AI 기능을 활성화해야 합니다. 자세한 내용은 CodeCatalystAmazon의 제너레이티브 AI 기능 관리를 참조하십시오.
-
이슈에서 이슈 연결을 선택한 다음 에서 2단계: 공동 작업을 위한 이슈 생성 및 작업 추적 생성한 이슈를 선택합니다. 이슈의 연결을 해제하려면 연결 해제 아이콘을 선택합니다.
-
(선택 사항) 필수 검토자에서 필수 검토자 추가를 선택합니다. 프로젝트 멤버 목록에서 선택하여 추가합니다. 풀 리퀘스트를 대상 브랜치에 병합하려면 먼저 필수 검토자가 변경 사항을 승인해야 합니다.
참고
검토자를 필수 검토자와 선택적 검토자로 모두 추가할 수는 없습니다. 자신을 리뷰어로 추가할 수 없습니다.
-
(선택 사항) 선택적 검토자에서 선택적 검토자 추가를 선택합니다. 프로젝트 멤버 목록에서 선택하여 추가합니다. 선택적 검토자는 풀 리퀘스트를 대상 브랜치에 병합하기 전에 변경 사항을 요구 사항으로 승인할 필요가 없습니다.
-
풀 리퀘스트는 리뷰어 또는 직접 검토하여 메인 브랜치에 병합해야 합니다. 자세한 내용은 풀 요청 병합 단원을 참조하십시오.
변경 내용이 소스 리포지토리의 메인 브랜치에 병합되면 새 워크플로가 자동으로 실행됩니다.
-
병합이 완료되면 이슈를 완료로 옮길 수 있습니다.
-
탐색 창에서 이슈를 선택합니다.
-
에서 2단계: 공동 작업을 위한 이슈 생성 및 작업 추적 생성한 이슈를 선택하고 상태 드롭다운을 선택한 다음 완료를 선택합니다.
-
릴리스 워크플로는 실행 성공 후 애플리케이션을 배포하므로 변경 사항을 확인할 수 있습니다.
릴리스 워크플로를 확인하고 웹 사이트를 보려면
-
monorepo 프로젝트의 탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.
-
릴리스 워크플로의 경우 최신 워크플로 실행을 선택하여 세부 정보를 확인하세요. 자세한 내용은 단일 실행의 상태 및 세부 정보 보기 단원을 참조하십시오.
-
워크플로 실행이 성공적으로 완료되면 워크플로의 마지막 작업 (eta-ap-souteastDeploy-B-2) 을 선택한 다음 변수를 선택합니다.
-
에서 링크를 복사하여 붙여넣으면 배포된 웹 사이트를 볼 수 있습니다.
MyPDKApi
websiteDistributionDomain새 브라우저 창에 이름 XXXXX 행을 입력합니다. -
에서 6단계: 출시 워크플로 확인 및 웹 사이트 보기 생성한 사용자 이름과 암호를 입력한 다음 로그인을 선택합니다.
-
(선택 사항) 애플리케이션에서 변경 사항을 테스트합니다.
-
POST드롭다운 메뉴를 선택합니다.
-
numberA
및number B
에 두 개의 값을 입력한 다음 실행을 선택합니다. -
응답 본문에서 결과를 확인합니다.
-
시간이 지나면 PDK 블루프린트의 카탈로그 버전이 변경될 수 있습니다. 프로젝트의 블루프린트를 카탈로그 버전으로 변경하여 최신 변경 사항을 유지할 수 있습니다. 프로젝트의 블루프린트 버전을 변경하기 전에 코드 변경 사항과 영향을 받는 환경을 확인할 수 있습니다. 자세한 내용은 프로젝트의 블루프린트 버전 변경 단원을 참조하십시오.