프로젝트 정의 파일 템플릿 만들기¶
경우에 따라 프로젝트 정의 파일에 이미 있는 정보를 파일의 다른 위치에서 참조하고 싶을 수도 있습니다. Snowflake CLI 는 프로젝트 정의 파일 템플릿을 지원합니다.
프로젝트 정의 파일 템플릿은 <% … %>
구문을 사용하여 템플릿을 지정합니다. 다음 예제는 env
섹션을 사용하여 Streamlit 애플리케이션의 이름을 정의하는 예제입니다.
definition_version: 2
env:
name: "my-app"
entities:
my_streamlit:
type: "streamlit"
identifier: <% ctx.env.name %>
<% 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"
템플릿 기본값에 액세스¶
템플릿 기본값을 사용하면 필드가 명시적으로 정의되지 않은 경우에도 프로젝트 정의 파일에서 기본 필드와 자동 생성된 필드에 액세스할 수 있습니다. 예를 들어, 다음 Snowflake Native App 프로젝트 정의 파일을 살펴보겠습니다.
definition_version: 2
entities:
pkg:
type: application package
artifacts:
- src: app/*
dest: ./
app:
type: application
from:
target: pkg
이 정의는 Snowflake Native App 을 생성하기에 충분한 정보를 제공하므로 애플리케이션을 생성할 때 애플리케이션 패키지 및 애플리케이션 인스턴스에 대한 기본값이 자동으로 생성됩니다. 이제 다음 구문을 사용하여 이러한 값에 액세스할 수 있습니다.
<% ctx.entities.app.identifier %> <% ctx.entities.pkg.identifier %>