CDK 사용하여 리소스 배포시 Tags 값 지정 후, 배포때마다 Tag 값 변경(diff) 이벤트가 발생하는 현상

0

CDK로 다양한 리소스를 구성하여 배포를 하고 있습니다. 배포과정에 문제는 없었고, 코드에서 지정한 태그(Tag)값 또한 콘솔에서 정상적으로 잘 표시 됩니다.

Tags.of(Resource).add(key, value);

다만, 수정사항이 발생하여 CDK 배포가 필요한 경우, 배포 과정에서 diff 명령어를 실행하면 수정하지 않은 태그값에 대해서 변경된 내용이 있다고 알려줍니다. 리소스의 태그 값을 수정하지 않았지만, diff에서도 수정된 것으로 나오고, 내용을 확인해보면 한글이 깨진것처럼 ??로 노출 됩니다. 로그를 보면 deploy 명령어 실행시에는 변경 작업이 발생하는 것 같지는 않습니다만 (no changes), 메시지를 없애는 방법이 궁금합니다. 파이프라인에서 diff명령어를 통해 변경된 내용만 조회해야 하는데, 불필요한 Tag의 diff 정보가 노출되는 이슈 입니다. 내용 확인결과 한글만 변경된 것으로 인식하는 문제네요~

//diff 이벤트 발생
        [ ]   {
        [ ]     "Key": "TeamName",
        [-]     "Value": "AI???"
        [+]     "Value": "AI솔루션"
        [ ]   }

cdk.out에 저장된 json 파일을 열어봐도 한글은 정상적으로 입력되어 있습니다.

//stackXXXX.template.json
     {
      "Key": "TeamName",
      "Value": "AI솔루션"
     }

도움이 될만한 내용이 있다면 부탁드리겠습니다. ^^

질문됨 3달 전134회 조회
1개 답변
3

안녕하세요 jj2lover님,

AWS CDK 도구 키트를 이용해 앱을 배포하시고 cdk diff 명령을 수행하셨으나

한글 문자열이 ???와 함께 변경사항 목록에 표시되는 것으로 이해했습니다.


cdk diff 명령은 jj2lover님의 앱에 정의된 현재 스택과 이미 배포된 스택(CloudFormation 템플릿)을 비교하고 변경 사항 목록을 표기합니다.

(스택과 관련된 더 자세한 정보는 공식 문서(링크)를 통해 확인하실 수 있습니다.)

이때, 스택 간 비교를 위해 CloudFormation 템플릿을 사용하지만, 현재 CloudFormation Template 사용 시 한글을 포함한 non-ASCII 문자열이 왜곡/손실되어 표시되는(mangled) 현상이 나타나고 있습니다.


최신 버전의 aws-cdk 환경에서는 이와 관련하여 어느 정도의 개선이 이루어졌습니다.

최신 버전의 aws-cdk 환경에서는 cdk diff 명령 수행 시,

Omitted X changes because they are likely mangled non-ASCII characters. Use --strict to print them 메시지와 함께

왜곡된(mangled) non-ASCII 문자열을 감지하여 변경사항 목록으로부터 자동으로 제외하고, 터미널 출력 결과에도 표시되지 않습니다.

이를 실제 개발환경에서 테스트해 본 결과는 다음과 같습니다.

여기에 이미지 설명 입력

따라서 문제 해결을 위해 aws-cdk의 버전을 업그레이드하시는 것을 권장드립니다.

(단, cdk diff --strict 명령을 수행할 경우, --strict 옵션에 의해 왜곡된 non-ASCII 문자열을 제외하지 않아 언급해주신 현상이 여전히 발생합니다.)


제 답변이 도움이 되시기를 바랍니다. 감사합니다.

profile picture
답변함 3달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인