프로젝트 정의 파일 템플릿 만들기

경우에 따라 프로젝트 정의 파일에 이미 있는 정보를 파일의 다른 위치에서 참조하고 싶을 수도 있습니다. Snowflake CLI 는 프로젝트 정의 파일 템플릿을 지원합니다.

프로젝트 정의 파일 템플릿은 <% %> 구문을 사용하여 템플릿을 지정합니다. 다음 예제는 env 섹션을 사용하여 Streamlit 애플리케이션의 이름을 정의하는 예제입니다.

definition_version: 2 env:  name: "my-app" entities:  my_streamlit:  type: "streamlit"  identifier: <% ctx.env.name %> 
Copy

<% ctx.env.name %> 구문은 프로젝트 정의에 대한 액세스를 제공하는 전역 컨텍스트 오브젝트를 참조하십시오. ctx 오브젝트는 프로젝트 정의와 동일한 구조를 갖습니다. 점 표기법을 사용해 정의된 오브젝트의 특성에 액세스할 수 있습니다. 예시 사례에는 다음이 포함됩니다.

  • ID pkg 로 Native App 패키지 이름에 액세스하기 위한 <% ctx.entities.pkg.identifier %>.

  • snowpark UDFs 및 프로시저의 스테이지 이름에 액세스하기 위한 <% ctx.entities.function.stage_name %>.

  • Streamlit 대시보드 이름에 액세스하기 위한 <% ctx.entities.my_streamlit.identifier %>.

셸 환경 변수를 동일한 이름(대/소문자를 구분)으로 설정하여 snowflake.yml 프로젝트 정의 파일 env 섹션에 정의된 모든 변수를 재정의할 수 있습니다. 예를 들어, 예제에서 정의한 이름 값을 재정의하려면 다음 셸 명령을 실행하면 됩니다.

export name="other" 
Copy

템플릿 기본값에 액세스

템플릿 기본값을 사용하면 필드가 명시적으로 정의되지 않은 경우에도 프로젝트 정의 파일에서 기본 필드와 자동 생성된 필드에 액세스할 수 있습니다. 예를 들어, 다음 Snowflake Native App 프로젝트 정의 파일을 살펴보겠습니다.

definition_version: 2 entities:  pkg:  type: application package  artifacts:  - src: app/*  dest: ./  app:  type: application  from:  target: pkg 
Copy

이 정의는 Snowflake Native App 을 생성하기에 충분한 정보를 제공하므로 애플리케이션을 생성할 때 애플리케이션 패키지 및 애플리케이션 인스턴스에 대한 기본값이 자동으로 생성됩니다. 이제 다음 구문을 사용하여 이러한 값에 액세스할 수 있습니다.

<% ctx.entities.app.identifier %> <% ctx.entities.pkg.identifier %> 
Copy