Nodejs OpenShift Do

improve this page | report issue

Mobile Foundation Nodejs odo 컴포넌트

odo(OpenShift Do)는 마이크로서비스를 빠르게 빌드하고 배치할 수 있도록 Red Hat에서 빌드된 개발자를 위한 CLI 도구입니다. odo에 대한 정보는 여기에서 읽을 수 있습니다.

Mobile Foundation Node.js odo 컴포넌트는 개발자가 모바일 앱을 위한 백엔드 또는 BFF(Backend for Frontend) 마이크로서비스를 빌드할 수 있도록 Node.js 환경을 제공합니다. 이 컴포넌트는 Mobile Foundation 서비스(예: 푸시 알림, Mobile Foundation Analytics 및 라이브 업데이트)를 이용할 수 있도록 사용하기 쉬운 API를 마이크로서비스 개발자에게 제공합니다. 예를 들어, 푸시 알림은 모바일 클라이언트에서 완료된 주문에 대한 고객의 구매 값을 기반으로 하여 Nodejs 백엔드에서 트리거될 수 있습니다.

odo 컴포넌트 사용을 위한 전제조건

  • oc CLI를 다운로드 및 설치하십시오.
  • odo CLI를 [설치]((https://odo.dev/docs/installing-odo/)하십시오.
  • Docker를 [설치]((https://docs.docker.com/get-started/)하십시오.

Mobile Foundation Nodejs odo Docker 이미지로 odo 프로젝트 작성

  1. 다음 명령을 사용하여 컴포넌트에 대한 Docker 이미지를 가져오십시오.

     oc import-image mobile --from=docker.io/ibmcom/nodejs-mobile-foundation:odo-latest --confirm
    

    여기서 “mobile” 대신 원하는 이름을 선택할 수 있습니다.

  2. odo CLI를 사용하여 파일 시스템에서 새 폴더를 작성하고 이를 초기화하십시오. 예를 들면, 다음과 같습니다.

     mkdir mf-mobile-backend
     cd mf-mobile-backend
     odo create mobile --git https://github.com/{userName}/{repositoryName}
    

    이를 통해 odo 구성 파일을 사용하여 Node.js Mobile Foundation 프로젝트가 초기화됩니다. 여기서 GitHub URL에는 Mobile Foundation 서비스를 사용하는 노드 앱이 포함되어야 합니다. 해당 샘플은 여기에서 찾을 수 있습니다.

  3. 프로젝트가 초기화된 후 작성된 프로젝트 폴더로 이동하여 아래 표시된 대로 .odo/config.yaml 파일의 끝에서 필요한 환경 변수를 추가하십시오.

     Envs:
       - Name: MF_ENVVARS
         Value: '{"push":{"mf_url":"<MFSERVER>","mf_app_id":"<APPID>","username":"<UNAME>","password":"<PWD>"},"liveupdate":{"mf_url":"<MFSERVER>","mf_app_id":"<APPID>","username":"<UNAME>","password":"<PWD>"},"analytics":{"mf_url":"<MFSERVER>","mf_app_name":"<APPNAME>","username":"<UNAME>","password":"<PWD>"},"passport_filter":{"mf_url":"<MFSERVER>","username":"<UNAME>","password":"<PWD>"}}'
    

    환경 변수에 있는 각 매개변수는 다음에서 설명됩니다.

    • MFSERVER

      완전한 Mobile Foundation 서비스 엔드포인트. 예를 들면, https://mf-xxxxx-mfpserver.mf.cluster.svc.local:9080입니다(포트를 포함한 전체 서버 주소가 필요함). 외부 클러스터에서 Mobile Foundation 서비스가 실행되는 경우 완전한 ingress 라우트를 제공하십시오.

    • APPID

      Android 애플리케이션의 경우 앱의 패키지 이름이고, iOS 애플리케이션의 경우 번들 ID입니다. 예를 들면, com.acme.myapp입니다.

    • UNAME

      기밀 클라이언트 사용자 이름입니다. 예를 들면, bffclient입니다.

    • PASSWORD

      기밀 클라이언트의 비밀번호입니다. 예를 들면, bffclientpassword입니다.

    • APPNAME

      애플리케이션의 표시 이름입니다. 예를 들면, Acme’s Awesome App입니다.

    또한, 모든 서비스가 다음과 같이 단일 Mobile Foundation 서버 및 단일 애플리케이션을 가리키는 경우 별도의 환경 변수를 제공할 수 있습니다.

     -Name:mf_url
     Value:<MFSERVER>
     -Name:mf_app_id
     Value:<APPID>
     -Name:push_mf_username
     Value:<PUSH_UNAME>
     -Name:push_mf_password
     Value:<PUSH_PWD>
     -Name:liveupdate_mf_username
     Value:<LIVEUPDATE_UNAME>
     -Name:liveupdate_mf_password
     Value:<LIVEUPDATE_PWD>
     -Name:analytics_mf_username
     Value:<ANALYICS_UNAME>
     -Name:analytics_mf_password
     Value:<ANALYTICS_PWD>
     -Name:pf_mf_username
     Value:<PASSPORT_FILTER_UNAME>
     -Name:pf_mf_password
     Value:<PASSPORT_FILTER_PWD>"
    

    위의 경우 환경 변수는 팟(Pod)의 ingress 라우트여야 합니다. 대신 내부 URL을 사용할 경우에는 Mobile Foundation 서버의 런타임 URL이 포함된 위의 mf_url과 함께 각 서비스의(푸시, 라이브 업데이트 및 분석) 내부 Mobile Foundation URL을 지정하는 추가 환경 변수가 필요합니다.

     -Name:mf_push_url
     Value:<MFPUSHSERVER>
     -Name:mf_liveupdate_url
     Value:<MFLIVEUPDATESERVER>
     -Name:mf_analytics_rl
     Value:<MFANALYTICSSERVER>
    

    참고: 내부 Mobile Foundation 서비스 URL을 사용하는 경우 별도의 변수만 지정해야 합니다. 환경 변수를 전달할 단일 환경 변수 MF_ENVVARS 형식을 사용할 수 없습니다.

  4. 이 명령을 사용하여 앱이 초기화된 공용 라우트를 작성하십시오.

     odo url create --port 8080
    
  5. 이제 다음 명령을 사용하여 앱을 배치할 수 있습니다.

    odo push
    

    이를 통해 앱이 배치되고 위에 작성된 라우트를 사용하여 액세스될 수 있습니다.

    참고: 앱에 대한 라우트는 odo url list 명령을 사용하여 볼 수 있습니다.

이 odo 컴포넌트에 사용되는 Docker 이미지는 다음 API를 직접 제공합니다.

제공된 푸시 API

  • sendNotification
  • sendNotificationByTags
  • sendNotificationByPlatform
  • sendNotificationByDeviceId
  • sendNotificationByUserId

제공된 라이브 업데이트 API

  • isFeatureEnabled
  • toggleFeature
  • enableFeature
  • disableFeature
  • getProperty
  • setProperty

제공된 분석 API

  • sendCustomLogs
  • sendNetworkTransactions

또한 패스포트 전략의 도움으로 일반 개발자가 사용자 컨텍스트(사용자 이름과 같은 사용자 특정 데이터, 디바이스 세부사항 등)를 사용할 수 있습니다. 패스포트 전략에 대해 자세히 알아보려면 여기를 참조하십시오.

작성된 엔드포인트에서 mf.securityUtils.mfpAuth(scope) 필터를 추가하여 사용할 수 있습니다. 여기서 매개변수 범위로 페치된 사용자 컨텍스트 데이터가 결정됩니다. 이 예는 샘플 앱에 제공되어 있습니다.

패스포트 필터에 대한 입력은 환경 변수를 지정하는 동안 passport_filter 키를 사용하여 환경 변수를 통해 사용할 수 있습니다.

참고: 사용 가능한 API에 대한 자세한 정보는 여기를 참조하십시오.

Last modified on July 08, 2020