Я очень плохо знаком с GCP и не был уверен, что облачные функции - это способ go для этого.
- У меня есть скрипт python, который вызывает твиттер-API с помощью tweepy и генерирует файл csv со списком твитов для этого конкретного имени пользователя.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tweepy
import datetime
import csv
def fetchTweets(username):
# credentials from https://apps.twitter.com/
consumerKey = "" # hidden for security reasons
consumerSecret = "" # hidden for security reasons
accessToken = "" # hidden for security reasons
accessTokenSecret = "" # hidden for security reasons
auth = tweepy.OAuthHandler(consumerKey, consumerSecret)
auth.set_access_token(accessToken, accessTokenSecret)
api = tweepy.API(auth)
startDate = datetime.datetime(2019, 1, 1, 0, 0, 0)
endDate = datetime.datetime.now()
print (endDate)
tweets = []
tmpTweets = api.user_timeline(username)
for tweet in tmpTweets:
if tweet.created_at < endDate and tweet.created_at > startDate:
tweets.append(tweet)
lastid = ""
while (tmpTweets[-1].created_at > startDate and tmpTweets[-1].id != lastid):
print("Last Tweet @", tmpTweets[-1].created_at, " - fetching some more")
lastid = tmpTweets[-1].id
tmpTweets = api.user_timeline(username, max_id = tmpTweets[-1].id)
for tweet in tmpTweets:
if tweet.created_at < endDate and tweet.created_at > startDate:
tweets.append(tweet)
# # for CSV
#transform the tweepy tweets into a 2D array that will populate the csv
outtweets = [[tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in tweets]
#write the csv
with open('%s_tweets.csv' % username, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(["id","created","text"])
writer.writerows(outtweets)
pass
f = open('%s_tweets.csv' % username, "r")
contents = f.read()
return contents
fetchTweets('usernameofusertoretrieve') # this will be set manually in production
Я хотел запустить этот скрипт и получить результаты (либо в виде файла csv, либо в виде
return contents
) по запросу http, например, с использованием javascript. Скрипт нужно запускать только один раз в день. Но сгенерированные данные (CSV) должны быть доступны по мере необходимости.
Поэтому мой вопрос
a. Является ли GCP Cloud Functions правильным инструментом для работы? или это потребует чего-то более обширного и, следовательно, экземпляра виртуальной машины GCP?
b. Что нужно изменить в коде, чтобы он работал на GCP?
Также приветствуется любая помощь / совет относительно направления.