You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Disclaimer: Please note, this example of solution `it is not an official solution guide`. For official guidance, support, or more detailed information, please refer to Microsoft's official documentation or contact Microsoft directly: [Microsoft Sales and Support](https://support.microsoft.com/contactus?ContactUsExperienceEntryPointAssetId=S.HP.SMC-HOME)
16
16
17
-
18
-
For this solution, you can set up your infrastructure using terraform:
19
-
20
-
[Infrastructure via Terraform](./terraform/): This approach focuses on `setting up the required infrastructure via Terraform`. It allows for source control of not only the solution code, connections, and setups `but also the infrastructure itself`.
- An `Azure subscription is required`. All other resources, including instructions for creating a Resource Group, are provided in this template.
30
24
- If you choose to use the Terraform approach, please ensure that:
31
25
-[Terraform is installed on your local machine](https://developer.hashicorp.com/terraform/tutorials/azure-get-started/install-cli#install-terraform).
32
26
-[Install the Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) to work with both Terraform and Azure commands.
33
27
34
-
35
28
## Where to start?
36
29
37
30
Please follow as described below:
38
31
39
-
1. Please follow the [Terraform guide](./terraform/README.md) to deploy the necessary Azure resources for the workshop.
40
-
2. Then, follow each [each section](#content).
32
+
- If you're choosing the deploying the `infrastructure via Azure Portal`:
33
+
1. Go through [each section](#content)`from the start`.
34
+
- If you're choosing the [Infrastructure via Terraform](./terraform/) approach:
35
+
1. Please follow the [Terraform guide](./terraform/README.md) to deploy the necessary Azure resources for the workshop.
36
+
2. Then, follow each [each section](#content) but `skip creating any resources that you've already deployed with Terraform.`.
37
+
38
+
> [!NOTE]
39
+
> About [Infrastructure via Terraform](./terraform/), Terraform is an infrastructure as code (IaC) tool that allows you to define and provision your infrastructure using a high-level configuration language. This approach `enables source control of the infrastructure itself, allowing you to manage not only the solution code but also the connections and configurations`. By using Terraform, you can ensure a consistent and reproducible environment for your deployments, automate infrastructure provisioning, and maintain version control over your infrastructure changes. Also, Microsoft provides other IaC tools such as Bicep and ARM templates. Bicep is a domain-specific language that uses declarative syntax to deploy Azure resources, offering a concise and easy-to-read alternative to JSON-based ARM templates. ARM templates are JSON files that define the infrastructure and configuration for your Azure solution. These tools provide flexibility and options to suit different preferences and requirements for managing Azure resources.
-[Solution Overview](./instructions/0_Overview/README.md): Understand the core components and capabilities.
48
+
-[Step 1: Creating a Resource Group in the Azure Portal](./instructions/1_CreateRG.md)
49
+
-[Step 2: Set Up Azure Blob Storage](./instructions/2_CreateBlobStorage.md)
50
+
-[Step 3: Set Up AI Services](./instructions/3_SetupAIServices.md)
51
+
-[Step 4: Create a Log Analytics workspace in Azure](./instructions/4_CreateLogAnalyticsWS.md)
52
+
-[Step 5: Setup the Key Vault and Store secrets/keys](./instructions/5_SetupKeyVault.md)
53
+
54
+
## Important Considerations for Production Environment
55
+
56
+
-**Public Network Site**: This example is based on a public network site and is intended for demonstration purposes only. It showcases how various Azure resources can work together to achieve the desired result.
57
+
-**Private Network Configuration**: For enhanced security, consider configuring your Azure resources to operate within a private network. This can be achieved using Azure Virtual Network (VNet) to isolate your resources and control inbound and outbound traffic. Implementing private endpoints for services like Azure Blob Storage and Azure Functions can further secure your data by restricting access to your VNet.
58
+
-**Security**: Ensure that you implement appropriate security measures when deploying this solution in a production environment. This includes:
59
+
-**Securing Access**: Use Azure Entra ID (formerly known as Azure Active Directory or Azure AD) for authentication and role-based access control (RBAC) to manage permissions.
60
+
-**Managing Secrets**: Store sensitive information such as connection strings and API keys in Azure Key Vault.
61
+
-**Data Encryption**: Enable encryption for data at rest and in transit to protect sensitive information.
62
+
-**Scalability**: While this example provides a basic setup, you may need to scale the resources based on your specific requirements. Azure services offer various scaling options to handle increased workloads. Consider using:
63
+
-**Auto-scaling**: Configure auto-scaling for Azure Functions and other services to automatically adjust based on demand.
64
+
-**Load Balancing**: Use Azure Load Balancer or Application Gateway to distribute traffic and ensure high availability.
65
+
-**Cost Management**: Monitor and manage the costs associated with your Azure resources. Use Azure Cost Management and Billing to track usage and optimize resource allocation.
66
+
-**Compliance**: Ensure that your deployment complies with relevant regulations and standards. Use Azure Policy to enforce compliance and governance policies across your resources.
67
+
-**Disaster Recovery**: Implement a disaster recovery plan to ensure business continuity in case of failures. Use Azure Site Recovery and backup solutions to protect your data and applications.
<summary><b>List of references</b> (Click to expand)</summary>
14
+
15
+
-[Quickstart: Azure AI Vision v3.2 GA Read](https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/quickstarts-sdk/client-library?tabs=windows%2Cvisual-studio&pivots=programming-language-python)
16
+
-[Quickstart: Azure Blob Storage client library for Python](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python?tabs=managed-identity%2Croles-azure-portal%2Csign-in-azure-cli&pivots=blob-storage-quickstart-scratch)
17
+
-[Create a function in Azure that's triggered by Blob storage](https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-storage-blob-triggered-function)
18
+
-[Quickstart: Azure Key Vault secret client library for Python](https://learn.microsoft.com/en-us/azure/key-vault/secrets/quick-create-python?tabs=azure-cli)
19
+
-[Azure Application Insights SDK for Python](https://learn.microsoft.com/en-us/python/api/overview/azure/application-insights?view=azure-python)
20
+
-[Create a Log Analytics workspace](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/quick-create-workspace?tabs=azure-portal)
21
+
-[Quickstart: Use the Azure portal to create a virtual network](https://learn.microsoft.com/en-us/azure/virtual-network/quick-create-portal)
22
+
23
+
</details>
24
+
25
+
<details>
26
+
<summary><b>List of Contents</b> (Click to expand)</summary>
27
+
28
+
-[Workflow](#workflow)
29
+
-[Architecture: Components and Interactions](#architecture-components-and-interactions)
30
+
31
+
</details>
32
+
33
+
## Workflow
34
+
35
+
```mermaid
36
+
graph TD
37
+
A[Upload File to Blob Storage] -->|Trigger| B[Azure Function]
38
+
B --> C[Read Key Table from Blob Storage]
39
+
B --> D[Read Input File from Blob Storage]
40
+
C --> E[Process Data]
41
+
D --> E[Process Data]
42
+
E --> F[Generate Summary]
43
+
F --> G[Save Summary to Output Container]
44
+
G --> H[Summary Available for Download]
45
+
46
+
subgraph Azure Resources
47
+
A
48
+
B
49
+
C
50
+
D
51
+
G
52
+
end
53
+
54
+
subgraph Processing Steps
55
+
E
56
+
F
57
+
H
58
+
end
59
+
```
60
+
61
+
62
+
1.**Upload File to Blob Storage**: Users upload files to the input container in Azure Blob Storage.
63
+
2.**Azure Function**: The Azure Function is triggered by the file upload.
64
+
3.**Read Key Table from Blob Storage**: The function reads the key table from the input container.
65
+
4.**Read Input File from Blob Storage**: The function reads the uploaded input file from the input container.
66
+
5.**Process Data**: The function processes the data by searching for key values and extracting relevant information.
67
+
6.**Generate Summary**: The function generates a summary based on the processed data.
68
+
7.**Save Summary to Output Container**: The function saves the summary to the output container in Azure Blob Storage.
69
+
8.**Summary Available for Download**: The summary is available for download from the output container.
> An Azure `Resource Group` is a `container that holds related resources for an Azure solution`.
13
+
> It can include all the resources for the solution or only those you want to manage as a group.
14
+
> Typically, resources that share the same lifecycle are added to the same resource group, allowing for easier deployment, updating, and deletion as a unit.
15
+
> Resource groups also store metadata about the resources, and you can apply access control, locks, and tags to them for better management and organization.
0 commit comments