Azure 功能:运行/测试模式下出现 500 个内部内部服务器错误

Posted

技术标签:

【中文标题】Azure 功能:运行/测试模式下出现 500 个内部内部服务器错误【英文标题】:Azure Function: 500 internal internal server error in Run/Test Mode 【发布时间】:2021-09-01 16:37:10 【问题描述】:

我想在运行/测试模式下使用 Azure 应用功能测试我的 azure 函数,但它会引发“500 内部服务器错误”。 我能够在我的本地环境中调试相同的代码,但是当在 azure 门户上触发相同的代码时,它会在没有任何适当的错误日志的情况下失败。 此 Azure 函数将从事件中心读取 json 格式数据并将其写入 blob 存储。我正在使用 python 进行 azure 函数开发。 这是代码: 初始化.py

from typing import List
import logging
import os
import azure.functions as func
from azure.storage.blob import BlobClient
import datetime
import json

storage_connection_string = os.getenv('storage_connection_string_FromKeyVault')

container_name = os.getenv('storage_container_name_FromKeyVault')

today = datetime.datetime.today()


def main(events: List[func.EventHubEvent]):
    for event in events:
        a = event.get_body().decode('utf-8')
        json.loads(a)
        logging.info('Python EventHub trigger processed an event: %s', a)
        logging.info(f'  SequenceNumber = event.sequence_number')
        logging.info(f'  Offset = event.offset')

        blob_client =  BlobClient.from_connection_string(storage_connection_string, container_name, str(today.year) +"/" + str(today.month) + "/" + str(today.day) + "/" + str(event.sequence_number) + ".json")

        blob_client.upload_blob(event.get_body().decode(),blob_type="AppendBlob")

local.settings.json


  "IsEncrypted": false,
  "Values": 
    "AzureWebJobsStorage": "<Endpoint1>",
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "storage_connection_string_FromKeyVault": "<connectionString",
    "storage_container_name_FromKeyVault": "<container_name>",
    "EventHubReceiverPolicy_FromKeyVault": "<Endpoint2>"
  

function.json


  "scriptFile": "__init__.py",
  "bindings": [
    
      "type": "eventHubTrigger",
      "name": "events",
      "direction": "in",
      "eventHubName": "pwo-events",
      "connection": "EventHubReceiverPolicy_FromKeyVault",
      "cardinality": "many",
      "consumerGroup": "$Default",
      "dataType": "binary"
    
  ]

请注意,当我在门户上单击运行/测试时会引发此错误。但同样的代码在部署后也运行良好。

【问题讨论】:

根据异常信息,这是由于代码问题。但是很难找到根本问题,请分享您的代码或跟踪日志。 @StanleyGong 我已将我的代码添加到问题中。谢谢 @StanleyGong 当我尝试使用门户上的测试/运行选项测试应用程序时,此代码会引发错误。但否则应用程序正在天蓝色门户上运行。 我已启用应用程序洞察力,因此如果需要,我可以共享日志。我正在使用消费计划。 @StanleyGong 早上好,你能帮我解答以下问题吗-***.com/questions/68109998/… 【参考方案1】:

500错误无助于解决此问题,需要查看azure函数的具体错误。您可以使用应用程序洞察来获取详细信息错误。该函数必须配置相应的应用洞察才能在门户上查看日志。

因此,您需要像这样为您的函数应用配置应用洞察:

然后您的函数应用将重新启动。

当然,你也可以去kudu查看:

首先,进入高级工具,然后点击“GO”,

然后进入kudu之后,点击Debug Console -> CMD -> LogFiles -> Application -> Functions -> yourtriggername。你会在那里找到日志文件。

如果你是linux操作系统,进入kudu后,点击“日志流”即可(linux消费方案不支持)。

【讨论】:

我正在使用消费计划。我已将代码添加到问题中。请看一看。谢谢 @Stark 你检查日志了吗?错误或异常应该在里面。 还没有.. 很快就会更新你.. 谢谢 你能帮我解决以下关于 azure 函数的问题吗***.com/questions/69480321/…

以上是关于Azure 功能:运行/测试模式下出现 500 个内部内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 FTP 将 intellij maven 项目部署到 azure Web 应用程序,出现 500 服务器错误

jmater分布式压力测试总结

Azure Devops react-scripts 测试永远挂起

腾讯手游助手出现了游戏不支持系统在测试模式或调试模式下运行怎么办?

适用于 Apple 和 Android 的 Azure 通知中心

Azure iOS 推送通知在生产模式下未收到?