AWS Proton 문제 해결 - AWS Proton

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

AWS Proton 문제 해결

AWS Proton의 문제 해결 방법을 알아보세요.

AWS CloudFormation 동적 파라미터를 참조하는 배포 오류

CloudFormation 동적 변수를 참조하는 배포 오류가 표시되는 경우 해당 오류가 Jinja 이스케이프 변수인지 확인하세요. 이러한 오류는 Jinja가 동적 변수를 잘못 해석하여 발생할 수 있습니다. CloudFormation 동적 파라미터 구문은 AWS Proton 파라미터에 사용하는 Jinja 구문과 매우 유사합니다.

CloudFormation 동적 변수 구문의 예:

'{{resolve:secretsmanager:MySecret:SecretString:password:EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE}}'.

AWS Proton 파라미터 Jinja 구문 예시:

'{{ service_instance.environment.outputs.env-outputs }}'.

이러한 오해 오류를 방지하기 위해 Jinja는 다음 예와 같이 CloudFormation 동적 파라미터를 이스케이프합니다.

이 예제는 AWS CloudFormation 사용 설명서에서 발췌한 것입니다. AWS Secrets Manager secret-name 및 json-key 세그먼트를 사용하여 시크릿에 저장된 로그인 자격 증명을 검색할 수 있습니다.

MyRDSInstance: Type: AWS::RDS::DBInstance Properties: DBName: 'MyRDSInstance' AllocatedStorage: '20' DBInstanceClass: db.t2.micro Engine: mysql MasterUsername: '{{resolve:secretsmanager:MyRDSSecret:SecretString:username}}' MasterUserPassword: '{{resolve:secretsmanager:MyRDSSecret:SecretString:password}}'

CloudFormation 동적 파라미터를 이스케이프하려면 다음 두 가지 방법을 사용할 수 있습니다.

  • {% raw %} and {% endraw %} 사이 블록을 묶습니다.

    '{% raw %}' MyRDSInstance: Type: AWS::RDS::DBInstance Properties: DBName: 'MyRDSInstance' AllocatedStorage: '20' DBInstanceClass: db.t2.micro Engine: mysql MasterUsername: '{{resolve:secretsmanager:MyRDSSecret:SecretString:username}}' MasterUserPassword: '{{resolve:secretsmanager:MyRDSSecret:SecretString:password}}' '{% endraw %}'
  • "{{ }}" 사이 파라미터를 묶습니다.

    MyRDSInstance: Type: AWS::RDS::DBInstance Properties: DBName: 'MyRDSInstance' AllocatedStorage: '20' DBInstanceClass: db.t2.micro Engine: mysql MasterUsername: "{{ '{{resolve:secretsmanager:MyRDSSecret:SecretString:username}}' }}" MasterUserPassword: "{{ '{{resolve:secretsmanager:MyRDSSecret:SecretString:password}}' }}"

자세한 내용은 Jinja 이스케이프 참조하세요.