繁体   English   中英

Function VS Code 中的 App Blob Trigger 调试在 Azurite 中失败

[英]Function App Blob Trigger debugging in VS Code failed in Azurite

我创建了一个示例 Blobtrigger Azure function 并想在 VScode 中使用 Azurite 对其进行调试。 但是,在启动调试 session 后,它总是会抛出相同的错误。

我将 Azurite 用于 mocking Azure 中的 Blob 服务。

Docker 命令:

docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite

我在存储库中的代码如下:

local.settings.json,带有到 Azurite 的默认连接字符串

{"IsEncrypted": false,
 "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;"
},

__init__.py

import logging

import azure.functions as func

def main(myblob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")

和 function.json

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "myblob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "cleansed-zone/{name}",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

在 VSCode 中点击运行调试后,总是抛出异常。

 Azure.Core: An error occurred while sending the request.

由于某些环境限制,我无法在 Azurite Docker 上设置 HTTPS 并且还无法验证错误的根本原因是什么。

Azurite 和 Function App 本地项目的任何工作设置指南将不胜感激。

编辑:将连接字符串替换为 Azure 上的云存储帐户运行没有任何问题。 将示例文件上传到 Azurite 时,存储资源管理器也可以正常工作。 然而 docker 在调试时不断抛出多个 404 错误,并且未能创建一些 function 应用程序所必需的 blob/队列/表

172.17.0.1 - - [19/Jan/2022:11:22:53 +0000] "HEAD /devstoreaccount1/azure-webjobs-blobtrigger-lex10242-1234567890?comp=metadata HTTP/1.1" 404 
172.17.0.1 - - [19/Jan/2022:12:47:49 +0000] "PUT /devstoreaccount1/azure-webjobs-hosts/locks/lez10242-1234567890/WebJobs.Internal.Blobs.Listener?comp=lease HTTP/1.1" 404 -

我们已经尝试在本地使用 Azurite,它按预期工作。

为此,我们在本地安装了以下权限:

Docker(Windows 的 Docker 安装,ZEDC9F0A5A5D57797BF68E37364748 的 Docker 安装)

Azure 存储资源管理器

Azure 功能核心工具

Python 完成设置后,请确保您已在本地settings.json中添加以下内容。json

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
    "QueueConnectionString": "AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;DefaultEndpointsProtocol=http;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;"
  }
}

并在您的 function.json 中添加以下内容

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "myblob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "the container name which we created in storage explorer",
      "connection": ""
    }
  ]
}

然后使用func start运行您的应用程序

这是 OUTPUT 供参考: 在此处输入图像描述

有关完整设置,请参阅此BLOG

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM