Local cloud stack for Azure similar to LocalStack for AWS?
Is there a mocking framework for Azure similar to LocalStack for AWS? Please understand that I am not looking for a SDK mock but a resource stack mock.
So much so, that I could replace the configurations of my local Azure stack with actual Azure resources in my project and the functionality would remain just the same. Quite like how it works with Localstack.
I have found Azure Cloud Fabric to come closest to this, but it is tightly coupled with Visual Studio IDE.
Although there is not an equivalent of LocalStack for Azure, Microsoft publish three emulators you can run locally to help with integration testing:
Azure Functions Core Tools, a local version of the Azure Functions Runtime, allowing you to execute your Azure functions locally without deploying them.
Azure Storage Emulator, a local emulator of Azure storage.
Cosmos DB Emulator, a local emulator of CosmosDB.
The above three can get you a lot of integration test coverage, however since Azure Functions, AWS Lambda and most modern web stacks even non-serverless have moved to consuming services rather than just consuming software modules, the only way to have complete parity between integration test and production environments is to automate the creation and tear-down of real, paid for services.
A recipe for End to End/Integration testing on Azure:
- Use Azure DevOps Piplines to automate the entire CI process
- Add tasks to the pipeline for creating and tearing down (real) text fixture resources with persistent state (databases, file storage etc) using the Azure command line tools.
- Provide the test application access to real, stateless services (such as Azure Cognitive Services etc.) as you would for production.
- Use Azure Variable Groups to store names, connection strings etc. for the test fixture resources. You can store a different set for production in a different group, allowing easy switching between them in YAML for different stages. These variables can also be templated in their own YAML file.
- Azure Functions Core Tools 에뮬레이터를 사용하여 배포하는 대신 CI 에이전트 내에서 기능을 호스팅하고 실행할 수 있으며 유닛 테스트 프레임워크에서 요청을 제공합니다.기능은 에뮬레이트되지 않은 서비스를 테스트 고정 장치로 사용합니다.
- 또는 테스트 단계를 위한 배포를 만들고, API를 실제로 게시한 다음, 원시 HTTP 요청을 만드는 API 테스트를 작성하거나, 이를 Selenium 웹 드라이버가 UI/프론트엔드를 테스트하는 백엔드로 사용합니다.
위의 접근 방식은 실제 서비스에 의존하여 에뮬레이트된 서비스가 아닌 실제 서비스를 제공하고 프로덕션에서 구현하는 것과 매우 유사한 것을 테스트합니다.테스트를 실행할 때마다 사용료가 발생합니다.문제가 발생하면 먼저 파이프라인에서 장치 테스트 및 에뮬레이터 통합 테스트를 사용하고 프로덕션으로 이동하기 전에만 수행하는 이 수준의 테스트에 대해 인적 검사/다른 파이프라인을 추가합니다.
Azure Slots도 조회할 가치가 있습니다.
현재 https://github.com/azure/azurite 에서 도커 https://hub.docker.com/_/microsoft-azure-storage-azurite 도 제공하고 있습니다.
언급URL : https://stackoverflow.com/questions/53888830/local-cloud-stack-for-azure-similar-to-localstack-for-aws
'source' 카테고리의 다른 글
PUT의 Azure BLOB 스토리지 문서에서 "404 리소스를 찾을 수 없음" (0) | 2023.04.27 |
---|---|
WPF ListView의 헤더를 숨기려면 어떻게 해야 합니까? (0) | 2023.04.27 |
VBA를 사용하여 다른 시트에서 값 가져오기 (0) | 2023.04.27 |
내 앱이 아이폰 시뮬레이터에서 실행 중인지 프로그래밍 방식으로 확인하려면 어떻게 해야 합니까? (0) | 2023.04.27 |
Azure의 페더레이션 인증 (0) | 2023.04.27 |