매일 뉴스 보도, 반드시 뉴스 검색과 Twilio 문자 메시지
11594 단어 tutorialpythonpythonfunbitesazure
내가 나의 직업 중심을 확장현실(XR)으로 옮기기로 결정했을 때, 나는 이 업계에서 일어나고 있는 일에 대해 단지 반밖에 알지 못했다.나는 핫이슈와 업계 추세에 대해 더 쉽게 이야기하고 싶다면, 최신 뉴스를 제때에 알아야 한다는 것을 안다.저는 개인적으로 과학 기술 뉴스 사이트의 흐름을 따라가지 못하기 때문에 다른 소셜 미디어 플랫폼에 참여할 필요가 없는 상황에서 수시로 상황을 이해할 수 있는 방법을 찾아야 합니다.바로 그때 나는 이 소식을 나에게 가져다 줄 생각이 생겼다.나는 새로운 문장을 찾지 않고 이 과정을 자동화하고 싶다.
파이톤Azure Functions,Bing News Search과Twilio SMS를 사용하여 저는 매일 문자 메시지를 만들어서 XR와 관련된 최신 글을 보냈습니다.내가 어떻게 했는지 봐!
요구 사항:
Visual Studio Code(동시 설치Python 및 Azure Functions 연장 부품)
지도의
1. 프로젝트 폴더를 만들고 Visual Studio 코드에서 열기
모든 프로젝트 파일을 저장하고 선택한 위치에 저장할 폴더를 만듭니다.Visual Studio 코드에서 파일 > 열기
Ctrl+o/Cmd+o
로 이동하여 폴더를 엽니다.2. Azure에 Visual Studio 코드로 로그인
Visual Studio 코드의 왼쪽 활성 표시줄에서 Azure 아이콘을 클릭하여 Azure 보기를 엽니다.Azure 로그인을 선택합니다.브라우저에 데리고 로그인할 것입니다.Azure 계정에 대한 자격 증명을 입력합니다.Visual Studio 코드로 돌아가서 사용자 이름이 상태 표시줄에 표시되면 로그인 여부를 확인할 수 있습니다.
3. Bing 에셋 만들기
Azure Portal에서 자원을 만들기 위해 탐색합니다.검색 표시줄에서 Bing search v7을 검색합니다.에셋을 선택하고 [만들기]를 클릭합니다.만들기 페이지에서 다음을 입력/선택합니다.
이름:에셋의 이름
구독:Azure 구독
가격 계층: 무료(사용 가능한 경우 선호 가격 선택)
리소스 그룹: 새 리소스 그룹을 만들거나 기존 리소스 그룹을 선택합니다.
영역:이 기능을 사용하는 위치
4. Azure 기능 핵심 도구 설치
Azure Functions Core Tools 명령줄이나 터미널 프롬프트에서 Azure 함수를 만들고 테스트할 수 있습니다.Review the docs 운영 체제에 따라 올바른 설치 프로세스를 결정합니다.
Azure Functions Core Tools가 교체되었는지 확인하려면 Visual Studio 코드 통합 터미널
func
에서 명령Ctrl+~
을 실행합니다.Azure Functions Core Tools가 성공적으로 설치되면 터미널에 Azure Functions 로고가 표시됩니다(위로 스크롤하여 보셔야 할 수도 있습니다).5. 새 항목 만들기
Azure 보기에서 새 항목 작성 아이콘 을 클릭합니다.VisualStudio 코드는 새 프로젝트를 작성하는 워크플로우를 안내합니다.각 단계에 대해 다음을 입력/선택합니다.
폴더:이 강좌 앞에 만든 폴더
언어: 파이썬
파이썬 별명 또는 전체 경로: 파이썬 해석기
템플릿:타이머 트리거
함수 이름:필요에 따라 함수 이름 지정
CRON 표현식: 0*/1****(분당 함수 실행)
VisualStudio 코드는 함수를 만든 후 프로젝트 폴더에 일부 파일을 추가합니다.초기화py 파일이 편집기에서 열립니다.
Visual Studio 코드가 적합하지 않으면 가상 환경을 활성화해야 합니다.
창:
.venv\Scripts\activate
Mac/Linux:source .venv/bin/activate
6. 필요한 모듈 설치 및 가져오기
다음 모듈을 설치합니다.
Python dotenv(액세스 환경 변수):
pip install python-dotenv
요청(Bing 뉴스 검색 API 요청): pip install requests
Twilio Python 지원 라이브러리: pip install twilio
초기화의 맨 위에 있습니다.py 파일에 다음 가져오기 문을 입력합니다.import datetime
import logging
import azure.functions as func
import json
import requests
from twilio.rest import Client
from dotenv import load_dotenv
load_dotenv()
import os
7. 환경 변수 작성 및 액세스
브라우저 보기 (
Shift+Ctrl+e/Shift+Cmd+e
에서 새 것을 만듭니다.폴더 루트 디렉터리에 있는 env 파일입니다.교실에 있어요.env 파일에 다음을 입력합니다.TWILIO_ACCOUNT_SID=<Replace with Twilio Account SID>
TWILIO_AUTH_TOKEN=<Replace with Twilio Auth Token>
MY_TWILIO_NUMBER='<Replace with your Twilio phone number>'
RECEIVER_NUMBER='<Replace with your personal phone number>'
BING_SUBSCRIPTION_KEY=<Replace with your Bing Search v7 resource subscription key>
BING_ENDPOINT=https://api.bing.microsoft.com/v7.0/news/search
이러한 값을 자격 증명으로 바꿉니다.Twilio Console에서 모든 Twilio 자격 증명 및 전화 번호에 액세스할 수 있습니다.Azure 자격 증명은 Bing 자원Azure Portal에 있습니다.주의: 반드시 전화번호 앞에 국가 코드를 붙여야 합니다.예:+1323555555
init에서py 파일에 다음 가져오기 문을 입력합니다.
account_sid = os.getenv("TWILIO_ACCOUNT_SID")
auth_token = os.getenv("TWILIO_AUTH_TOKEN")
my_twilio_number = os.getenv("MY_TWILIO_NUMBER")
receiver_number = os.getenv("RECEIVER_NUMBER")
subscription_key = os.getenv("BING_SUBSCRIPTION_KEY")
my_endpoint = os.getenv("BING_ENDPOINT")
8. 새 검색 요청 만들기
init에서
main
함수에 다음을 입력합니다.'''
This sample makes a call to the Bing News Search API with a text query and returns relevant news webpages.
Documentation: https: // docs.microsoft.com/en-us/azure/cognitive-services/bing-web-search/
'''
query = "<Replace a search term. Ex: Microsoft>"
# Construct a request
mkt = 'en-US' # change if necessary
params = {'q': query, 'mkt': mkt}
headers = {'Ocp-Apim-Subscription-Key': subscription_key}
# Call the API
response = requests.get(my_endpoint, headers=headers, params=params)
response_json = response.json()
title = response_json['value'][1]['name']
description = response_json['value'][1]['description']
article_url = response_json['value'][1]['url']
9. Twilio 메시지 만들기
Bing 뉴스 검색에서 요청한 코드 블록 아래에 다음을 입력합니다.
# Twilio account credentials
twilio_client = Client(account_sid, auth_token)
message = twilio_client.messages \
.create(
body=f"Title: {title} \n\n {description} \n\n {article_url}",
from_=my_twilio_number,
to=receiver_number
)
print(message.sid)
주의: 수시로 메시지 본문을 업데이트하세요!10. 수요에 수요를 추가한다.txt
요구 사항을 업데이트합니다.다음을 포함하는 txt 파일:
azure-functions
requests
twilio
python-dotenv
11. 디버거에서 실행
너는 지금 이 기능을 테스트할 수 있어!계속하기 전에 초기화를 확인하십시오.py 파일에는 다음과 같은 내용이 반영됩니다.
import datetime
import logging
import azure.functions as func
import json
import requests
from twilio.rest import Client
from dotenv import load_dotenv
load_dotenv()
import os
account_sid = os.getenv("TWILIO_ACCOUNT_SID")
auth_token = os.getenv("TWILIO_AUTH_TOKEN")
my_twilio_number = os.getenv("MY_TWILIO_NUMBER")
receiver_number = os.getenv("RECEIVER_NUMBER")
subscription_key = os.getenv("BING_SUBSCRIPTION_KEY")
my_endpoint = os.getenv("BING_ENDPOINT")
def main(mytimer: func.TimerRequest) -> None:
'''
This sample makes a call to the Bing News Search API with a text query and returns relevant news webpages.
Documentation: https: // docs.microsoft.com/en-us/azure/cognitive-services/bing-web-search/
'''
query = "<Replace with a search term. Ex: Virtual Reality>"
# Construct a request
mkt = 'en-US' # change if necessary
params = {'q': query, 'mkt': mkt}
headers = {'Ocp-Apim-Subscription-Key': subscription_key}
# Call the API
response = requests.get(my_endpoint, headers=headers, params=params)
response_json = response.json()
title = response_json['value'][1]['name']
description = response_json['value'][1]['description']
article_url = response_json['value'][1]['url']
# Twilio account credentials
twilio_client = Client(account_sid, auth_token)
message = twilio_client.messages \
.create(
body=f"Title: {title} \n\n {description} \n\n {article_url}",
from_=my_twilio_number,
to=receiver_number
)
print(message.sid)
실행 > 디버깅 시작 ((F5
) 으로 이동하여 디버깅을 시작합니다.디버거를 처음 실행할 때 Visual Studio 코드는 Azure 스토리지 계정을 선택하라는 메시지를 표시합니다.프롬프트에 따라 스토리지 계정을 생성하거나 이미 생성한 계정을 사용합니다.함수에 대한 스토리지 계정을 생성/선택하면 Visual Studio 코드가 디버거를 시작합니다.오류가 발생하면 디버거를 중지하고 터미널에 입력하십시오
func host
.만약 모든 것이 순조롭다면, 너의 휴대전화는 매 분마다 문자 한 통을 받을 것이다.메시지를 받지 못하면 누락될 수 있는 내용을 확인하기 위해 모든 절차를 보십시오.
12. CRON 표현식 업데이트
Azure에 이 기능을 배포할 준비가 되어 있습니다!그러나 이 작업을 수행하기 전에 함수CRON expression를 업데이트합니다.json 파일.기본적으로 Azure 함수는 UTC 시간대를 사용합니다.따라서 특정 시간대의 오전 9시와 같은 시간대를 설정해야 합니다.나는 캘리포니아에 있기 때문에 태평양 여름철을 따른다.그래서 매일 아침 9시의 CRON 표현식은 0*17**입니다.동해안의 사람들에게 CRON 표현식은 0*14**이어야 한다.
만약 당신이 이 두 시간대 중 어느 하나에 있지 않다면, 당신은 time zone converter 을 사용하여 당신이 있는 시간대의 UTC 시간을 오전 9시와 맞먹는 것으로 계산할 수 있습니다.
13. Azure에 배포
이제 Azure에 이 기능을 배포할 수 있습니다!Azure 보기에서 배치 아이콘(위쪽 화살표)을 선택합니다.Visual Studio 코드는 배포를 완료하는 워크플로우를 제공합니다.워크플로의 각 단계에 대해 다음을 입력/선택합니다.
기능 응용 프로그램 선택:Azure에서 새 기능 응용 프로그램 만들기
전역 고유 이름: 함수에 고유 이름 제공
Python 버전: 이전에 함수를 만들 때 선택한 버전 선택
새 자원 위치: 스토리지 계정에 대해 선택한 위치
그런 다음 Azure가 기능을 배포하기 시작합니다.이 기능을 배포하면 필요한 간격으로 SMS를 받을 수 있습니다.함수와 관련된 내용을 수정해야 하는 경우 Visual Studio 코드의 프로젝트 파일에서 수정할 수 있습니다.
이 기능을 정지해야 합니까?Azure portal에서 이 작업을 수행할 수 있습니다.리소스 그룹으로 이동하여 해당 기능에 사용할 리소스 그룹을 선택합니다.[리소스 그룹 삭제]를 선택하고 지침에 따라 리소스를 삭제합니다.
이렇게!Azure의 기능이 확실하지 않거나 서비스에 대한 정보를 더 알고 싶으면 Microsoft Learn module를 보십시오.
11월 16일부터 20일까지 마이크로소프트에서 all things Python의 콘텐츠를 시청한다.dev.to를 계속 시청하여 사물인터넷부터 기계학습까지 다양한 내용을 이해하세요!🐍
Reference
이 문제에 관하여(매일 뉴스 보도, 반드시 뉴스 검색과 Twilio 문자 메시지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/azure/daily-news-report-with-bing-news-search-and-twilio-sms-4g46텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)