기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
문제 해결 AWS Proton
의 문제를 해결하는 방법을 알아봅니다 AWS Proton.
AWS CloudFormation 동적 파라미터를 참조하는 배포 오류
CloudFormation 동적 변수를 참조하는 배포 오류가 표시되는 경우 해당 오류가 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 이스케이프