适用于Azure的本地云堆栈类似于适用于AWS的LocalStack吗?

Raj*_*sad 7 azure amazon-web-services atlassian-localstack

是否有类似于适用于AWS的LocalStack的 Azure 模拟框架?请理解,我不是在寻找SDK模拟,而是在资源堆栈模拟。

如此之多,我可以用项目中的实际Azure资源替换本地Azure堆栈的配置,并且功能将保持不变。很像它与Localstack一起工作的方式。

我发现Azure Cloud Fabric最接近于此,但它与Visual Studio IDE紧密结合。

rap*_*auv 10

现在https://github.com/azure/azurite还提供了一个 docker https://hub.docker.com/_/microsoft-azure-storage-azurite

  • 我相信这仅适用于 Azure 存储模拟。 (3认同)

Jam*_*mes 6

虽然没有用于 Azure 的 LocalStack 的等效项,但 Microsoft 发布了三个可以在本地运行的模拟器以帮助进行集成测试:

以上三个可以为您提供大量的集成测试覆盖率,但是由于 Azure Functions、AWS Lambda 和大多数现代 Web 堆栈甚至非无服务器已经转向使用服务而不仅仅是使用软件模块,这是在集成之间实现完全平等的唯一方法测试和生产环境是自动创建和拆除真实的付费服务。

在 Azure 上进行端到端/集成测试的秘诀:

  • 使用Azure DevOps Pipelines自动化整个 CI 过程
  • 使用 Azure 命令行工具向管道添加任务,以创建和拆除具有持久状态(数据库、文件存储等)的(真实)文本夹具资源。
  • 为测试应用程序提供对真实、无状态服务(例如 Azure 认知服务等)的访问权限,就像您在生产中所做的那样。
  • 使用Azure 变量组来存储测试装置资源的名称、连接字符串等。您可以将不同的生产集存储在不同的组中,从而可以在不同阶段的 YAML 中轻松切换它们。这些变量也可以在它们自己的 YAML 文件中进行模板化。
  • 使用 Azure Functions Core Tools 模拟器在 CI 代理中托管和运行函数,而不是部署,单元测试框架为它们提供请求。这些功能将使用非模拟的服务作为测试装置。
  • 或者为测试阶段创建一个部署,发布真实的 API,然后编写 API 测试来发出原始 HTTP 请求,或者将其用作 Selenium Web 驱动程序测试 UI/前端的后端。

上述方法依赖于真实服务来提供测试而不是模拟服务,测试与您在生产中部署的内容非常接近的内容。每次运行测试时都会产生使用费。如果这是一个问题,请首先在管道中使用单元测试和模拟器集成测试,并为此级别的测试添加人工检查/不同的管道,您只能在推送到生产之前执行。

Azure Slots也值得一看。

  • 嗯,我主要寻找的是可以用于开发和测试而不会给 Azure 带来成本的东西。不过,感谢您在这里分享的大量信息。当我开始使用 Azure 时,这将非常有帮助。 (2认同)