The purpose of this project is to provide an basic set of ADO pipelines to setup an AzSearch project which is indexing json files on Azure Blob storage.
A sample configuration / data is part of the project for validation. The AzSearch configuration is easy to extend by customizing the search-schema files and extend the token logic as needed. Advanced Search features can be added using the same pattern.
The AzSearch CI pipeline is deloying a static file but can be extended to do data preperation tasks as well i.e. using python scripts or other tools
- Create ADO project using Git - Create project
- Import this Git repo - Import Repo
- Add ADO Task ReplaceTokens to your ADO Project ReplaceTokens
- Create a AzureServiceConnection in ADO - Add Azure RM connection
-
Create the Azure-IaC pipeline in ADO referencing the YAML
\azure-pipelines\azSearch-IaC.yaml
file in the repo -
Set minimum required variables in
azSearch-IaC.yaml
:Variable Describtion envInstanceName
[8 chars] needs to be unique. Will be used to compose the azure resource names azureServiceConnection
AzureServiceConnection name azureLocation
your Azure default location -
Run the IaC pipeline. Verify in your Azure portal that AzSearch, Storage and KeyVault has been created.
- Create a Variable Group in ADO
> Pipelines > Library > Add Variable Group
- Name :
AzSearchSecrets
Note: Changing the name requires to update references in the CD and CI pipeline - Bind the created KeyVault to the Variable Group
- Add the Secrets from KeyVault
-
Create the Azure-IaC pipeline in ADO referencing the YAML
\azure-pipelines\azSearch-CD.yaml
file in the repo -
Set minimum required variables in
azSearch-CD.yaml
:Variable Describtion appInstanceName
needs to match IaC envInstanceName -
Run the CD pipeline. Verify in your Azure portal that AzSearch Datasource, Index and Indexer has been created
-
Create the Azure-IaC pipeline in ADO referencing the YAML
\azure-pipelines\azSearch-CI.yaml
file in the repo -
Set minimum required variables in
azSearch-CI.yaml
:Variable Describtion appInstanceName
needs to match IaC envInstanceName azureServiceConnection
AzureServiceConnection name -
Run the CI pipeline. Verify in your Azure portal that the sample tx.json has been copied to the storage container and the AzSerach Indexer has been started. Test out the search index.