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
조심
프로젝트 디렉터리 내의 파일은 Snowflake CLI 에 의해 처리되며 다른 snow snowpark 명령을 실행할 때 Snowflake에 업로드될 수 있습니다. 프로젝트 디렉터리의 파일에 민감한 정보를 포함하는 경우에는 주의해야 합니다.
함수 및 프로시저 오브젝트 속성¶
다음 테이블에서는 함수와 프로시저에서 사용하는 속성을 설명합니다.
속성  | 
정의  | 
|---|---|
식별자 선택 사항, 문자열  | 
엔터티에 대한 선택적 Snowflake 식별자입니다. 값은 다음 형식일 수 있습니다. 
  | 
유형 선택 사항, 문자열  | 
반드시   | 
artifact_repository 선택 사항, 문자열  | 
아티팩트 리포지토리의 이름입니다. Snowflake에는 Snowpark UDF 및 프로시저 내에서 PyPI 패키지를 연결하고 설치하는 데 사용하는  
 
 특정 아키텍처에 종속성이 있는 패키지의 경우 다음과 같이  test_function:
  type: "function"
  handler: "app.udf"
  identifier:
    name: "udf"
  stage: "dev_deployment"
  signature: ""
  returns: float
  artifact_repository: snowflake.snowpark.pypi_shared_repository
    - 'scikit-learn'
  artifacts:
    - "app.py"
  resource_constraint:
    architecture: 'x86'
자세한 내용은 x86 전용으로 빌드된 패키지 섹션을 참조하십시오.  | 
artifact_repository_packages 선택 사항, 문자열  | 
참고 이 속성은   | 
packages 선택 사항, 문자열  | 
artifact_repository에서 설치할 패키지의 목록입니다. 예: artifact_repository: snowflake.snowpark.pypi_shared_repository
packages:
  - Faker
  - rich
  - pytest
 | 
아티팩트 필수, 문자열 시퀀스  | 
배포 루트에 추가할 파일 소스 및 대상 쌍 목록입니다. 다음 아티팩트 속성을 사용할 수 있습니다. 
 
 
  | 
핸들러 필수, 문자열  | 
  | 
반환 필수, 문자열  | 
결과의 SQL 유형입니다. 사용 가능한 유형 의 목록 확인합니다.  | 
서명 필수, 시퀀스  | 
 signature:
  - name: "first_argument"
    type: int
  - name: "second_argument"
    default: "default value"
    type: string
함수나 프로시저에 인자를 받지 않는 경우 이 값을 빈 문자열( 사용 가능한 유형 열의 SQL 유형 을 확인합니다. 명명된 인자와 선택적 인자의 구문에 대해 자세히 알아보려면 선택적 인자가 있는 UDF 호출하기 섹션을 참조하십시오.  | 
런타임 선택 사항, 문자열  | 
프로시저나 함수를 실행할 때 사용할 Python 버전입니다. 기본값: “3.9”.  | 
external_access_integrations 선택 사항, 문자열 시퀀스  | 
이 절차의 핸들러 코드가 외부 네트워크에 액세스하는 데 필요한 외부 액세스 통합 의 이름입니다. 자세한 내용은 CREATE PROCEDURE 의 EXTERNAL_ACCESS_INTEGRATIONS 매개 변수 를 참조하십시오.  | 
시크릿 선택 사항, 사전  | 
처리기 코드의 시크릿에서 정보를 검색할 때 변수를 사용하여 시크릿을 참조할 수 있도록 시크릿 이름을 변수에 할당합니다. 자세한 내용은 CREATE PROCEDURE의 SECRETS 매개 변수 섹션을 참조하세요.  | 
가져오기 선택 사항, 문자열 시퀀스  | 
가져올 이전에 업로드한 파일의 스테이지와 경로입니다. 자세한 내용은 CREATE PROCEDURE의 IMPORT 매개 변수 섹션을 참조하세요.  | 
execute_as_caller 선택 사항, bool  | 
프로시저에만 사용 가능 프로시저가 소유자(사용자)의 권한으로 실행되는지, 아니면 호출자의 권한으로 실행되는지 확인합니다. 기본값: False(소유자 권한).  |