5단계: Snowflake에서 Azure용 외부 함수 만들기
5단계: Snowflake에서 Azure용 외부 함수 만들기
이 문서는 원격 서비스(예: 원격 서비스가 받아들이는 파라미터)에 대한 정보를 저장하는 외부 함수 객체를 Snowflake에 만드는 방법을 설명해요. Azure Portal을 쓰든 ARM 템플릿을 쓰든 지침은 동일해요.
본문
이 주제는 Snowflake에서 외부 함수 객체를 만드는 방법을 설명해요. 이 객체는 원격 서비스에 대한 정보(예: 원격 서비스가 받아들이는 파라미터)를 저장해요. 지침은 Azure Portal을 사용하든 ARM 템플릿을 사용하든 동일해요.
주의
Snowflake의 외부 함수는 데이터베이스 객체예요. 즉, 데이터베이스 안의 스키마에 만들어야 해요. 외부 함수를 만들려면 함수를 만드는 데이터베이스와 스키마에 적절한 권한이 있어야 해요.
자세한 내용은 Access control privileges를 참고해요.
이전 단계
4단계: Portal에서 Azure용 API 통합을 프록시 서비스에 연결하기
외부 함수 만들기
이 작업은 Snowsight의 Worksheets 페이지에 있다고 가정해요.
- CREATE EXTERNAL FUNCTION 문을 입력해요. 문장은 다음처럼 보여야 해요:
create or replace external function external_function_name(parameters)
returns variant
api_integration = api_integration_name
as '';
-
external_function_name을 고유한 함수 이름(예:echo)으로 바꿔요. 이 이름은 객체 식별자(Object identifiers) 규칙을 따라야 해요. 또한 함수 이름을 추적 워크시트의External Function Name필드에 기록해요. -
parameters에 함수의 파라미터 이름과 SQL 데이터 타입(있는 경우)을 넣어요. 파라미터는 원격 서비스가 기대하는 파라미터와 대응해야 해요. 파라미터 이름은 일치할 필요가 없지만 데이터 타입은 호환되어야 해요.Azure Function이 1단계에서 제공된 샘플 JavaScript 코드를 사용한다면 파라미터는 INTEGER와 VARCHAR예요. 예를 들어:
a integer, b varchar
또한 파라미터 이름과 데이터 타입을 추적 워크시트의 External Function Name 필드에 기록해요.
-
api_integration을 추적 워크시트의API Integration Name필드 값으로 바꿔요. -
as ''의''을 적절한 URL로 바꿔요. 이 URL은 Snowflake가 원격 서비스를 호출하기 위해 HTTP POST 명령을 보내는 대상이며 다음 형식이에요:
https://.azure-api.net//
사용하는 URL은 외부 함수를 만들 때 Azure Portal을 쓰는지 ARM 템플릿을 쓰는지에 따라 달라져요.
-
Azure Portal: 추적 워크시트의
API Management service name,API Management API URL suffix,HTTP-Triggered Function name필드 값을 사용해요. 예를 들어 URL은 다음처럼 보여야 해요:https://my-api-management-svc.azure-api.net/my-api-url-suffix/my_http_function -
ARM 템플릿: 추적 워크시트의
Azure Function HTTP Trigger URL필드 값을 사용해요. -
아직 실행하지 않았다면, 입력한 CREATE EXTERNAL FUNCTION 명령을 실행해요.
외부 함수 테스트하기
이제 외부 함수를 호출해서 제대로 동작하는지 확인할 수 있어야 해요.
자세한 내용은 Azure용 외부 함수 호출하기를 참고해요.
다음 단계
- Azure Portal: Portal에서 프록시 서비스용 Azure 보안 정책 만들기 (6단계)
- ARM 템플릿: Portal에서 프록시 서비스용 Azure 보안 정책 업데이트하기 (6단계)