将输出写入Azure函数中的Blob [英] Write output to Blob in Azure Functions

查看:47
本文介绍了将输出写入Azure函数中的Blob的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在学习使用Azure功能.所以,我听起来可能很愚蠢.我正在编写一个计时器触发功能,该功能每1分钟运行一次,并将两个数字相加并写入文件.这可以正常工作,因为我可以将输出写入本地服务器上的文件.

I am learning to use Azure functions. So, I might sound stupid. I am writing a timer trigger function which runs every 1 minute and adds two number and writes to a file. This works fine since I can write the output to the file on the local server.

第二步,我想将输出写入Blob.下面是代码:

As a second step, I wanted to write the output to the blob. Below is the code:

import datetime
import logging  
import azure.functions as func

a=4
b=5
sum=a+b
file_name= open("sum.txt","w+")


def main(mytimer: func.TimerRequest, outputBlob: func.Out[str]) -> None:
    utc_timestamp = datetime.datetime.utcnow().replace(
        tzinfo=datetime.timezone.utc).isoformat()
    if mytimer.past_due:
        global sum
        global file_name
        print("sum:", sum)
        logging.info('The sum has been calculated!')



    logging.info(sum)
    logging.info('Python timer trigger function ran at %s', utc_timestamp)
    with open("sum.txt", "a") as file_name:
        file_name.seek(0)
        file_name.write("\n")
        file_name.write("Sum: %s" % sum)

    outputBlob.set(file_name)

但是,当我运行该函数时,出现以下错误:

However, when I run the function I get the below error:

[10/02/2020 14:06:00] Executed 'Functions.CalcPayment' (Failed, Id=547f7a3d-03b4-4a02-98e7-f4bfb73e6f5e)
[10/02/2020 14:06:00] System.Private.CoreLib: Exception while executing function: Functions.CalcPayment. System.Private.CoreLib: Result: Failure
[10/02/2020 14:06:00] Exception: TypeError: unable to encode outgoing TypedData: unsupported type "<class 'azure_functions_worker.bindings.generic.GenericBinding'>" for Python type "int"
[10/02/2020 14:06:00] Stack:   File "/usr/local/Cellar/azure-functions-core-tools@3/3.0.2106/workers/python/3.7/OSX/X64/azure_functions_worker/dispatcher.py", line 330, in _handle__invocation_request
[10/02/2020 14:06:00]     pytype=out_type_info.pytype)
[10/02/2020 14:06:00]   File "/usr/local/Cellar/azure-functions-core-tools@3/3.0.2106/workers/python/3.7/OSX/X64/azure_functions_worker/bindings/meta.py", line 83, in to_outgoing_proto
[10/02/2020 14:06:00]     f'unable to encode outgoing TypedData: '
[10/02/2020 14:06:00] .

推荐答案

您不需要写入文件,只需创建一个对您而言有意义的字符串并将其推送到输出变量即可.您可以使用示例作为起点.

you dont need to have a file to write to, just create a string that makes sense in your case and push it to the output variable. You can use this sample as a starting point.

这篇关于将输出写入Azure函数中的Blob的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆