【问题标题】:Local cloud stack for Azure similar to LocalStack for AWS?Azure 的本地云堆栈类似于 AWS 的 LocalStack?
【发布时间】:2020-12-07 09:05:31
【问题描述】:

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

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

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

【问题讨论】:

  • 如何使用 Azure Cloud Fabric?
  • @SimonWoodside,我在某处读到 Azure Cloud Fabric 为您提供了一个框架,您可以在其中调用其所有产品的 Azure API,就像您实际使用实际的 Azure 资源一样。
  • @RajanPrasad 你有没有找到解决方案?我也找不到类似于 localstack 的东西:(
  • @farhad-taran,没有兄弟。但是我已经在空中建造了一座城堡,我将建造它并在 Github 上发布它。让我看看我什么时候有时间在现实世界中建造这座城堡。
  • 似乎没有可用于许多 Azure 服务的模拟,例如,我不知道 Azure 服务总线有任何可用的本地/模拟。某些服务确实具有模拟器,例如 Azure Storage emulatorCosmos Db Emulator,它们由 Microsoft 发布和支持。还存在一些第三方选项,例如Azurite

标签: amazon-web-services azure localstack


【解决方案1】:

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

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

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

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

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

Azure Slots 也可能值得一看。

【讨论】:

  • 嗯,我主要是在寻找可以在开发和测试中使用而不会给 Azure 带来成本的东西。但是,感谢您在这里分享的大量信息。当我开始使用 Azure 时,它​​会非常有帮助。
  • 不客气。我一直在寻求做同样的事情,我会说具有消费计划的服务最终只会向您收取使用费用,这在集成测试方面非常少 - 所以运行可能只花费您几便士.
【解决方案2】:

【讨论】:

  • 我相信这仅适用于 Azure 存储仿真。
猜你喜欢
  • 1970-01-01
  • 2012-02-07
  • 2012-10-24
  • 2011-10-13
  • 2022-08-02
  • 2018-11-20
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
相关资源
最近更新 更多