Code Engine으로 텍스트 분석
이 튜토리얼에서는 비용이 발생할 수 있습니다. Cost Estimator를 사용하여 예상 사용량을 기반으로 비용 추정값을 생성하십시오.
이 튜토리얼에서는 IBM Cloud® Code Engine 애플리케이션으로 텍스트 분석을 배치하여 Natural Language Understanding에 대해 학습합니다. Code Engine 프로젝트를 작성하고, 프로젝트를 선택하고, Code Engine 엔티티(애플리케이션 및 작업)를 프로젝트에 배치합니다. IBM Cloud 서비스를 Code Engine 엔티티에 바인드하는 방법을 학습합니다. 또한, 인스턴스가 들어오는 작업량에 따라 확장되거나 축소(0으로)되는 Code Engine 자동 확장 기능도 이해할 수 있습니다.
IBM Cloud Code Engine 웹 앱, 마이크로 서비스, 이벤트 기반 기능, 배치 작업 등 컨테이너화된 작업 부하를 실행하는 완전 관리형 서버리스 플랫폼입니다. Code Engine 소스 코드에서 컨테이너 이미지를 구축합니다. 이러한 워크로드는 모두 동일한 Kubernetes 인프라 내에서 호스팅되므로 모두 원활하게 함께 작동할 수 있습니다. Code Engine 환경은 호스팅하는 데 필요한 인프라가 아닌 코드 작성에 집중할 수 있도록 설계되었습니다.
이 플랫폼은 코드 실행만을 원하는 개발자의 요구를 해결하기 위해 설계되었습니다. Code Engine은(는) 개발자가 가장 중요한 항목인 소스 코드에만 집중할 수 있도록 Kubernetes에서 워크로드를 빌드하고, 배치하고, 관리하는 운영 부담을 덜어줍니다.
목표
- IBM Cloud® Code Engine을 이해하고 개발자 경험을 단순화하는 방법을 이해합니다.
- Code Engine을 사용하여 애플리케이션을 배치하고 확장하는 것이 얼마나 쉬운 지 이해합니다.
- 작업을 사용하여 워크로드를 완료하는 방법에 대해 알아봅니다.
- 개발자는 Code Engine 프로젝트를 작성하고 프론트 엔드 및 백엔드 Code Engine 애플리케이션을 배치합니다.
- 개발자는 프론트 엔드 애플리케이션을 수정하여 프론트 엔드(UI) 앱을 백엔드에 연결하여 백엔드 애플리케이션의 엔드포인트를 가리키도록 환경 변수 값을 설정합니다.
- 개발자는 필요한 클라우드 서비스를 프로비저닝하고 시크릿 및 구성 맵을 작성하여 백엔드 애플리케이션 및 작업에 바인딩합니다.
- 사용자는 백엔드 애플리케이션을 통해 Object Storage에 저장된 프론트 엔드 앱을 통해 텍스트 파일을 업로드합니다.
- 사용자는 백엔드를 통해 Code Engine 작업을 실행하여 텍스트를 Natural Language Understanding에 푸시함으로써 텍스트를 분석합니다. 결과가 Object Storage에 저장되고 사용자가 새로 고치기 단추를 클릭하면 프론트 엔드 앱에 표시됩니다.
Code Engine 콘솔 을 사용하여 이 학습서를 통해 작업하는 동안 진행상태를 볼 수 있습니다.
시작하기 전에
이 튜토리얼에는 다음 항목이 필요합니다.
- IBM Cloud CLI - 이 CLI 도구를 사용하여 IBM Cloud와 상호작용할 수 있습니다.
- code-engine/ce 플러그인(
code-engine/ce) - 플러그인은 서비스에 특정한 명령을 사용하여 IBM Cloud CLI의 기능을 확장합니다. Code Engine 플러그인은 Code Engine의 IBM Cloud 명령에 대한 액세스를 제공합니다. - 선택사항 Container Registry 플러그인(
container-registry)
- code-engine/ce 플러그인(
사용자 환경에 맞는 도구를 다운로드하고 설치하는 방법은 튜토리얼 시작하기 가이드 에서 확인할 수 있습니다. 이러한 도구가 설치되지 않도록 하기 위해 이 튜토리얼에서는 IBM Cloud 콘솔에서 Cloud Shell 를 사용합니다.
새 IBM Cloud Shell 시작
브라우저의 IBM Cloud 콘솔에서 오른쪽 상단에 있는 단추를 클릭하여 새 Cloud Shell를 작성하십시오.
IBM Cloud Code Engine 프로젝트 작성
이 절에서는 Code Engine 프로젝트를 작성합니다. 프로젝트는 애플리케이션, 작업 및 빌드와 같은 Code Engine 엔티티의 그룹입니다. 프로젝트는 리소스를 관리하고 해당 엔티티에 대한 액세스를 제공하는 데 사용됩니다.
엔티티를 단일 프로젝트에 배치하면 액세스 제어를 보다 쉽게 관리할 수 있습니다. 프로젝트 내의 엔티티는 동일한 사설 네트워크를 공유하므로 서로 안전하게 상호작용할 수 있습니다. 자세한 정보는 Code Engine 프로젝트에 대한 문서 를 참조하십시오.
-
IBM Cloud Code Engine 개요 페이지로 이동하십시오.
-
왼쪽 창에서 프로젝트를 클릭한 다음, 만들기를 클릭합니다.
- 위치를 선택하십시오.
- 프로젝트 이름을 제공하십시오.
- 프로젝트를 만들 리소스 그룹과 이후 단계에서 필요한 클라우드 서비스를 선택합니다. 리소스 그룹은 계정 리소스를 사용자 정의 가능한 그룹으로 구성하는 방법입니다.
- 작성을 클릭하십시오.
- 프로젝트
status가 활성으로 변경될 때까지 기다리십시오.
-
이전에 시작한 Cloud Shell 세션으로 전환하고 CLI 명령을 실행하도록 요청되면 이 튜토리얼에서 이를 사용하십시오.
-
프로젝트 이름 및 자원 그룹 이름으로 쉘 변수를 작성하십시오.
PROJECT_NAME=YourProjectName RESOURCE_GROUP_NAME=YourResourceGroupName -
프로젝트를 작성한 리소스 그룹을 대상으로 지정하십시오.
ibmcloud target -g $RESOURCE_GROUP_NAME -
명령행 도구가 프로젝트를 선택 하여 프로젝트를 가리키도록 하십시오.
ibmcloud code-engine project select --name $PROJECT_NAME
프론트 엔드 및 백엔드 앱을 Code Engine 애플리케이션으로 배치
Code Engine 애플리케이션은 코드를 실행하여 HTTP 요청을 처리하고, 자동으로 확장 및 축소하여 0으로 되돌리고, 여러 개정판에 대한 트래픽 라우팅을 제공합니다. 이 섹션에서는 프론트엔드와 백엔드 애플리케이션을 Code Engine 에 배포합니다. 프론트엔드 웹 애플리케이션을 사용하면 텍스트 파일을 업로드할 수 있고, 백엔드 애플리케이션을 사용하면 IBM Cloud Object Storage 에 파일을 작성할 수 있습니다.
이미 두 애플리케이션에 대한 이미지를 빌드하여 공용 Container Registry에 푸시했습니다. 이러한 사전 빌드된 컨테이너 이미지를 사용하여 각 애플리케이션을 배치합니다. 사용자 고유의 애플리케이션 작성은 이후 단계에서 다룹니다.
프론트 엔드 애플리케이션 배치
-
새 Code Engine 애플리케이션을 배치하려면 서비스 이름
frontend및 사전 빌드된 컨테이너 이미지를--image플래그에 대한 매개변수로 제공하여 다음 명령을 실행하십시오.ibmcloud code-engine application create --name frontend --image icr.io/solution-tutorials/tutorial-text-analysis-code-engine-frontend이 명령을 실행한 후에는 프로그램에 대한 URL이 포함된 일부 출력이 표시됩니다.
https://frontend.305atabsd0w.us-south.codeengine.appdomain.cloud와 같아야 합니다. 다음 단계를 위해 이 애플리케이션 URL 복사하거나 메모해 두십시오. 이 두 가지 데이터(애플리케이션 이름과 이미지 이름)만 있으면 Code Engine 여러분의 애플리케이션을 배포하고, 복잡한 구성과 관리를 대신 처리해 줍니다.컨테이너 이미지를 구축하는 데 사용된 애플리케이션 소스 코드는 GitHub 참조할 수 있습니다. 소스 코드에서 컨테이너 이미지를 빌드하고 이미지를 개인용 컨테이너 레지스트리에 푸시하려면 여기에 있는 지시사항을 따르십시오.
-
이전 단계에서 브라우저에서 URL 열면 다음과 같은 화면이 표시됩니다
프론트 엔드가 실행 중임 ibmcloud code-engine application get -n frontend명령을 실행하여 애플리케이션의 세부사항을 보십시오. ID, 프로젝트 정보, 애플리케이션 사용 기간, 애플리케이션에 액세스하기 위한 URL, 애플리케이션 구성에 액세스하기 위한 콘솔 URL, 이미지, 리소스 할당, 애플리케이션에 대한 다양한 개정, 조건 및 런타임과 같은 세부사항이 표시되어야 합니다. 개정이 하나뿐이므로 트래픽의 100%가 최신 개정으로 이동하는 것을 볼 수 있습니다. 인스턴스 수와 상태를 확인할 수도 있습니다. -
문제 해결 및 응용 프로그램 로그 확인을 위해 다음 명령을 실행하십시오. 여기서
<INSTANCE_NAME>를ibmcloud code-engine application get -n frontend명령의 인스턴스 이름 중 하나로 바꾸십시오.실행 중인 인스턴스가 보이지 않는다면, 2단계에서 URL 다시 열어 보십시오.
ibmcloud code-engine application logs --instance <INSTANCE_NAME>애플리케이션이 실행 중인 경우,
backend URL: undefined및 App listening on port 8080이 표시되어야 합니다. 이 튜토리얼의 뒷부분에서 이 프론트 엔드 애플리케이션을 해당 백엔드 애플리케이션에 연결합니다.
축하합니다!! 간단한 명령을 사용하고 팟(Pod), 배치, 서비스 및 수신과 같은 Kubernetes의 복잡성에 대해 알지 않고도 웹 애플리케이션을 Code Engine에 방금 배치했습니다.
애플리케이션 스케일링
application create 명령을 사용하여 애플리케이션을 작성할 때, 사용할 이미지와 애플리케이션 이름만 전달했습니다. 이 정도 정보가 있어야 앱을 배포할 수 있지만, 그 외에도 여러 가지 설정을 조정할 수 있습니다. 특히 인스턴스당 동시에 처리할 수 있는 요청 수, 애플리케이션 인스턴스의 CPU
양, 애플리케이션 인스턴스에 설정된 메모리 양, 애플리케이션의 환경 변수, 이 애플리케이션에 사용할 수 있는 최대 및 최소 인스턴스 수 및 애플리케이션이 요청을 수신하는 포트를 설정할 수 있습니다.
애플리케이션을 작성할 때 옵션으로 제공되지 않는 경우 이러한 값의 대부분은 기본 설정을 갖습니다. 값을 제공하지 않았기 때문에 Code Engine은 기본 최대 배율 10으로 애플리케이션을 배치했습니다. 기본 최소 배율은 0이므로 애플리케이션을 더 이상 사용하지 않을 때 다시 0으로 축소됩니다.
-
Code Engine 자동 확장 기능을 확인하기 위해, 로드 생성기를 사용하여 서비스에 대한 요청을 수행할 수 있습니다. 다음 쉘 스크립트는 3000요청의 기본 로드를 시뮬레이션합니다.
-
로컬 터미널 창 (쉘) 을 여십시오.
-
위 단계에서 프런트엔드 URL 대한 셸 변수를 만듭니다.
export APPURL=<frontend-application-url> -
다음 스크립트를 실행하여 일부 로드를 생성하십시오. 이를 반복하여 더 많은 트래픽을 작성할 수 있습니다.
seq 1 3000 | xargs -n1 -P300 curl -s $APPURL -o /dev/null
-
-
이전 섹션의 Cloud Shell 세션에서 아래 명령을 실행하여 자동 스케일링의 일부로 증분되는 인스턴스 (팟 (Pod) 수를 확인하십시오.
ibmcloud code-engine application get -n frontend기본적으로 인스턴스당 동시에 처리할 수 있는 최대 요청 수는 자동 확장으로 이어지는
10개이며 이 값은--concurrency or -cn명령과 함께application update을 사용하여 변경할 수 있습니다. -
최대 10개의 인스턴스 작성을 허용하지 않으려면 최대 배율을 더 낮은 숫자로 조정할 수 있습니다. 서버리스 애플리케이션은 쉽게 확장할 수 있지만 제한된 수의 연결만 처리할 수 있는 SQL DB 또는 다른 속도 제한 API와 같은 다운스트림 서비스에 의존할 수 있습니다. 이 프론트 엔드 애플리케이션의 인스턴스 수를 제한해 보겠습니다.
ibmcloud code-engine application update --name frontend --max-scale 5 -
로드 생성이 중지되면 인스턴스가 종료되고 결국 0개 인스턴스로 축소될 때까지 몇 분 동안 기다리십시오.
-
로드 생성기 명령이 있는 로컬 창에서 스크립트를 다시 실행하여 앱에 대한 요청을 작성하십시오. Cloud Shell,
ibmcloud code-engine application get -n frontend명령을 실행하여 인스턴스 수가 5로 증가하는 것을 확인합니다.예상 출력:
Name Revision Running Status Restarts Age frontend-00002-deployment-77d5fbfb5d-7zpfl frontend-00002 3/3 Running 0 70s frontend-00002-deployment-77d5fbfb5d-kv6rn frontend-00002 3/3 Running 0 69s frontend-00002-deployment-77d5fbfb5d-mhlwn frontend-00002 3/3 Running 0 68s frontend-00002-deployment-77d5fbfb5d-qkjmd frontend-00002 3/3 Running 0 67s frontend-00002-deployment-77d5fbfb5d-zpr9n frontend-00002 3/3 Running 0 85s
백엔드 애플리케이션 배치 및 연결 테스트
-
텍스트 파일을 IBM Cloud Object Storage에 저장할 새 백엔드 애플리케이션을 배치하려면 다음 명령을 실행하십시오.
ibmcloud code-engine application create --name backend --image icr.io/solution-tutorials/tutorial-text-analysis-code-engine-backend --cluster-local--cluster-local플래그는 Code Engine 이 애플리케이션의 엔드포인트를 비공개로 유지하도록 지시합니다. 즉, 프로젝트 내에서만 사용할 수 있다는 의미입니다. 이는 종종 보안 목적으로 사용됩니다. 이 경우 클러스터 외부에서 액세스할 수 없으므로 공개 엔드포인트를 사용하여 백엔드 애플리케이션을 노출할 이유가 없습니다. -
다음 명령에서 사용할 내부 엔드포인트 URL 출력에서 복사하여 저장하십시오. 이는 다음과 같습니다.
BACKEND_PRIVATE_URL=http://backend.xxxxxxibmcloud code-engine application get -n backend명령을 실행하여 URL 포함하는 백엔드 애플리케이션의 상태와 세부 사항을 확인할 수 있습니다. -
프론트 엔드 애플리케이션은 환경 변수(BACKEND_URL)를 사용하여 백엔드 애플리케이션이 호스팅되는 위치를 파악합니다. 이제 이 값이 백엔드 애플리케이션의 엔드포인트를 가리키도록 설정하기 위해 프론트 엔드 애플리케이션을 업데이트해야 합니다.
ibmcloud code-engine application update --name frontend --env BACKEND_URL=$BACKEND_PRIVATE_URL--env플래그는 둘 이상의 환경 변수를 설정해야 하는 경우 원하는 만큼 여러 번 나타날 수 있습니다. 이 옵션은 해당 값을 알고 있는 경우 프론트 엔드 애플리케이션에 대한ibmcloud code-engine application create명령에서도 사용할 수 있습니다. 환경 변수에 대한 작업 문서 주제를 읽어 자세히 학습하십시오. -
백엔드 애플리케이션에 대한 연결을 테스트하려면 브라우저에서 프론트 엔드 URL을 하드 새로 고침하십시오. 백엔드가 텍스트 파일을 저장하고 처리하는 데 필요한 IBM Cloud 서비스에 아직 연결되어 있지 않기 때문에 텍스트 파일(.txt) 업로드 옵션이 있는 페이지와 백엔드 애플리케이션의 오류 메시지가 표시되어야 합니다. 텍스트 파일 업로드를 클릭해도 유사한 오류 메시지가 표시됩니다.
백엔드 애플리케이션을 Object Storage 서비스에 연결
이 절에서는 필요한 Object Storage 및 Natural Language Understanding 서비스를 프로비저닝하고 Object Storage 서비스를 백엔드 애플리케이션에 바인딩합니다. 백엔드 애플리케이션은 텍스트 파일을 Object Storage에 저장하는 반면 Natural Language Understanding은 튜토리얼의 뒷부분에서 업로드된 텍스트 파일에 대한 텍스트 분석을 수행하는 데 사용됩니다.
개발자가 IBM Watson® Natural Language Understanding을 사용하여 카테고리, 개념, 감정, 엔티티, 키워드, 메타데이터, 관계, 시맨틱 역할 및 감성을 포함하는 텍스트 입력의 시맨틱 기능을 분석할 수 있습니다.
Object Storage 및 Natural Language Understanding 서비스 프로비저닝
-
Object Storage 의 인스턴스 작성
- 계정에 이미 Object Storage 서비스 인스턴스가 있으면 Lite 플랜 또는 Standard 플랜을 선택하십시오.
- 서비스 이름 을 your-initials-code-engine-cos 로 설정하십시오.
- Code Engine 프로젝트를 작성한 리소스 그룹을 선택하십시오.
- 작성을 클릭하십시오.
- 쉘 변수에서 서비스 이름을 캡처하십시오.
COS_INSTANCE_NAME=your-initials-code-engine-cos
-
버킷 작성 아래에서 버킷 작성을 클릭한 후 사용자 정의 버킷 작성 아래에서 작성을 선택하십시오.
버킷을 만들거나 개체를 추가할 때 개인 식별 정보(PII)의 사용을 피해야 합니다. 참고: PII는 이름, 위치 또는 기타 수단을 통해 사용자를 식별할 수 있는 정보입니다.
- 고유 버킷 이름 (예:
<your-initials>-bucket-code-engine) 을 입력하십시오. - Code Engine 생성한 위치를 선택합니다.
- 스마트 티어 스토리지 클래스를 선택하십시오.
- 버킷 작성을 클릭하십시오.
- 쉘 변수에서 버킷 이름을 캡처하십시오.
COS_BUCKETNAME=your-initials-bucket-code-engine
- 고유 버킷 이름 (예:
-
버킷 페이지에서.
- 구성 탭을 클릭하세요
- 직접 엔드포인트는 IBM Cloud내에 데이터를 보존합니다. 쉘 변수에서 직접 엔드포인트를 캡처하십시오. 미국 남부 댈러스 지역에서는 그럴 수 있습니다:
COS_ENDPOINT=s3.direct.us-south.cloud-object-storage.appdomain.cloud
-
Natural Language Understanding 의 인스턴스 작성
- 위치를 선택하고 라이트 플랜을 선택합니다.
- 서비스 이름을 code-engine-nlu로 설정하고 Code Engine 프로젝트를 작성한 리소스 그룹을 선택하십시오.
- 라이센스 계약을 읽은 후 다음 라이센스 계약을 읽고 동의합니다. 를 확인하십시오.
- 작성을 클릭하십시오.
- 쉘 변수에서 서비스 이름을 캡처하십시오.
NLU_INSTANCE_NAME=YourServiceName
Object Storage 서비스를 백엔드 애플리케이션에 바인드하십시오.
이제 방금 작성한 IBM Cloud Object Storage 인스턴스의 인증 정보를 백엔드 애플리케이션에 전달해야 합니다. 구속력 이 작업을 수행하려면 애플리케이션에 Object Storage 서비스를 추가하면 됩니다. 그러면 애플리케이션 또는 작업의 환경 변수에 서비스에 대한 자격 증명이 자동으로 추가됩니다.
-
애플리케이션에서 쉽게 사용할 수 있도록 접두사
COS를 사용하여 Object Storage 서비스에 대한 바인딩을 작성하십시오. bind 명령은 서비스 인스턴스에서 서비스 신임 정보를 작성하고 이로부터 신임 정보를 사용하여 애플리케이션의 환경 변수를 초기화합니다. _--prefix플래그를 사용하여 각 서비스 바인딩을 사용자 정의 환경 변수 접두사를 사용하도록 구성할 수 있습니다._ibmcloud code-engine application bind --name backend --service-instance $COS_INSTANCE_NAME --role Writer --prefix COS -
또한 텍스트 파일을 저장할 버킷 이름과 COS 엔드포인트를 애플리케이션에 제공해야 합니다. 이 두 가지 모두 이전 단계에서 정의되었습니다. 스마트 티어 의 us-south에 대한 엔드포인트는 s3.direct.us-south.cloud-object-storage.appdomain.cloud 입니다.
정보가 민감하지 않으므로 버킷 이름과 엔드포인트를 담을 구성맵을 정의합니다. 구성 맵은 이미지 컨텐츠에서 구성 아티팩트를 분리하여 컨테이너화된 애플리케이션을 이식 가능한 상태로 유지할 수 있는 Kubernetes 오브젝트입니다. 파일 또는 키 값 쌍에서 이 구성 맵을 작성할 수 있습니다. 지금은
--from-literal플래그와 함께 키 값 쌍을 사용합니다. 이를 이전에 캡처했는지 확인하고 configmap을 작성하십시오.echo bucket $COS_BUCKETNAME endpoint $COS_ENDPOINTibmcloud code-engine configmap create --name backend-configuration --from-literal=COS_BUCKETNAME=$COS_BUCKETNAME --from-literal=COS_ENDPOINT=$COS_ENDPOINT -
구성 맵이 정의되면 이제 구성 맵의 값을 기반으로 애플리케이션의 런타임에서 환경 변수를 설정하도록 Code Engine에 요청하여 백엔드 애플리케이션을 업데이트할 수 있습니다. 다음 명령으로 백엔드 애플리케이션을 업데이트하십시오.
ibmcloud code-engine application update --name backend --env-from-configmap backend-configuration시크릿을 작성하려면
--env-from-secret플래그를 사용해야 합니다. 시크릿과 구성 맵은 모두 "맵"입니다. 따라서 환경 변수 세트는 해당 맵에 있는 각 항목의 "키"에 해당하는 이름을 가지며 환경 변수 값은 해당 "키"의 값이 됩니다. -
백엔드 애플리케이션이 바인딩 및 구성 맵으로 업데이트되었는지 확인하십시오. 아래 명령을 실행하고 출력에서
Service Bindings및Environment Variables섹션을 찾을 수 있습니다.ibmcloud code-engine application get --name backend -
프론트 엔드 UI로 이동하여 텍스트 분석을 위한 텍스트 파일을 업로드하십시오.
Not analyzed태그가 있는 업로드된 파일이 표시되어야 합니다.
자동화된 작업으로 텍스트 파일 처리
이제 백엔드 애플리케이션이 프론트 엔드 애플리케이션에 연결되었습니다. 서비스 바인딩을 통해 필요한 모든 인증 정보를 제공하고 텍스트 분석을 위해 파일을 업로드했습니다. 테스트를 완료하기 위해 Natural Language Understanding 서비스를 사용하여 텍스트를 분석하기 위한 작업이 실행될 때마다 사용되는 워크로드 구성 정보를 지정하는 작업을 작성합니다.
작업 작성
작업은 들어오는 HTTP 요청에 반응하는 애플리케이션과 달리, 한 번 실행한 다음 종료되도록 설계된 실행 파일이 포함된 컨테이너 이미지를 실행하는 데 사용됩니다. job을 작성할 때 작업이 실행될 때마다 사용되는 워크로드 구성 정보를 지정할 수 있습니다. 콘솔 또는 CLI를 사용하여 작업을 작성할 수
있습니다.
이 작업은 IBM Cloud Object Storage에서 텍스트 파일을 읽은 다음 Natural Language Understanding 서비스를 사용하여 분석합니다. 두 서비스에 대한 서비스 인증 정보에 대한 액세스 권한이 있어야 합니다.
- 다음 명령을 실행하여 작업을 생성합니다
ibmcloud code-engine job create --name backend-job --image icr.io/solution-tutorials/tutorial-text-analysis-code-engine-backend-job --env-from-configmap backend-configuration--env플래그를 사용하여 Natural Language Understanding 서비스 버전을 설정할 수 있습니다. 버전 관리는 이 링크를 확인하십시오.
IBM Cloud 서비스를 작업에 바인드
- 업로드된 파일을 읽고 결과를 저장하기 위해 작업에 사용할 접두사
COS_JOB이 있는 Object Storage 서비스에 대한 바인딩을 작성해 보겠습니다.ibmcloud code-engine job bind --name backend-job --service-instance $COS_INSTANCE_NAME --role Writer --prefix COS_JOB - 마찬가지로 업로드된 텍스트 파일을 분석하기 위해 접두사
NLU_JOB으로 Natural Language Understanding 서비스를 바인딩 해 보겠습니다.ibmcloud code-engine job bind --name backend-job --service-instance $NLU_INSTANCE_NAME --role Writer --prefix NLU_JOB - 작업이 바인딩 및 구성 맵으로 업데이트되었는지 확인하십시오. 아래 명령을 실행하고 출력에서
Service Bindings및Environment Variables섹션을 찾을 수 있습니다.ibmcloud code-engine job get --name backend-job
작업 실행
-
위에서 만든 구성으로 작업을 실행하려면,
jobrun submit명령을 사용하십시오ibmcloud code-engine jobrun submit --name backend-jobrun --job backend-job작업을 실행할 때 작업 구성에서 설정한 많은 변수를 대체할 수 있습니다. 변수를 확인하려면
ibmcloud code-engine jobrun submit --help를 실행하십시오. -
jobrun의 상태를 확인하려면 다음 명령을 실행하십시오.ibmcloud code-engine jobrun get --name backend-jobrun -
로그는 다음과 같이 표시될 수 있습니다.
ibmcloud code-engine jobrun logs --follow --name backend -
프론트 엔드 UI에서 텍스트 파일 업로드 옆에 있는 새로 고치기 단추를 클릭하여 업로드된 텍스트 파일 각각에 대한 키워드 및 JSON을 확인하십시오. 이제 각 파일의 태그가
Analyzed로 변경되어야 합니다. -
새 파일을 업로드하거나 삭제 아이콘을 클릭하여 개별 파일을 삭제하고, 아래 명령으로 jobrun을 다시 제출하고 새로 고치기 단추를 눌러 결과를 확인하십시오.
ibmcloud code-engine jobrun resubmit --jobrun backend-jobrun
작업 실행 자동화
작업을 수동으로 실행하는 대신 IBM Cloud Object Storage 버킷의 변경사항을 수신하는 Object Storage 구독을 작성하여 작업 실행을 자동화할 수 있습니다. 버킷에 대한 구독을 생성하면, 해당 버킷에 대한 변경이 성공할 때마다 작업에 별도의 이벤트가 발생합니다.
- Object Storage 구독을 작성하기 전에
Notifications Manager역할을 Code Engine에 지정해야 합니다. Code Engine은 알림 관리자로서 Object Storage 버킷에 대한 알림을 확인, 수정 및 삭제할 수 있습니다. 프로젝트에 지정하려면 여기의 지침을 따르십시오 Code Engine . - 아래 명령을 실행하여
backend-job을 IBM Cloud Object Storage 이벤트 생성자에 연결하십시오. 이 명령을 실행하기 전에bucket name을(를) 확인하고 업데이트하십시오.ibmcloud code-engine subscription cos create --name backend-job-cos-event --destination-type job --destination backend-job --bucket $COS_BUCKETNAME --prefix files --event-type write - 이제 새 파일을 업로드하고 새로 고치기 단추를 눌러 결과를 확인하십시오. 앞으로 jobrun은 구독에서 처리되므로 다시 제출할 필요가 없습니다.
선택사항: 컨테이너 이미지를 빌드하여 IBM Cloud Container Registry로 푸시
독립형 빌드 명령으로 컨테이너 이미지 빌드 에 대한 몇 가지 옵션이 있습니다. 로컬 디렉토리에서 소스를 가져오는 단일 빌드 실행 은 새 프론트 엔드 애플리케이션을 작성하는 데 사용됩니다.
git clone https://github.com/IBM-Cloud/code-engine-text-analysis
cd code-engine-text-analysis/frontend
echo $BACKEND_PRIVATE_URL
일부 소스 코드를 변경하여 확인할 수 있습니다. public/index.html 및 public/501.html 의 body 에 있는 Text analysis with Code Engine 의 두 번째 어커런스를 사용자 이름에 추가하도록 변경할 수 있습니다. 코드 엔진 네임스페이스에서 컨테이너 이미지를 작성하고 하나의 명령으로 애플리케이션을 작성하십시오.
ibmcloud ce application create --name frontend-fromsource --build-source . --env BACKEND_URL=$BACKEND_PRIVATE_URL
자원 제거
- 아래 명령어를 사용하여 프로젝트와 그 구성 요소(애플리케이션, 작업 등)를 모두 삭제합니다.
ibmcloud code-engine project delete --name $PROJECT_NAME - 리소스 목록으로 이동한 후 작성한 서비스를 삭제하십시오.
- IBM Cloud® Object Storage
- IBM Watson® Natural Language Understanding
리소스에 따라 즉시 삭제되지 않고 보유될 수 있습니다(기본 7일 동안). 리소스를 영구적으로 삭제하여 재확보하거나 보유 기간 내에 리소스를 복원할 수 있습니다. 리소스 재확보 사용 방법은 이 문서를 참조하십시오.