본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

Marketplace 제품에 Function 추가 [베타]

Foundry DevOps를 사용하여 Function을 Marketplace 제품에 포함시켜 다른 사용자가 설치하고 재사용할 수 있게 합니다. 첫 번째 제품을 생성하는 방법을 알아보세요.

지원되는 기능

DevOps는 Function 설치 및 재사용을 위해 패키지화하지만, Function의 소스 코드를 사용자가 볼 수 있게 제공하지 않습니다. 이는 설치 후 Function을 사용할 수 있지만 Function의 소스 로직을 볼 수 없음을 의미하며, Function을 동반하는 저장소는 비어 있을 것입니다. 모델 배포 입력값이 있는 Function은 곧 출시 예정입니다.

제품에 Function 추가하기

제품에 Function을 추가하려면 먼저 제품을 생성한 다음 아래와 같이 Function 콘텐츠 유형을 선택합니다.

Function 추가

그런 다음 Function과 버전을 선택하도록 요청받게 됩니다. 대부분의 경우, Function의 최신 버전을 선택해야 합니다.

Function 추가

Function을 직접 선택할 수 있지만, 먼저 Workshop 애플리케이션과 같은 콘텐츠를 추가하고, 그 다음 아래와 같이 의존성 패널을 통해 관련 Function을 선택하는 것을 권장합니다.

패널을 통한 Function 추가

설치 시 Function 재정의

설치 시간에 로컬로 정의된 Function을 제공하여 Function의 일부 동작을 수정할 수 있습니다. 이를 위해 @Static 데코레이터를 사용하여 특정 Function이 재정의될 수 있음을 지정할 수 있습니다.

예를 들어, 주어진 숫자를 부정하는 Function을 생각해보세요:

// 일반 함수

import { Function, Double } from "@foundry/functions-api";

export class MyFunctions {

    @Function()
    // 숫자를 수정하는 함수
    public async modifyNumber(d: Double): Promise<Double> {
        return -d;
    }

}

이 Function을 오버라이드 가능하게 하려면 다음과 같이 다시 작성하세요:

// Overridable Function

import { Function, Static, Double } from "@foundry/functions-api";

export class MyFunctions {

    @Function()
    // modifyNumberByStaticFoo는 두 개의 매개변수를 받습니다: n과 staticFunctionInput입니다.
    // n은 Double 타입이며, staticFunctionInput은 함수 타입입니다.
    // staticFunctionInput 함수는 Double 타입의 숫자를 매개변수로 받아 Promise<Double>를 반환합니다.
    // staticFunctionInput 함수의 기본값은 this.defaultFoo 함수입니다.
    public async modifyNumberByStaticFoo(
        n: Double, 
        @Static() staticFunctionInput: (num: Double) => Promise<Double> = this.defaultFoo
        ): Promise<Double> {
        // staticFunctionInput 함수를 호출하고 그 결과를 반환합니다.
        return await staticFunctionInput(n);
    }

    // defaultFoo는 숫자 n을 매개변수로 받아 그 숫자의 음수를 반환하는 함수입니다.
    private async defaultFoo(n: number) {
        return -n;
    }

}

정적 함수를 패키징할 때 입력값은 설치 중에 아래와 같이 staticFunctionInputs로 표시됩니다. 그런 다음 설치자는 기본 동작을 재정의할 수 있는 함수 로직을 제공할 수 있습니다. 개념적으로, staticFunctionInputs는 재정의 가능한 함수에 대한 함수 입력 파라미터 역할을 합니다.

함수 재정의

예를 들어, 공급망 최적화 Function의 로직이 다른 맥락에서 약간의 조정이 필요할 수 있습니다. 이를 허용하려면 패키징하기 전에 Function을 재정의할 수 있게 지정한 다음 설치 중에 재정의하십시오.