Skip to content

Commit 47d6e48

Browse files
authored
Merge pull request #1501 from MicrosoftDocs/release-azure-search
Release azure search
2 parents 28ba6fd + 6771b97 commit 47d6e48

File tree

56 files changed

+3268
-578
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+3268
-578
lines changed

articles/search/cognitive-search-attach-cognitive-services.md

Lines changed: 99 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,46 +8,122 @@ ms.service: azure-ai-search
88
ms.custom:
99
- ignite-2023
1010
ms.topic: how-to
11-
ms.date: 10/21/2024
11+
ms.date: 11/19/2024
1212
---
1313

1414
# Attach an Azure AI multi-service resource to a skillset in Azure AI Search
1515

16-
When configuring an optional [AI enrichment pipeline](cognitive-search-concept-intro.md) in Azure AI Search, you can enrich a small number of documents free of charge, limited to 20 transactions daily per index. For larger and more frequent workloads, you should attach a billable [**Azure AI multi-service resource**](/azure/ai-services/multi-service-resource?pivots=azportal).
16+
When configuring an optional [AI enrichment pipeline](cognitive-search-concept-intro.md) in Azure AI Search, you can enrich a small number of documents free of charge, limited to 20 transactions daily per index. For larger and more frequent workloads, you should attach a billable [Azure AI multi-service resource](/azure/ai-services/multi-service-resource?pivots=azportal).
1717

18-
A multi-service account provides a collection of Azure AI services, rather than individual services. The account has an associated [resource key](/azure/ai-services/authentication#authenticate-with-a-multi-service-resource-key). This key is specified in an Azure AI Search [**skillset**](/rest/api/searchservice/skillsets/create) and allows Microsoft to charge you for using these services:
18+
A multi-service account provides a collection of Azure AI services, rather than individual services. Providing an account in an Azure AI Search [skillset](/rest/api/searchservice/skillsets/create) allows Microsoft to charge you for using these services:
1919

2020
+ [Azure AI Vision](/azure/ai-services/computer-vision/overview) for image analysis, optical character recognition (OCR), and multimodal text and image embedding.
2121
+ [Azure AI Language](/azure/ai-services/language-service/overview) for language detection, entity recognition, sentiment analysis, and key phrase extraction
2222
+ [Azure AI Speech](/azure/ai-services/speech-service/overview) for speech to text and text to speech
2323
+ [Azure AI Translator](/azure/ai-services/translator/translator-overview) for machine text translation
2424

25-
The key is used for billing, not connections. You must provide a key in the skillset even if you're using other mechanisms, such as role assignments and managed identities, on the connection.
25+
You must provide connection information to the Azure AI multi-resource in the skillset. Azure AI Search doesn't use the connection for skillset workloads, but it does use the connection to access the billing meters on the resource. As such, your Azure AI services account is used for billing, not skills processing. Azure AI Search uses separate dedicated resources for skills processing.
26+
27+
You can use a key on the connection, or implement a keyless approach that's currently in preview.
2628

2729
> [!TIP]
2830
> Azure provides infrastructure for you to monitor billing and budgets. For more information about monitoring Azure AI services, see [Plan and manage costs for Azure AI services](/azure/ai-services/plan-manage-costs).
2931
30-
## Get the resource key for an Azure AI multi-service account
32+
## Prerequisites
3133

32-
1. Sign in to the [Azure portal](https://portal.azure.com).
34+
+ Connectivity over a public endpoint, unless your search service meets the creation date, tier, and region requirements for private connections to an Azure AI multi-service account.
3335

34-
1. Create an [Azure AI multi-service resource](/azure/ai-services/multi-service-resource?pivots=azportal) in the [same region](#same-region-requirement) as your search service.
36+
> [!NOTE]
37+
> If your Azure AI resource is configured to use a private endpoint, Azure AI Search can connect [using a shared private link](search-indexer-howto-access-private.md) if the search service was created after April 3, 2024 and is in a region that provides higher capacity computing power and is on a supported tier. For more information, see the requirements for using shared private links.
3538
36-
1. Get the resource key from the **Resources** > **Keys and endpoint** page.
39+
## Bill through a keyless connection
40+
41+
[!INCLUDE [Feature preview](./includes/previews/preview-generic.md)]
42+
43+
Using the Azure portal or newer preview REST APIs and beta SDK packages, you can attach an Azure AI multi-service resource using a managed identity and permissions. The advantage of this approach is that billing is keyless and has no dependency on regions.
44+
45+
1. [Configure Azure AI Search to use a managed identity](search-howto-managed-identities-data-sources.md).
46+
47+
1. On your Azure AI multi-service resource, [assign the identity](/azure/role-based-access-control/role-assignments-portal) to the **Cognitive Services User** role.
48+
49+
1. Using the Azure portal, or the [Skillset 2024-11-01-preview REST API](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-11-01-preview&preserve-view=true), or an Azure SDK beta package that provides the syntax, configure a skillset to use an identity:
50+
51+
+ The managed identity used on the connection belongs to the search service.
52+
+ The identity can be system managed or user assigned.
53+
+ The identity must have **Cognitive Services User** permissions on the Azure AI resource.
54+
+ `@odata.type` is always `#Microsoft.Azure.Search.AIServicesByIdentity`.
55+
+ `subdomainUrl` is the endpoint of your Azure AI multi-service resource. It can be in [any region that's jointly supported](search-region-support.md#azure-public-regions) by Azure AI Search and Azure AI services.
56+
57+
As with keys, the details you provide about the Azure AI Services resource are used for billing, not connections. All API requests made by Azure AI Search to Azure AI services for built-in skills processing continue to be internal and managed by Microsoft.
58+
59+
### Example: system-assigned managed identity
60+
61+
Identity is set to null.
62+
63+
```http
64+
POST https://[service-name].search.windows.net/skillsets/[skillset-name]?api-version=2024-11-01-Preview 
65+
66+
{ 
67+
    "name": "my skillset name", 
68+
    "skills":  
69+
    [ 
70+
      // skills definition goes here
71+
    ], 
72+
    "cognitiveServices": { 
73+
        "@odata.type": "#Microsoft.Azure.Search.AIServicesByIdentity", 
74+
        "description": "", 
75+
        "subdomainUrl": “https://[subdomain-name].cognitiveservices.azure.com", 
76+
      "identity": null
77+
    } 
78+
}
79+
```
3780

38-
## Add the resource key to a skillset
81+
### Example: user-assigned managed identity
3982

40-
You can use the Azure portal, REST API, or an Azure SDK to add the key to a skillset.
83+
Identity is set to the resource ID of the user-assigned managed identity. To find an existing user-assigned managed identity, see [Manage user-assigned managed identities](/entra/identity/managed-identities-azure-resources/how-manage-user-assigned-managed-identities).
4184

42-
If you leave the property unspecified, your search service attempts to use the free enrichments available to your indexer on a daily basis. Execution of billable skills stops at 20 transactions per indexer invocation and a "Time Out" message appears in indexer execution history.
85+
For a user-assigned managed identity, set the `@odata.type` and the `userAssignedIdentity` properties.
86+
87+
```http
88+
POST https://[service-name].search.windows.net/skillsets/[skillset-name]?api-version=2024-11-01-Preview 
89+
90+
{ 
91+
    "name": "my skillset name", 
92+
    "skills":  
93+
    [ 
94+
      // skills definition goes here
95+
    ], 
96+
    "cognitiveServices": { 
97+
        "@odata.type": "#Microsoft.Azure.Search.AIServicesByIdentity", 
98+
        "description": "", 
99+
        "subdomainUrl": “https://[subdomain-name].cognitiveservices.azure.com", 
100+
        "identity": {  
101+
            "@odata.type":  "#Microsoft.Azure.Search.DataUserAssignedIdentity",  
102+
            "userAssignedIdentity": ""/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"" 
103+
    }
104+
}
105+
}
106+
```
107+
108+
## Bill through a resource key
109+
110+
Azure AI Search can also charge for transaction using the Azure AI multi-service resource key. This approach is the default and is generally available. You can use the Azure portal, REST API, or an Azure SDK to add the key to a skillset.
111+
112+
You only need to add the key, not the subdomain or endpoint. If you leave the `cognitiveServices` property unspecified, your search service attempts to use the free enrichments available to your indexer on a daily basis. Execution of billable skills stops at 20 transactions per indexer invocation and a "Time Out" message appears in indexer execution history.
43113

44114
### [**Azure portal**](#tab/portal)
45115

46-
Add the key to a skillset definition:
116+
1. Sign in to the [Azure portal](https://portal.azure.com).
117+
118+
1. Create an [Azure AI multi-service resource](/azure/ai-services/multi-service-resource?pivots=azportal) in the [same region](#same-region-requirement) as your search service.
119+
120+
1. Get the resource key from the **Resources** > **Keys and endpoint** page.
121+
122+
1. Add the key to a skillset definition:
47123

48-
+ If using an [Import data wizard](search-import-data-portal.md), create or select the Azure AI account. The wizard adds the resource key to your skillset definition.
124+
+ If using an [Import data wizard](search-import-data-portal.md), create or select the Azure AI account. The wizard adds the resource key to your skillset definition.
49125

50-
+ For a new or existing skillset, provide the key in skillset definition.
126+
+ For a new or existing skillset, provide the key in skillset definition.
51127

52128
:::image type="content" source="media/cognitive-search-attach-cognitive-services/attach-existing2.png" alt-text="Screenshot of the key page." border="true":::
53129

@@ -187,15 +263,21 @@ Enrichments are billable operations. If you no longer need to call Azure AI serv
187263
188264
## How the key is used
189265
190-
Key-based billing applies when API calls to Azure AI services resources exceed 20 API calls per indexer, per day. You can [reset the indexer](search-howto-run-reset-indexers.md) to reset the API count.
266+
Billing goes into effect when API calls to Azure AI services resources exceed 20 API calls per indexer, per day. You can [reset the indexer](search-howto-run-reset-indexers.md) to reset the API count.
191267
192-
The key is used for billing, but not for enrichment operations' connections. For connections, a search service [connects over the internal network](search-security-overview.md#internal-traffic) to an Azure AI services resource that's located in the [same physical region](search-region-support.md). Most regions that offer Azure AI Search also offer other Azure AI services such as Language. If you attempt AI enrichment in a region that doesn't have both services, you'll see this message: "Provided key isn't a valid CognitiveServices type key for the region of your search service."
268+
Keyless and key-based connections are used for billing, but not for enrichment operations' connections. For connections, a search service [connects over the internal network](search-security-overview.md#internal-traffic) to an Azure AI services resource that's located in the [same physical region](search-region-support.md). Most regions that offer Azure AI Search also offer other Azure AI services such as Language. If you attempt AI enrichment in a region that doesn't have both services, you'll see this message: "Provided key isn't a valid CognitiveServices type key for the region of your search service."
193269
194-
Currently, billing for [built-in skills](cognitive-search-predefined-skills.md) requires a public connection from Azure AI Search to another Azure AI service. Disabling public network access breaks billing. If disabling public networks is a requirement, you can configure a [Custom Web API skill](cognitive-search-custom-skill-interface.md) implemented with an [Azure Function](cognitive-search-create-custom-skill-example.md) that supports [private endpoints](/azure/azure-functions/functions-create-vnet) and add the [Azure AI services resource to the same VNET](/azure/ai-services/cognitive-services-virtual-networks). In this way, you can call Azure AI services resource directly from the custom skill using private endpoints.
270+
Indexers can be configured to run in a [private execution environment](search-howto-run-reset-indexers.md#indexer-execution) for dedicated processing using just the search nodes of your own search service. Even if you're using private execution environment, Azure AI Search still uses its internally provisioned Azure AI multiservice resource to perform all skill enrichments.
195271
196272
> [!NOTE]
197273
> Some built-in skills are based on non-regional Azure AI services (for example, the [Text Translation Skill](cognitive-search-skill-text-translation.md)). Using a non-regional skill means that your request might be serviced in a region other than the Azure AI Search region. For more information on non-regional services, see the [Azure AI services product by region](https://aka.ms/allinoneregioninfo) page.
198274
275+
### Public connection requirements
276+
277+
Depending on when your search service was created, and its tier and region, billing for [built-in skills](cognitive-search-predefined-skills.md) can require a public connection from Azure AI Search to Azure AI multi-service. Disabling public network access breaks billing in some scenarios. Review the requirements for [connections through a shared private link](search-indexer-howto-access-private.md) to determine whether your search service requires a public connection.
278+
279+
If you can't use the public network, you can configure a [Custom Web API skill](cognitive-search-custom-skill-interface.md) implemented with an [Azure Function](cognitive-search-create-custom-skill-example.md) that supports [private endpoints](/azure/azure-functions/functions-create-vnet) and add the [Azure AI services resource to the same VNET](/azure/ai-services/cognitive-services-virtual-networks). In this way, you can call Azure AI services resource directly from the custom skill using private endpoints.
280+
199281
### Key requirements special cases
200282
201283
[Custom Entity Lookup](cognitive-search-skill-custom-entity-lookup.md) is metered by Azure AI Search, not Azure AI services, but it requires an Azure AI multi-service resource key to unlock transactions beyond 20 per indexer, per day. For this skill only, the resource key unblocks the number of transactions, but is unrelated to billing.

articles/search/cognitive-search-predefined-skills.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Skills that call the Azure AI are billed at the pay-as-you-go rate when you [att
4343
| [Microsoft.Skills.Vision.ImageAnalysisSkill](cognitive-search-skill-image-analysis.md) | This skill uses an image detection algorithm to identify the content of an image and generate a text description. | Azure AI services ([pricing](https://azure.microsoft.com/pricing/details/cognitive-services/)) |
4444
| [Microsoft.Skills.Vision.OcrSkill](cognitive-search-skill-ocr.md) | Optical character recognition. | Azure AI services ([pricing](https://azure.microsoft.com/pricing/details/cognitive-services/)) |
4545
| [Microsoft.Skills.Vision.VectorizeSkill](cognitive-search-skill-vision-vectorize.md) | Multimodal image and text vectorization. | Azure AI services ([pricing](https://azure.microsoft.com/pricing/details/cognitive-services/)) |
46+
| [Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill](cognitive-search-skill-document-intelligence-layout.md) | Accelerate information extraction from documents. | Azure AI services ([pricing](https://azure.microsoft.com/pricing/details/cognitive-services/)) |
4647

4748
## Azure OpenAI skills
4849

0 commit comments

Comments
 (0)