인라인 코드를 사용하여 함수 워크로드 작성
인라인 코드를 사용하여 함수를 작성할 수 있습니다. 코드는 함수와 함께 저장됩니다. 콘솔에서 또는 CLI를 사용하여 이 유형의 기능을 작성할 수 있습니다.
코드 번들은 기능 코드를 나타내는 파일의 콜렉션입니다. 이 코드 번들은 런타임 컨테이너에 삽입됩니다. 코드 번들은 Code Engine 에 의해 작성되며 컨테이너 레지스트리에 저장되거나 함수와 함께 인라인으로 저장됩니다. 코드 번들은 OCI (Open Container Initiative) 표준 컨테이너 이미지가 아닙니다.
콘솔을 사용하여 인라인으로 함수 작성
콘솔에서 인라인 코드를 사용하여 함수를 작성하십시오.
- Code Engine 콘솔을 여십시오.
- '만들기 시작'을 선택하세요.
- 사용 가능한 프로젝트 목록에서 프로젝트를 선택하십시오. 프로젝트를 새로 작성할 수도 있습니다. 함수를 작성할 프로젝트를 선택해야 합니다.
- ‘함수’를 선택하세요.
- 함수 이름을 입력하세요. 예를 들어,
myfunction``과 같이 입력합니다. 프로젝트 내에서 고유한 함수 이름을 사용하십시오. - 함수 코드에 대한 런타임 이미지 를 선택하십시오. 자세한 정보는 런타임 을 참조하십시오.
- 코드를 인라인 코드 번들로 지정하세요 를 선택하세요. 이 옵션을 선택하면 선택된 런타임에 대한 샘플 코드 번들을 사용하여 함수가 작성됩니다. 함수가 작성된 후 샘플 코드를 편집할 수 있습니다. 코드 번들은 함수와 함께 인라인으로 저장됩니다.
- CPU및 메모리 조합 및 스케일 축소 지연 을 포함하여 자원 정보를 지정하십시오.
- 선택적으로 사용자 정의 도메인 또는 환경 변수 를 지정하십시오. 이러한 옵션은 나중에 추가할 수 있습니다.
- 작성을 클릭하십시오.
- 기능 상태가 ‘준비됨’으로 변경된 후, 해당 기능을 테스트할 수 있습니다. 기능 테스트 를 클릭한 후 요청 전송을 클릭하십시오. 웹 페이지에서 이 함수를 실행하려면 ‘함수’ URL 를 클릭하세요.
- 편집기 창에서 기능 코드를 변경할 수도 있습니다. 함수를 다시 배치하면 코드가 인라인으로 저장됩니다.
기능 테스트 를 클릭한 후 요청 전송을 클릭하여 기능을 호출할 수 있습니다.
--save 옵션과 함께 function get 명령을 실행하여 인라인 함수를 작성하는 데 사용된 코드를 검색할 수 있습니다. 예: ibmcloud ce function get --name myfunction --save hellofun2.js.
CLI를 사용하여 인라인 코드로 함수 작성
ibmcloud ce function create 명령을 사용하여 CLI에서 인라인 코드로 함수를 작성하십시오. 옵션의 전체 목록을 보려면 ibmcloud ce function create 명령을
참조하십시오.
시작하기 전에
- Code Engine CLI 환경을 설정하십시오.
- 프로젝트를 작성하고 작업하십시오.
이 예제에서는 main.js 라는 코드 파일을 사용합니다. 다음 예제 코드를 사용하여 main.js 파일을 작성하거나 자체 코드를 대체할 수 있습니다.
/**
* The `main` function is the entry-point into the function.
* It has one optional argument, which carries all the
* parameters the function was invoked with.
*/
async function main(params) {
// log environment variables available to the function
console.log(process.env);
// log Code Engine system headers available to the function
console.log(params.__ce_headers);
// log all parameters for debugging purposes
console.log("params: "+params);
// since functions are invoked through http(s), we return an HTTP response
return {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: params };
}
// this step is necessary, if you gave your main function a different name
// we include it here for documentation purposes only
module.exports.main = main;
함수를 작성하고 명령에 코드를 포함하십시오. 예를 들어, ibmcloud ce function create 명령을 사용하여 myhellofun 함수를 작성하십시오.
ibmcloud ce fn create --name myhellofun --inline-code main.js --runtime nodejs
출력 예
Creating function 'myhellofun'...
OK
Run 'ibmcloud ce function get -n myhellofun' to see more details.
https://myhellofun.glxo4kabcde.us-south.codeengine.appdomain.cloud
--save 옵션과 함께 function get 명령을 실행하여 인라인 함수를 작성하는 데 사용된 코드를 저장할 수 있습니다. 예: ibmcloud ce function get --name myhellofun --save hellofun2.js.
다음 단계
-
URL 함수가 생성된 후 콘솔에서 함수 테스트를 클릭하거나
function get명령. -
사용자 정의 도메인 맵핑 을 작성하고 이를 함수에 지정할 수 있습니다.
-
기능을 작성하고 배치한 후에는 콘솔에서 또는
ibmcloud ce function update명령을 사용하여 필요에 맞게 기능을 업데이트할 수 있습니다.--build-source함수와 함께 사용할 소스를 업데이트하려면,function update명령에 xml-ph-0000@deepl.internal 옵션을 지정해야 합니다.
함수를 생성한 후에는, 해당 함수를 생성하거나 이전에 업데이트한 방식과 관계없이 다음 방법 중 하나를 사용하여 함수와 그 함수가 참조하는 코드를 업데이트할 수 있습니다:
-
기존 코드 번들이 있는 경우 앱을 배치할 때 컨테이너 레지스트리의 위치를 가리키는 이미지에 대한 참조만 제공해야 합니다. 자세한 정보는 기존 코드 번들에서 함수 워크로드 작성 을 참조하십시오.
function create명령을 사용하여 함수를 작성하고 로컬 또는 저장소 소스에서 코드 번들을 빌드하기 위해--build-source옵션을 지정한 경우 다른 코드 번들을 가리키도록 함수를 변경하려면 먼저 함수에서 빌드의 연관을 제거해야 합니다. 예를 들어,ibmcloud ce function update -n FUN_NAME --build-clear를 실행하십시오. 함수에서 빌드의 연관을 제거한 후 다른 이미지를 참조하도록 함수를 업데이트할 수 있습니다. -
Git 저장소에 있는 소스 코드로 시작하는 경우, Code Engine 을 통해 소스 코드를 기반으로 코드 번들을 빌드하고 단 한 번의 작업으로 함수를 생성하도록 설정할 수 있습니다. 이 시나리오에서 Code Engine 은 사용자의 코드 번들을 IBM Cloud® Container Registry 에 업로드합니다. 자세한 정보는 저장소 소스 코드에서 함수 작성 을 참조하십시오.
-
로컬 워크스테이션에 상주하는 소스 코드로 시작하는 경우, Code Engine 에 대해 선택하여 소스에서 코드 번들을 빌드하고 단일 CLI 명령으로 함수를 작성할 수 있습니다. 이 시나리오에서 Code Engine 는 소스 코드 및 코드 번들을 IBM Cloud® Container Registry에 업로드합니다.
예를 들어, 해당 함수에 대한 소스 코드를 계속 개발해 나가는 동안 Code Engine 명령어를 사용하여 로컬 소스 코드를 빌드하도록 선택할 수 있습니다. 그런 다음 코드 번들이 성숙되면 원하는 특정 코드 번들을 참조하도록 함수를 업데이트할 수 있습니다. 이 프로세스는 필요에 따라 반복할 수 있습니다.
더 많은 코드 예를 찾고 계십니까? IBM Cloud Code Engine GitHub 저장소의 예제를 확인해 보세요.