Snowpark 프로젝트 정의 만들기

snowflake.yml 파일에는 Snowpark 프로젝트에 대한 함수와 프로시저 선언이 포함되어 있습니다.

참고

현재 Snowpark 프로젝트 정의 파일의 이름은 snowflake.yml 로 명명되어야 합니다.

다음 스니펫은 두 개의 함수와 두 개의 프로시저를 포함하는 Snowpark 프로젝트 정의 파일의 샘플을 보여줍니다. hello_function 함수는 Snowpark의 외부 함수를 사용합니다.

definition_version: '2'

mixins:
  snowpark_shared:
    artifacts:
      - dest: my_snowpark_project
        src: app/
    stage: dev_deployment

entities:

  hello_function:
    type: function
    identifier:
      name: hello_function
    handler: functions.hello_function
    signature:
      - name: name
        type: string
    returns: string
    external_access_integrations:
      - my_external_access
    secrets:
        cred: my_cred_name
    meta:
      use_mixins:
        - snowpark_shared

  hello_procedure:
    type: procedure
    identifier:
      name: hello_procedure
    handler: procedures.hello_procedure
    signature:
      - name: name
        type: string
    returns: string
    meta:
      use_mixins:
        - snowpark_shared

  test_procedure:
    type: procedure
    identifier:
      name: test_procedure
    handler: procedures.test_procedure
    signature: ''
    returns: string
    meta:
      use_mixins:
        - snowpark_shared
Copy

조심

프로젝트 디렉터리 내의 파일은 Snowflake CLI 에 의해 처리되며 다른 snow snowpark 명령을 실행할 때 Snowflake에 업로드될 수 있습니다. 프로젝트 디렉터리의 파일에 민감한 정보를 포함하는 경우에는 주의해야 합니다.

함수 및 프로시저 오브젝트 속성

다음 테이블에서는 함수와 프로시저에서 사용하는 속성을 설명합니다.

함수 및 프로시저 오브젝트 속성

속성

정의

식별자

선택 사항, 문자열

엔터티에 대한 선택적 Snowflake 식별자입니다. 값은 다음 형식일 수 있습니다.

  • 문자열 식별자 텍스트

    identifer: my-snowpark-id
    
    Copy

    따옴표로 묶지 않은 식별자와 따옴표로 묶은 식별자가 모두 지원됩니다. 따옴표로 묶인 식별자를 사용하려면 YAML 값에 따옴표(예: ’”My Snowpark Function”’)를 포함합니다.

  • 오브젝트

    identifer:
      name: my-snowpark-id
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    참고

    schema 또는 database 를 지정하고 name 속성에 정규화된 이름(예: mydb.schema1.my-app)을 사용하면 오류가 발생합니다.

유형

선택 사항, 문자열

반드시 function 또는 procedure 중 하나여야 합니다.

아티팩트

필수, 문자열 시퀀스

필수 리소스 목록입니다.

핸들러

필수, 문자열

snowpark.src 에 정의된 모듈 내부의 오브젝트에 대한 함수 또는 프로시저의 구현입니다. 예를 들어, functions.hello_function<src>/functions.py 파일의 hello_function 함수를 참조합니다.

반환

필수, 문자열

결과의 SQL 유형입니다. 사용 가능한 유형 의 목록 확인합니다.

서명

필수, 시퀀스

signature 매개 변수는 오브젝트에 전달되는 연속된 인자를 설명합니다. 각각의 이름과 유형을 지정해야 합니다. 예:

signature:
  - name: "first_argument"
    type: int
  - name: "second_argument"
    default: "default value"
    type: string
Copy

함수나 프로시저에 인자를 받지 않는 경우 이 값을 빈 문자열(signature: "")로 설정합니다.

사용 가능한 유형 열의 SQL 유형 을 확인합니다. 명명된 인자와 선택적 인자의 구문에 대해 자세히 알아보려면 선택적 인자가 있는 UDF 호출하기 섹션을 참조하십시오.

런타임

선택 사항, 문자열

프로시저나 함수를 실행할 때 사용할 Python 버전입니다. 기본값: “3.8”.

external_access_integrations

선택 사항, 문자열 시퀀스

이 절차의 핸들러 코드가 외부 네트워크에 액세스하는 데 필요한 외부 액세스 통합 의 이름입니다. 자세한 내용은 CREATE PROCEDURE 섹션을 참조하십시오.

시크릿

선택 사항, 사전

처리기 코드의 시크릿에서 정보를 검색할 때 변수를 사용하여 시크릿을 참조할 수 있도록 시크릿 이름을 변수에 할당합니다. 자세한 내용은 CREATE PROCEDURE 섹션을 참조하십시오.

가져오기

선택 사항, 문자열 시퀀스

가져올 이전에 업로드한 파일의 스테이지와 경로를 입력합니다. 자세한 내용은 CREATE PROCEDURE 섹션을 참조하십시오.

execute_as_caller

선택 사항, 부울

프로시저에만 사용 가능 프로시저가 소유자(사용자)의 권한으로 실행되는지, 아니면 호출자의 권한으로 실행되는지 확인합니다. 기본값: False(소유자 권한).