我创建了一个azure函数和一个http_trigger,当我使用为http触发器给出的默认代码时,它工作得很好,但这不是我想要实现的。
当我更新代码以尝试将其与我的 CosmosDB 集成时,只需向其写入一个简单的值并将其部署到我的函数中,http 触发器就完全从仪表板中消失,这意味着我无法执行它,使其变得毫无意义。请参阅我正在尝试使用的附加代码:
''''
导入 azure.functions 作为 func
导入日志记录
def main(req: func.HttpRequest, outputDocument: func.Out[func.Document]) -> func.HttpResponse: logging.info('Python HTTP 触发函数处理了一个请求。')
# Hardcoding the name to "YourName"
name = "Charlie"
# Your data to be stored in Cosmos DB
data_to_store = {
"name": name,
"additional_property": "value" # Add any additional properties you want to store
}
# Use the Cosmos DB output binding to store the data
outputDocument.set(func.Document.from_dict(data_to_store))
return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully.")
''''
我已按照 MSLearn 上的建议将 CosmosDbConnectionString 更新为 local.settings.json 中的主要字符串。
我的requirements.txt文件夹中有以下内容: ()
尝试了各种不同的代码示例,但它们都返回了 http 触发错误 ()
请帮忙,提前致谢。
未找到 HTTP 触发器。
此错误是由于您的
function_app.py
中http触发器的语法格式不正确造成的。使用 python 模型 V2 时,应遵循正确的格式。
在您的代码中缺少这些,这对于识别 http 触发器的功能很重要。
app =func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
@app.route(route="http_trigger")
作为参考,请检查此文档。
有关 CosmosDB 输出绑定参考,请检查此文档。
注: 在 CosmosDB 输出绑定中,使用
代替container_name
,使用collection_name
代替connection
。connection_string_setting
我的代码:
function_app.py
:
import azure.functions as func
import logging
app =func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
@app.cosmos_db_output(arg_name="outputDoc",database_name="Testdb",container_name="test_container",connection="CosmosDbConnectionString")
@app.route(route="http_trigger")
def http_trigger(req: func.HttpRequest, outputDoc: func.Out[func.Document]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
name = "Vivek"
data_to_store={
"id": "123",
"Name": name,
"Data": "Test"
}
outputDoc.set(func.Document.from_dict(data_to_store))
return func.HttpResponse("Document successfully processed.", status_code=200)
OUTPUT
:
{
"id": "123",
"Name": "Vivek",
"Data": "Test",
"_rid": "sycqAIfM4i4BAAAAAAAAAA==",
"_self": "dbs/sycqAA==/colls/sycqAIfM4i4=/docs/sycqAIfM4i4BAAAAAAAAAA==/",
"_etag": "\"64000074-0000-0700-0000-65b3c3370000\"",
"_attachments": "attachments/",
"_ts": 1706279735
}