컨테이너 빌드 워크플로
경고: 이 콘텐츠는 기술 자료의 미리 보기입니다. 코드 샘플이 포함된 전체 기술 자료는 아직 제작 중입니다. 이 페이지 하단의 피드백 메커니즘을 통해 피드백을 제공해 주십시오.
컨테이너 빌드 워크플로에는 컨테이너 준비, 빌드 가져오거나 만들기, 빌드 파일 목록 만들기, 빌드 파일 반복 작업(iteration), 빌드 버전 만들기, 빌드 동기화 대기가 포함됩니다.
컨테이너 빌드 워크플로를 사용하기 전에 CCD API 키와 더불어 다음 역할이 부여된 UGS 서비스 계정이 있어야 합니다.
- Multiplay API 조회자
- Multiplay API 편집자
- Multiplay 레지스트리 편집자
참고: 이 워크플로 전반에서 Unity 프로젝트 ID와 환경 ID를 참조해야 합니다. 프로젝트 설정 페이지와 환경 페이지에서 각각 프로젝트 ID와 환경 ID를 찾을 수 있습니다.
다음 다이어그램은 간소화된 버전의 워크플로를 보여 줍니다.
빌드 컨테이너 준비
참고: 게임 바이너리를 빌드하고 컨테이너를 빌드하는 작업은 Multiplay Hosting API의 범위를 벗어납니다.
- 대역 외 프로세스를 사용하여 컨테이너 이미지를 빌드합니다.
- Unity 프로젝트 ID와 환경 ID를 기록해 둡니다.
- Multiplay 컨테이너 레지스트리에 로그인합니다.
- 사용자 이름에 Key ID를 사용하고 비밀번호에 Secret Key를 사용합니다. 인증을 참고하십시오.
docker login registry.multiplay.com -u <KeyID>
빌드 가져오거나 만들기
빌드를 가져오는 프로세스는 기존 빌드를 사용할지 혹은 새 빌드를 만들지에 따라 달라집니다.
참고: 빌드 ID와 CCD 버킷 ID는 일대일 관계를 갖는 별도의 ID입니다. 버킷 ID로 식별되는 버킷은 빌드 파일을 저장하고, 빌드 ID로 식별되는 빌드는 버킷의 파일을 메타데이터로 래핑합니다.
이름을 기준으로 기존 빌드 가져오기
빌드 나열 API를 사용하여 이름을 기준으로 기존 빌드 ID를 가져올 수 있습니다.
빌드 나열 API 응답 본문에는 빌드별로 ccd.bucketID
필드와 buildID
필드에 각 빌드의 CCD 버킷 ID가 포함됩니다. 사용할 빌드의 buildID
를 기록해 두십시오.
다음 코드 샘플은 curl을 사용하여 기존 빌드를 가져오는 방법을 보여 줍니다.
curl -X GET -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds
사용할 빌드를 찾으면 응답 본문에서 buildID
를 기록해 두십시오.
새 빌드 만들기
빌드 만들기 API를 사용하여 새 빌드를 만들 수 있습니다.
다음 코드 샘플은 curl을 사용하여 빌드를 만드는 방법을 보여 줍니다.
curl -X POST -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" -H "Content-Type: application/json" \
-d '{"buildName":"Dev Build A", "osFamily": "LINUX"}' \
https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds
새 빌드를 만들면 응답 본문에서 buildID
를 기록해 두십시오.
컨테이너 이미지에 태그 지정
새 빌드를 처음으로 푸시하는 경우, MultiplayTag
로 v1
을 사용합니다. 첫 푸시 후에는 태그의 숫자를 1씩 늘려 사용합니다(예: v2
).
다음 코드 스니핏을 컨테이너 태그 지정 템플릿으로 사용합니다. ImageName
, ImageTag
가 각각 로컬 이미지 이름과 태그입니다.
docker tag <ImageName>:<ImageTag> registry.multiplay.com/<ProjectID>/<EnvironmentID>/<BuildID>:<MultiplayTag>
이미지를 컨테이너 레지스트리로 푸시합니다.
컨테이너에 태그를 지정한 후에는 Multiplay 컨테이너 레지스트리로 푸시합니다. 다음 코드 스니핏을 템플릿으로 사용합니다.
docker push registry.multiplay.com/<ProjectID>/<EnvironmentID>/<BuildID>:<MultiplayTag>
빌드 버전 만들기
새 빌드 버전 만들기 API를 사용하여 빌드 버전을 만들 수 있습니다.
다음 코드 샘플은 curl을 사용하여 빌드 버전을 만드는 방법을 보여 줍니다.
curl -X POST -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" -H "Content-Type: application/json" \
-d '{"container": {"imageTag": "v1"}, "forceRollout": false}' \
https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds/{buildId}/versions
빌드 동기화 대기
syncStatus
필드가 SYNCED
가 될 때까지 단일 빌드 가져오기 API를 연동하여 빌드 동기화가 완료되는 시점을 파악할 수 있습니다.
다음 코드 샘플은 curl을 사용하여 빌드가 동기화될 때까지 대기하는 방법을 보여 줍니다.
curl -X GET -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds/{buildId}