MuleSoft를 사용하여 데이터 변경 시 유휴 알림 보내기

컨텐츠 중심 플랫폼의 당면 과제


2020년에는 콘텐츠 플랫폼 구축이 어렵다.너는 허위 정보, 스팸메일, 그리고 환영을 받지 못하는 광고와 싸워 왔다. 이 광고들은 대부분 현대 인터넷의 전염병 로봇에서 나온 것이다.누가 짐작컨대
그럼 너는 어떻게 그들과 대항할 수 있니?
당신은 끊임없이 당신의 사이트를 감시하고 새로운 항목을 수동으로 검사할 수도 있고 사용자 스스로 결정하여 플랫폼의 남용 상황을 보고하기를 기다릴 수도 있습니다.그러나 이 두 가지 해결 방안은 모두 느리고 무미건조하다.
자동 필터가 완벽하지 않으면 가장 좋은 해결 방안일 수도 있다.그러나 만약 당신이 작은 사이트를 운영하고 있다면 가장 좋은 방법은 새로운 내용에 대한 자동 알림을 받는 것이다!
본고에서 저는 이러한 도구를 어떻게 구축하는지 보여 드리겠습니다(MuleSoft, Herokuthis guide)을 사용하여 새로운 내용이 콘텐츠 플랫폼에 들어갈 때 슬랙에 알림을 보내는 것).

MuleSoft를 사용하여 데이터 변경 모니터링


몇몇 예술가들은 모든 것이 이미 창조되었다고 말한다.어떤 사람들은 동의하고, 어떤 사람들은 동의하지 않는다. 그러나 개발자가 예술가라면, 2020년에는 많은 응용 프로그램의 핵심 기능이 개발되었을 것이다.만약 당신의 핵심 업무가 맞춤형 콘텐츠 플랫폼이라면 당신은 왜 통합 소프트웨어를 구축하는 데 시간을 들여야 합니까?더 좋은 전략은 전투 테스트를 거친 소프트웨어를 사용해서 몇 번만 클릭하면 일을 할 수 있다는 것이다.
MuleSoft의 어떤 점이 바로 그 플랫폼이다.그것은 CRM, 통신 도구, 데이터베이스 등 서비스 간에 연결을 맺는다.그리고 어떤 이벤트가 발생할 때, 이 서비스들 사이에서 데이터를 전송할 수 있습니다.예를 들면 다음과 같습니다.
  • 어플리케이션에 새 사용자가 있을 경우 Salesforce
  • 에 새로운 잠재 고객 생성
  • Slack에서 사진을 보낼 때 S3에 저장하고 사이트
  • 에 추가
  • 새 콘텐츠가 Heroku 프로그램에 업로드될 때, 요약을 슬랙에 보내서, 게시자가 가능한 한 빨리
  • 을 볼 수 있도록 합니다
    ... 당신은 우리가 본 강좌의 나머지 부분에서 어떤 용례를 탐구할지 이미 알고 있을 것입니다😉

    구렁이 뉴스 소개!



    본고의 목적에서 우리는 Pythonic News에 개원 프로젝트 Heroku을 배치할 것이다.파이토닉 뉴스는 파이토닉/Django가 작성한 Hacker News의 클론이다.slight modifications을 사용하면 어플리케이션 Heroku를 별도의 구성 없이 배포할 수 있습니다.상세한 과정은 다음과 같다.생산에 투입하고 위험은 스스로 부담하라!(하지 마십시오.😅)
    해커 뉴스는 매일 엄청난 데이터를 얻는데 내용의 질은 the moderators에 있어 엄숙한 일이다.다행히도, 우리는 이미 이 문제를 해결할 전략이 있기 때문에, 우리는 계속해서 내용 조절 시스템을 구축할 것이다.

    MuleSoft 및 Heroku 통합


    Anytime 플랫폼을 충분히 이용하기 위해서 우리는 JDBC과 호환되는 데이터베이스, 예를 들어 Postgres를 실행해야 한다.다행히도 Heroku는 Postgres 데이터베이스를 무료로 실행할 수 있도록 허락했고 심지어 documentation on plugging it to MuleSoft's Database Connector도 있었다.위에서 언급한 수정은 Django가 아닌 Postgres를 실행하는 기본 Sqlite를 포함하기 때문에 시작할 수 있습니다.👍
    이제 전체 시스템을 구축하는 데 필요한 절차를 살펴보자.

    Heroku 어플리케이션 배포


    (참고: 이 섹션은 건너뛰고 fork of pythonic-news을 사용하십시오.)
    원시적인 파이썬 뉴스 보도를 복제하기 시작합시다.git clone [email protected]:sebst/pythonic-news.git이 프로젝트는 이미 완성되고 실행 중이지만, 그것을 배치하기 전에, 우리는 세 가지 추가 절차를 취해야 한다.

    1. Gunicorn을 설치하고 Heroku에 Procfile 추가


    Gunicorn을 웹 서버로 사용할 것입니다. (생산 환경에서 영원히 실행하지 말아야 하기 때문입니다./manage.py runserver)pip install gunicornProcfile은 Heroku의 구성 파일입니다.Heroku 응용 프로그램이 출시될 때 마이그레이션을 적용하도록 안내하고 Gunicorn을 사용하여 응용 프로그램에 서비스를 제공할 것입니다.
    release: python manage.py migrate
    web: gunicorn hnclone.wsgi
    

    2. 데이터베이스를 Postgres로 변경


    나는 생산과 같은 데이터베이스를 로컬에서 실행하는 것을 더 좋아하기 때문에 Postgres 설정에 대한 지원을 추가했다.다음 세션은 다음과 같습니다.
  • 은 로컬 검색 POSTGRES*** 환경 변수를 찾을 수 없으면 오픈 데이터베이스'pythonic news'에 연결합니다.
  • 은 Heroku에서 DATABASE_URL 변수를 읽습니다. Postgres 마운트 항목을 설정하면 이 변수는 자동으로 Heroku Config Vars에 표시됩니다.
  • import environ
    
    # settings.py
    env = environ.Env()
    
    DB_USER = env("POSTGRES_USER", default="postgres")
    DB_PASSWORD = env("POSTGRES_PASSWORD", default="")
    DB_PORT = env("POSTGRES_PORT", default="")
    DB_NAME = env("POSTGRES_NAME", default="pythonic_news")
    DB_HOST = env("POSTGRES_HOST", default="")
    DB_CONFIG_URL = f"postgres://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
    
    DATABASES = {"default": env.db("DATABASE_URL", default=DB_CONFIG_URL)}
    

    3. 잡다한 변경을 한다. 이런 변경은 생산적으로 준비된 것이 아니지만 나에게 유용하다.🤷🏻‍♂️


    나에게 있어서, 그것은 DEBUG=True이기 때문에 정적 파일은 로컬에서 일한다.너에게 있어서 이것은 완전히 다른 일일 수도 있다.프로젝트 설정은 본 강좌의 중점이 아니기 때문에 우리는 다음 부분으로 넘어갈 것이다.

    느슨한 설정


    Slack workspace가 이미 있다고 가정합니다. (그렇지 않으면 본문을 읽지 못할 수도 있습니다.) 다음 단계는 Slack 프로그램을 만들고 선택한 채널에 연결하는 것입니다.이를 위해 https://api.slack.com/apps으로 돌아가서 "응용 프로그램 만들기"단추를 누르겠습니다.

    그리고 프로그램이 만들어지면 로봇이 필요로 하는 기능과 권한을 선택하라는 알림을 받을 수 있습니다.

    우리의 예에서 웹 훅과 chat: write를 사용해야 합니다.진정한 Linux 모드에서는 프로그램이 필요로 하는 최소 권한 집합만 사용하는 것을 항상 기억하십시오!

    보기 좋다!이제 응용 프로그램을 오른쪽 패널 메뉴의 채널에 연결합니다.

    준비됐습니다!현재, MuleSoft가 채팅방에 메시지를 보낼 때, 우리는 그것을 받을 준비가 되어 있다.

    MuleSoft 설정


    이제 재밌는 부분!우리 응용 프로그램에는 데이터베이스가 하나 있다.우리는 해이해졌다.그들을 연결합시다!
    MuleSoft Anypoint에 로그인하여 새 프로젝트를 만듭니다.

    '새 프로그램 만들기' 를 선택하면 이벤트 탐지기와 수신기를 선택하라는 메시지가 표시됩니다.
    첫 번째 상황에서 데이터베이스 연결기를 선택하면 새 줄 항목을 감청합니다.
    수신자의 경우 Slack을 선택하고 새 메시지 게시(duh!)를 선택합니다.
    지금 설정 시간입니다!

    데이터베이스 구성의 경우 tutorial written by Heroku을 사용하여 MuleSoft와 데이터 제품을 연결합니다.준비가 되면, 우리가 감청하고 싶은 표를 선택하고, id 역할을 할 열을 선택해야 합니다. 수인열은 연결기에서 보이는 줄을 표시합니다.이 경우 두 시나리오에 대해 item ptr id를 선택합니다.

    🎉 축하합니다!데이터베이스가 올바르게 구성되었습니다!해이 메시지를 설정합니다.

    우선, 우리가 만든 Slack 프로그램에 연결합니다.마찬가지로 existing tutorial을 사용하겠습니다.
    느슨한 연결이 활성화되면 MuleSoft는 선택한 테이블에서 얻을 수 있는 데이터를 자동으로 감지하여 오른쪽 패널에 표시합니다.이제, 메시지를 발표할 채널을 선택하고, 발표할 메시지를 작성한 다음, 값을 오른쪽에서 정확한 위치로 끌어다 놓으십시오.일단 완성되면...

    전체 절차도 완성되었습니다!지금부터 테스트(단기 MuleSoft 배치를 사용)하거나 플랫폼을 종료한 후에도 연결이 유효하도록 배치합니다.

    한 바퀴 돌고 나서 느슨한 통지를 받자.

    데모


    파이토닉 뉴스 사용자 인터페이스는 매우 간단하게 설계되었다.링크를 제출하려면 [전송] 버튼을 클릭하고 양식 작성을 계속합니다.

    펑💥

    우리의 응용 프로그램이 나에게 새로 제출한 내용을 통지했다.이제 파이톤과 무관하기 때문에 관리 패널로 이동해서 스팸메일로 표시할 수 있습니다.😅
    (사실 쉽지 않아...)

    하지만, 헤헤, 우리 드디어 도착했어!

    설치 시 당면한 과제 및 문제


    물론 이 과정은 이 문장에서 보기에 그렇게 순조롭지 않다.개발 과정에서 다음과 같은 문제가 나로 하여금 멈추고 세부 사항을 다시 생각하게 했다.

    1. 자신의 JDBC 드라이버를 업로드해야 합니다.


    Postgres는 JDBC와 호환되지만 직접 드라이버를 업로드하고 지정해야 합니다.사실이 증명하듯이, 이것은 문제가 있다. 왜냐하면 당신이 공식 Postgres website에 들어가면, 50여 종의 다른 사용 가능한 드라이버가 다운로드할 수 있기 때문이다.MuleSoft가 추천하는 버전 42.2.1을 선택했습니다.그러나 이것은 결코 최신이 아니다.

    2. 기호화폐


    Slack 프로그램을 만들 때 영패 대신 OAuth 인증 흐름을 선택하면 일을 복잡하게 만들 수 있습니다.OAuth는 당연히 더 복잡한 프로젝트에 추천되지만, 우리의 예에서 영패 인증은 잘 작동할 수 있다.OAuth와 권한 옵션에서 접근 영패를 복사하기만 하면 됩니다.이것은 xoxb로 시작하여 랜덤 문자열을 따라 느슨하게 통합되는 동안 MuleSoft에 전달해야 한다.

    3. 워터마크


    전체 프로세스가 처음으로 정상적으로 운행되었을 때, 나의 여가 시간은 초당 수십 개의 메시지에 의해 폭격되었다.이것은 데이터베이스 연결기에 워터마크 필드를 설정하지 않았기 때문입니다.이것은 무르소프로 하여금 이전에 어떤 소대를 본 적이 있는지 잊게 했다.따라서 매번 교체될 때마다 모든 데이터베이스 항목은 채널에 메시지를 보낸다.정말 엉망진창이야!워터마크를 고유 ID가 있는 열에 배치하여 이 문제를 해결했습니다.

    요약


    업무 자동화를 그 어느 때보다 쉽게 하다.Heroku와 같은 도구는 인프라 관리에 대한 걱정을 덜어주고, MuleSoft는 복잡한 업무 통합을 간소화하고, 드래그 앤 드롭의 즐거움을 실현할 수 있다.이것은 얼마나 아름다운 시간인가!
    나는 이 강좌가 당신이 자신의 통합을 구축하고 결과에서 당신을 위해 많은 귀중한 시간을 절약하는 데 도움을 줄 것이라고 희망한다.행운을 빕니다!

    좋은 웹페이지 즐겨찾기