我一直在使用Google云功能 (GCF)来设置一个无服务器环境。这很好,它涵盖了我所需要的大部分所需的功能。
但是,对于一个特定的模块,从FTP服务器提取数据,解析提供者超过540秒的时间文件的持续时间。由于这个原因,我执行的任务在将其部署为云函数时会超时。
此外,一些FTP服务器要求它们将发出这些请求的ip地址白名单。当使用云函数时,除非您以某种方式保留静态地址或者一个范围,否则这是不可能的。
因此,我正在寻找一种替代解决方案,在Google平台上执行云中的Python脚本。所需经费如下:
对于这类需求,最好的选择是什么?
发布于 2019-07-25 15:17:22
云函数的概念主要是Microservice的概念。在相对较短的时间内运行的东西。在你的故事中,我们的行动似乎可以持续很长一段时间。这似乎适用于运行某种形式的计算引擎的概念。这两个立即出现在脑海中的是谷歌计算引擎(CE)和Google引擎(GKE)。让我们考虑一下计算机引擎。把它想象成一个Linux,您可以100%地控制它。这不一定是重量级的东西..。谷歌提供微型计算引擎,这些引擎非常小。您可以拥有其中的一个或多个,包括在集上的负载过高时动态扩展实例数量的能力。在你的计算机引擎上,你可以创建任何你想要的环境.包括安装Python环境和运行Flask (或其他)来处理传入的请求。您可以将计算引擎与静态IP地址相关联,也可以将静态IP地址与负载均衡器前端引擎相关联。
发布于 2019-11-26 11:23:45
下面是我如何从带有Google函数的FTP下载文件到。它所需时间少于30秒(取决于文件大小)。
#import libraries
from google.cloud import storage
import wget
def importFile(request):
#set storage client
client = storage.Client()
# get bucket
bucket = client.get_bucket('BUCKET-NAME') #without gs://
blob = bucket.blob('file-name.csv')
#See if file already exists
if blob.exists() == False:
#copy file to google storage
try:
link = 'ftp://account:password@ftp.domain.com/folder/file.csv' #for non-public ftp files
ftpfile = wget.download(link, out='/tmp/destination-file-name.csv') #save downloaded file in /tmp folder of Cloud Functions
blob.upload_from_filename(ftpfile)
print('Copied file to Google Storage!')
#print error if file doesn't exists
except BaseException as error:
print('An exception occurred: {}'.format(error))
#print error if file already exists in Google Storage
else:
print('File already exists in Google Storage') https://stackoverflow.com/questions/57205167
复制相似问题