Ask Your Question

inkeun.kim's profile - activity

2019-02-01 11:12:31 +0900 answered a question 대시보드 관련해서 문의드립니다.

안녕하세요. docker 관련하여 설정에 어려움을 겪고 있으신 부분은 차후에 매뉴얼을 개선하여 조금 더 편하게 사용하실 수 있도록 수정하겠습니다. 불편을 드려 죄송합니다.

funapi-dashboard 는 리눅스 머신 내의 docker container로 배포되고 있는데요. funapi-dashboard 는 리눅스 머신에서 설정을 읽고, 통게 데이터를 저장하고 있어서 몇가지 설정을 해주셔야 하는데요,

아래 두 옵션에 대하여 조금 더 자세히 설명드리자면 아래와 같습니다.

/path/to/override
/path/to/whisper

/path/to/whisper 는 통계 데이터를 저장할 디렉터리 경로로 리눅스 머신 내의 임의의 경로를 생성 후 입력해주시면 됩니다. (예시: /var/lib/graphite/whisper)

/path/to/overridesettings.py (대시보드의 설정파일)을 가지고 있는 하위 경로를 입력해주시면 됩니다. (예시: 리눅스 머신에 /etc/funapi_dashboard/settings.py 가 존재한다면 /path/to/override/etc/funapi_dashboard)

아래 내용은 /etc/funapi_dashboard/ 디렉토리에 settings.py 파일이 존재하고, /var/lib/graphite/whisper 디렉토리가 존재하고, 해당 디렉토리에 통계 데이터를 쌓고 싶은 경우 설정입니다.

description "iFunEngine Dashboard"

start on (filesystem and net-device-up IFACE!=lo)
stop on runlevel [!2345]

kill timeout 30

respawn
respawn limit 50 600

script
  exec /usr/bin/docker run --rm \
    --name=funapi_dashboard \
    --dns=168.126.63.1 \
    --publish=0.0.0.0:8000:8000 \
    --publish=0.0.0.0:2003:2003 \
    --publish=0.0.0.0:2004:2004 \
    -v /etc/funapi_dashboard:/etc/funapi_dashboard/override \
    -v /var/lib/graphite/whisper:/var/lib/graphite/whisper \
    ifunfactory/funapi-dashboard:latest
end script

pre-stop exec /usr/bin/docker stop funapi_dashboard

추가로, settings.py 의 내용은 아래와 같습니다.

# vim: fileencoding=utf-8 tabstop=2 softtabstop=2 shiftwidth=2 expandtab        
#                                                                               
# Copyright (C) 2018 iFunFactory Inc. All Rights Reserved.                      
#                                                                               
# This work is confidential and proprietary to iFunFactory Inc. and             
# must not be used, disclosed, copied, or distributed without the prior         
# consent of iFunFactory Inc.    

# 1. MySQL
URI_TEMPLATE = 'mysql+mysqldb://{USER}:{PASSWORD}@{HOST}/{NAME}?charset=utf8'

SQLALCHEMY_DATABASE_URI = URI_TEMPLATE.format(USER='user',
                                              PASSWORD='passwd',
                                              HOST='host-address',
                                              NAME='database-name')


# 2. Redis (DO NOT MODIFY)
REDIS_PORT = 6379
REDIS_HOST = "localhost"
REDIS_PASS = None


# 3. 앱 시크릿키는 설정해서 사용하셔야 합니다.
# openssl rand 48 -hex 같은 명령 이용. (문자열로 지정)
APP_SECRET_KEY = None

# 4. Graphite API (DO NOT MODIFY)
GRAPHITE_WEB_URL = "http://localhost:8888"
SQLALCHEMY_TRACK_MODIFICATIONS = False


# 5. 경고 알림과 관련된 설정입니다.
# 알림을 다시 받을 주기입니다. 기본은 300초(5분) 입니다.
ALERT_BLOCKING_SECONDS = 300

# Gmail OAuth 2.0 Client 인증과 관련 설정입니다.
# 보다 자세한 내용은
# https://developers.google.com/gmail/api/auth/about-auth 을 참고해주세요

# gmail oauth credential 이 저장 될 이름입니다.
CREDENTIAL_NAME = 'funapi-dashboard.json'

# gmail oauth credential 이 저장된 패스입니다.
# 해당 경로가 없을시에 정상적으로 메일이 발송되지 않습니다.
# 특별히 수정하지않았다면 아래 경로에 저장됩니다.
# /home/user/.credentials/...
# /home/ 하위에 credential 파일이 있다면 정상적으로 읽지 못하니
# 반드시 파일위치를 옮겨주세요.
# 예: CREDENTIAL_PATH = "/etc/funapi_dashboard/override/funapi-dashboard.json"
CREDENTIAL_PATH = None

# 이메일 작성자 계정을 지정합니다.
# 해당 계정은 CLIENT_SECRET 을 발급 받은 계정이여야 합니다.
# 예: SENDER_NAME = "example@ifunfactory.com"
SENDER_NAME = None

# API SCOPE를 지정합니다.
GMAIL_API_SCOPES = 'https://www.googleapis.com/auth/gmail.compose'

# 인증시 발급받은 client_secret...json 파일의 위치를 지정합니다.
# 예: CLIENT_SECRET_PATH = "/etc/funapi_dashboard/client_secret.json"
CLIENT_SECRET_PATH = None

# SLACK을 이용한 알림 전송과 관련된 설정입니다.
# 보다 자세한 내용은
# https://api.slack.com/incoming-webhooks 을 참고해주세요

SLACK_WEBHOOK_URL = 'https://YOUR-COMPANY.slack.com/services/hooks/incoming-webhook?token={YOUR-TOKEN}'

# 메시지를 전송할 슬랙 체널이나 유저를 설정합니다.
# 채널은 #, 유저는 @이 앞에 ...
(more)
2019-01-12 09:52:17 +0900 received badge  Famous Question (source)
2018-11-28 18:33:17 +0900 answered a question flavor 사용시 패키징 문의

안녕하세요. 아이펀팩토리입니다. 위에서 올려주셨던 문제를 수정(C# 환경에서 flavor 를 설정한 deb 패키지를 설치할 수 없는 문제 수정) 을 포함한 1.0.0-3714 experimental 버전이 배포되었습니다. 엔진 업데이트 이후에도 동일한 증상이 발생하는지 확인부탁드립니다.

엔진 업데이트 방법은 쉘 상에서 아래 명령어를 입력해주시면 됩니다.

sudo apt-get update

sudo apt-get install funapi1-dev

위 수정사항을 포함한 변경 내역은 빠른 시일 내에 체인지 로그에 반영될 예정입니다. 불편을 드려 죄송합니다.

2018-11-28 10:42:08 +0900 commented question flavor 사용시 패키징 문의

네 확인 감사드립니다. 저희쪽에서 질문해주신 내용에 대하여 조금 더 확인 한뒤에 다시 말씀드리겠습니다.

2018-11-28 10:40:24 +0900 commented question flavor 사용시 패키징 문의

CMakeLists 내에서 RESOURCE_DIRS 에 관련된 내용도 포함되어있는지 알 수 있을까요?

2018-11-28 10:35:40 +0900 commented question flavor 사용시 패키징 문의

안녕하세요. 아이펀 팩토리입니다.

사용하시는 OS 버전 정보 및 패키지 빌드시 CMakeLists.txt 파일의 패키지 관련 설정(WANT_DEB_PACKAGE, WANT_UPSTART, WANT_SYSTEMD) 의 값도 같이 알려주실 수 있을까요?

2018-11-01 11:38:07 +0900 received badge  Notable Question (source)
2018-10-23 12:02:00 +0900 received badge  Popular Question (source)
2018-10-23 12:02:00 +0900 received badge  Notable Question (source)
2018-10-23 12:02:00 +0900 received badge  Famous Question (source)
2018-10-16 10:20:10 +0900 received badge  Popular Question (source)
2018-10-08 16:13:15 +0900 commented answer col__Object_id 질문입니다.

안녕하세요. 아이펀팩토리입니다. UUID 최대 생성량까지 가능합니다.

2018-10-08 15:10:11 +0900 received badge  Associate Editor (source)
2018-10-08 15:09:12 +0900 answered a question col__Object_id 질문입니다.

안녕하세요. 아이펀팩토리입니다.

object id는 아이펀 엔진 상에서 입력하는 오브젝트 식별 값입니다. ORM 객체 생성 시에 자동으로 입력됩니다.

추가로 말씀드리면 db상에는 binary로 입력하고 있으므로 col_object_id 를 조회할때는 아래와 같이 입력하여 편하게 Object Id를 조회하실 수 있습니다.

SELECT HEX(col__ObjectId_) FROM {{table_name}};

2018-10-01 14:18:16 +0900 received badge  Notable Question (source)
2018-08-06 02:34:52 +0900 received badge  Famous Question (source)
2018-08-05 21:25:13 +0900 received badge  Famous Question (source)
2018-08-05 21:25:13 +0900 received badge  Notable Question (source)
2018-06-12 18:23:10 +0900 answered a question Test 용 matchmaker 서버 오류 종료 문의

로비 서버&& 매치 서버의 데이터베이스 사용 여부(MANIFEST.{flavor}.json 파일에서 Object 엘리먼트의 enable_database ) 를 확인부탁드려도 될까요? (로비 서버가 사용중이라면 매치 서버도 사용하도록 변경 한 뒤에도 동일하게 동작하지 않는지 확인 부탁드리겠습니다.)

2018-06-12 17:36:47 +0900 commented answer Test 용 matchmaker 서버 오류 종료 문의

INFO 로그를 여기에 올려주실 수 있을까요?(lobby, matchmaker 두 서버 다 부탁드립니다)

2018-05-18 08:48:17 +0900 received badge  Popular Question (source)
2018-05-18 08:48:17 +0900 received badge  Notable Question (source)
2018-05-16 16:36:49 +0900 answered a question 윈도 환경에서의 데디케이티드 서버 매니저
    #!/bin/bash -e

    CODE=$(grep DISTRIB_CODENAME /etc/lsb-release | cut -d= -f2)
    if [[ "$#" == "1" ]]; then
      VERSION=$1
    else
      VERSION=$(apt-cache show funapi1-dedicated-server-host | grep ^Version | cut -d\  -f2 | cut -d- -f2 | sed -e "s/${CODE}//" | sort -nr | head -1)
    fi

    EXTRACTED_PATH=dsm-${VERSION}
    ARCHIVE=funapi-dedicated-server-host-${VERSION}.tar

    rm -rf ${EXTRACTED_PATH} ${ARCHIVE}.gz

    apt-get download "funapi1-dedicated-server-host=1.0.0-${VERSION}${CODE}"
    dpkg-deb -R funapi1-dedicated-server-host_1.0.0-${VERSION}${CODE}_all.deb ${EXTRACTED_PATH}


    tar -cf ${ARCHIVE} -C ${EXTRACTED_PATH}/usr/lib/python2.7/dist-packages/ funapi_dedicated_server
    tar --append -f ${ARCHIVE} -C ${EXTRACTED_PATH} etc/funapi-dedicated-server-host
    gzip -9 ${ARCHIVE}

    rm -rf ${EXTRACTED_PATH} funapi1-dedicated-server-host_1.0.0-${VERSION}${CODE}_all.deb

    echo "Download complete: ${ARCHIVE}.gz"

위 내용으로 파일을 생성 후 chmod +x {filename}.sh 이후 ./{filename}.sh 로 실행하실 수 있습니다.

2018-05-16 16:27:05 +0900 answered a question 윈도 환경에서의 데디케이티드 서버 매니저

안녕하세요. 불편을 드려 죄송합니다.

현재 funapi-dedicated-server-host 의 윈도우즈 다운로드 링크 제공이 중단되었습니다. (문서 업데이트예정)

아이펀 엔진이 설치 된 ubuntu 환경에서 다음 답변에 이어지는 쉘 스크립트를 생성 및 실행 시키시면 funapi-dedicated-server-host-{version}.tar.gz 파일을 받을 수 있습니다.

위 파일을 윈도우로 옮기셔서 사용하실 수 있습니다.

윈도우에서 funapi-dedicated-server-host관련 설정은 아래 링크를 통하여 확인하실 수 있습니다. https://www.ifunfactory.com/engine/do...

2018-05-14 21:56:18 +0900 received badge  Popular Question (source)
2018-05-08 11:57:25 +0900 commented answer C# 프로젝트 빌드 중 오류 질문드립니다.

build 폴더에서 make clean && make 명령어를 입력 후에도 위처럼 동작하지 않는지 확인 부탁드려도될까요?

2018-05-08 11:46:01 +0900 commented answer C# 프로젝트 빌드 중 오류 질문드립니다.

파일 내용을 그대로 답변 혹은 코멘트 옮겨주시는 것은 어려울까요?

2018-05-08 10:01:03 +0900 answered a question C# 프로젝트 빌드 중 오류 질문드립니다.

안녕하세요. 아이펀팩토리입니다. ObjectModel(json) 파일을 같이 올려주실 수 있을까요? 확인하는데에 도움이 될 것 같습니다.

2018-05-04 16:39:37 +0900 received badge  Famous Question (source)
2018-05-01 22:06:57 +0900 received badge  Famous Question (source)
2018-05-01 22:06:03 +0900 received badge  Popular Question (source)
2018-05-01 22:03:57 +0900 received badge  Notable Question (source)
2018-05-01 22:03:57 +0900 received badge  Popular Question (source)
2018-05-01 22:03:19 +0900 received badge  Notable Question (source)
2018-05-01 22:03:19 +0900 received badge  Popular Question (source)
2018-05-01 22:01:11 +0900 received badge  Popular Question (source)
2018-05-01 22:01:11 +0900 received badge  Notable Question (source)
2018-04-12 14:26:32 +0900 commented answer 구글 결제 검증 관련 질문드립니다.

잘해결되서 다행입니다. 좋은 하루 되세요. 감사합니다.

2018-04-12 14:05:28 +0900 commented answer 구글 결제 검증 관련 질문드립니다.

아래 내용을 확인부탁드립니다.

  1. google api console에 등록된 프로젝트의 redirect uri가 사용하셨던 인증에 사용하셨던 주소를 등록해두었는지
  2. 인증 요청을 하는 프로젝트가 google play developer api(혹은 androidpublisher) 사용 권한이 있는지
  3. refresh_token 을 여러번 발급받는지(refresh_token을 여러번 발급받는다면 refresh_token이 변경될 수 있습니다. 이경우 이전 refresh_token 은 유효하지 않습니다)
2018-04-12 12:22:45 +0900 answered a question 구글 결제 검증 관련 질문드립니다.

안녕하세요, 아이펀팩토리입니다. redirect_uri 의 경우 따로 설정하지 않으셔도 괜찮습니다.

funapi-biller 내에서 refresh_token 을 이용해서 access_token 을 발급 받아서 사용하는데요, 그 과정에서 올바른 값을 입력하지 않아서 정상적으로 access_token 을 가져오지 못하는 문제가 발생한 듯 보입니다 (로그상 구글쪽 통신과 실패시 응답 받은 부분은 아래에 해당합니다.

W0411 21:34:57.296624  3623 google_play_adapter.cc:112] status code is not OK(200): 400
W0411 21:34:57.296880  3623 google_play_adapter.cc:126] failed to get google api access token: {"error":"invalid_grant","error_description":"Bad Request"}

엔진 MANIFEST.json 에 입력한 입력하신 googleplay_refresh_token 은 어떤 방식으로 가져오셨는지 말씀해주시면 조금 더 확인이 가능할 것 같습니다.

2018-04-11 21:45:33 +0900 received badge  Notable Question (source)
2018-04-11 21:45:33 +0900 received badge  Famous Question (source)
2018-03-29 17:54:20 +0900 commented answer 구글 인증 문제 질문드립니다.

아닙니다~ 이슈가 지속적으로 발생한다면 다시 말씀 부탁드립니다. app id의 경우 고정 값으로 보셔도 되기 때문에 서버쪽에서 aud, azp 중 하나의 값을 받아두고 클라이언트 쪽에서 client id 만 받아서 처리하셔도 무방합니다(인증에 사용한 google api project 혹은 app이 변경 될 때는 aud, auz값이 변경될 수 있습니다)

2018-03-29 17:27:45 +0900 commented answer 구글 인증 문제 질문드립니다.

로그에 찍히는 json 데이터 내에 azp, aud 값이 있다면 해당 값을 app id로 사용하실 수 있습니다.