Skip to content

Commit 983b5ae

Browse files
committed
Merging changes synced from https://github.com/MicrosoftDocs/azure-docs-pr (branch live)
2 parents e675cfe + c269d8f commit 983b5ae

20 files changed

+1009
-107
lines changed

articles/aks/use-kms-etcd-encryption.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ The following limitations apply when you integrate KMS etcd encryption with AKS:
3535
* Using more than 2000 secrets in a cluster.
3636
* Bring your own (BYO) Azure Key Vault from another tenant.
3737
* Change associated Azure Key Vault model (public, private) if KMS is enabled. For [changing associated key vault mode][changing-associated-key-vault-mode], you need to disable and enable KMS again.
38-
* Stop/satrt cluster which is enabled KMS with private key vault.
38+
* Stop/start cluster which is enabled KMS with private key vault.
3939

4040
KMS supports [public key vault][Enable-KMS-with-public-key-vault] and [private key vault][Enable-KMS-with-private-key-vault] now.
4141

@@ -111,7 +111,7 @@ Create an AKS cluster using the [az aks create][az-aks-create] command with the
111111
az aks create --name myAKSCluster --resource-group MyResourceGroup --assign-identity $IDENTITY_RESOURCE_ID --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $KEY_ID
112112
```
113113

114-
### Update an exiting AKS cluster to enable KMS etcd encryption
114+
### Update an existing AKS cluster to enable KMS etcd encryption
115115

116116
Use [az aks update][az-aks-update] with the `--enable-azure-keyvault-kms`, `--azure-keyvault-kms-key-vault-network-access` and `--azure-keyvault-kms-key-id` parameters to enable KMS etcd encryption on an existing cluster.
117117

@@ -132,7 +132,7 @@ kubectl get secrets --all-namespaces -o json | kubectl replace -f -
132132
After changing the key ID (including key name and key version), you could use [az aks update][az-aks-update] with the `--enable-azure-keyvault-kms`, `--azure-keyvault-kms-key-vault-network-access` and `--azure-keyvault-kms-key-id` parameters to rotate the exitsing keys of KMS.
133133

134134
> [!WARNING]
135-
> Remember to update all secrets after key rotation. Otheriwse, the secrets will be unaccessable if the old keys are not existing or working.
135+
> Remember to update all secrets after key rotation. Otherwise, the secrets will be unaccessable if the old keys are not existing or working.
136136
137137
```azurecli-interactive
138138
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $NEW_KEY_ID
@@ -215,7 +215,7 @@ Create an AKS cluster using the [az aks create][az-aks-create] command with the
215215
az aks create --name myAKSCluster --resource-group MyResourceGroup --assign-identity $IDENTITY_RESOURCE_ID --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $KEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID
216216
```
217217

218-
### Update an exiting AKS cluster to enable KMS etcd encryption with private key vault
218+
### Update an existing AKS cluster to enable KMS etcd encryption with private key vault
219219

220220
Use [az aks update][az-aks-update] with the `--enable-azure-keyvault-kms`, `--azure-keyvault-kms-key-id`, `--azure-keyvault-kms-key-vault-network-access` and `--azure-keyvault-kms-key-vault-resource-id` parameters to enable KMS etcd encryption on an existing cluster with private key vault.
221221

articles/applied-ai-services/form-recognizer/concept-custom-neural.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ manager: nitinme
77
ms.service: applied-ai-services
88
ms.subservice: forms-recognizer
99
ms.topic: conceptual
10-
ms.date: 07/11/2022
10+
ms.date: 08/02/2022
1111
ms.author: lajanuar
1212
ms.custom: references_regions
1313
recommendations: false
@@ -61,7 +61,9 @@ Starting August 01, 2022, Form Recognizer custom neural model training will only
6161
* Southeast Asia
6262

6363
> [!TIP]
64-
> You can [copy a model](disaster-recovery.md) trained in one of the select regions listed above to **any other region** and use it accordingly.
64+
> You can [copy a model](disaster-recovery.md#copy-api-overview) trained in one of the select regions listed above to **any other region** and use it accordingly.
65+
>
66+
> Use the [**REST API**](https://westus.dev.cognitive.microsoft.com/docs/services/form-recognizer-api-2022-06-30-preview/operations/CopyDocumentModelTo) or [**Form Recognizer Studio**](https://formrecognizer.appliedai.azure.com/studio/custommodel/projects) to copy a model to another region.
6567
6668
## Best practices
6769

articles/applied-ai-services/form-recognizer/disaster-recovery.md

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ manager: nitinme
77
ms.service: applied-ai-services
88
ms.subservice: forms-recognizer
99
ms.topic: how-to
10-
ms.date: 03/15/2021
10+
ms.date: 08/02/2022
1111
ms.author: lajanuar
1212
---
1313

@@ -21,11 +21,10 @@ The Copy API enables this scenario by allowing you to copy custom models from on
2121

2222
If your app or business depends on the use of a Form Recognizer custom model, we recommend you copy your model to another Form Recognizer account in another region. If a regional outage occurs, you can then access your model in the region where it was copied.
2323

24-
## Prerequisites
25-
26-
1. Two Form Recognizer Azure resources in different Azure regions. If you don't have them, go to the Azure portal and <a href="https://portal.azure.com/#create/Microsoft.CognitiveServicesFormRecognizer" title="Create a new Form Recognizer resource" target="_blank">create a new Form Recognizer resource </a>.
27-
1. The key, endpoint URL, and subscription ID of your Form Recognizer resource. You can find these values on the resource's **Overview** tab on the Azure portal.
24+
## Prerequisites
2825

26+
1. Two Form Recognizer Azure resources in different Azure regions. If you don't have them, go to the Azure portal and [create a new Form Recognizer resource](https://portal.azure.com/#create/Microsoft.CognitiveServicesFormRecognizer).
27+
1. The key, endpoint URL, and subscription ID for your Form Recognizer resource. You can find these values on the resource's **Overview** tab in the [Azure portal](https://ms.portal.azure.com/#home).
2928

3029
## Copy API overview
3130

@@ -35,17 +34,19 @@ The process for copying a custom model consists of the following steps:
3534
1. Next you send the copy request to the source resource&mdash;the resource that contains the model to be copied with the payload (copy authorization) returned from the previous call. You'll get back a URL that you can query to track the progress of the operation.
3635
1. You'll use your source resource credentials to query the progress URL until the operation is a success. You can also query the new model ID in the target resource to get the status of the new model.
3736

38-
# [Form Recognizer v3.0 (Preview)](#tab/v30)
37+
### [Form Recognizer REST API v3.0 (Preview)](#tab/v30)
3938

4039
## Generate Copy authorization request
4140

4241
The following HTTP request gets copy authorization from your target resource. You'll need to enter the endpoint and key of your target resource as headers.
4342

44-
```
43+
```http
4544
POST https://{TARGET_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecognizer/documentModels:authorizeCopy?api-version=2022-06-30-preview
4645
Ocp-Apim-Subscription-Key: {TARGET_FORM_RECOGNIZER_RESOURCE_KEY}
4746
```
47+
4848
Request body
49+
4950
```json
5051
{
5152
"modelId": "target-model-name",
@@ -55,7 +56,7 @@ Request body
5556

5657
You'll get a `200` response code with response body that contains the JSON payload required to initiate the copy.
5758

58-
```
59+
```http
5960
{
6061
"targetResourceId": "/subscriptions/{targetSub}/resourceGroups/{targetRG}/providers/Microsoft.CognitiveServices/accounts/{targetService}",
6162
"targetResourceRegion": "region",
@@ -70,7 +71,7 @@ You'll get a `200` response code with response body that contains the JSON paylo
7071

7172
The following HTTP request starts the copy operation on the source resource. You'll need to enter the endpoint and key of your source resource as the url and header. Notice that the request URL contains the model ID of the source model you want to copy.
7273

73-
```
74+
```http
7475
POST {{source-endpoint}}formrecognizer/documentModels/{model-to-be-copied}:copyTo?api-version=2022-06-30-preview
7576
Ocp-Apim-Subscription-Key: {SOURCE_FORM_RECOGNIZER_RESOURCE_KEY}
7677
```
@@ -90,26 +91,25 @@ The body of your request is the response from the previous step.
9091

9192
You'll get a `202\Accepted` response with an Operation-Location header. This value is the URL that you'll use to track the progress of the operation. Copy it to a temporary location for the next step.
9293

93-
```
94+
```http
9495
HTTP/1.1 202 Accepted
9596
Operation-Location: https://{source-resource}.cognitiveservices.azure.com/formrecognizer/operations/{operation-id}?api-version=2022-06-30-preview
9697
```
9798

98-
99-
# [Form Recognizer v2.1 (GA)](#tab/v21)
99+
### [Form Recognizer REST API v2.1 (GA)](#tab/v21)
100100

101101
## Generate Copy authorization request
102102

103103
The following HTTP request gets copy authorization from your target resource. You'll need to enter the endpoint and key of your target resource as headers.
104104

105-
```
105+
```http
106106
POST https://{TARGET_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecognizer/v2.1/custom/models/copyAuthorization
107107
Ocp-Apim-Subscription-Key: {TARGET_FORM_RECOGNIZER_RESOURCE_KEY}
108108
```
109109

110110
You'll get a `201\Created` response with a `modelId` value in the body. This string is the ID of the newly created (blank) model. The `accessToken` is needed for the API to copy data to this resource, and the `expirationDateTimeTicks` value is the expiration of the token. Save all three of these values to a secure location.
111111

112-
```
112+
```http
113113
HTTP/1.1 201 Created
114114
Location: https://{TARGET_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecognizer/v2.1/custom/models/33f4d42c-cd2f-4e74-b990-a1aeafab5a5d
115115
{"modelId":"<your model ID>","accessToken":"<your access token>","expirationDateTimeTicks":637233481531659440}
@@ -119,7 +119,7 @@ Location: https://{TARGET_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecognizer/v2.1
119119

120120
The following HTTP request starts the Copy operation on the source resource. You'll need to enter the endpoint and key of your source resource as headers. Notice that the request URL contains the model ID of the source model you want to copy.
121121

122-
```
122+
```http
123123
POST https://{SOURCE_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecognizer/v2.1/custom/models/<your model ID>/copy HTTP/1.1
124124
Ocp-Apim-Subscription-Key: {SOURCE_FORM_RECOGNIZER_RESOURCE_KEY}
125125
```
@@ -136,20 +136,16 @@ The body of your request needs to have the following format. You'll need to ente
136136

137137
You'll get a `202\Accepted` response with an Operation-Location header. This value is the URL that you'll use to track the progress of the operation. Copy it to a temporary location for the next step.
138138

139-
```
139+
```http
140140
HTTP/1.1 202 Accepted
141141
Operation-Location: https://{SOURCE_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecognizer/v2.1/custom/models/eccc3f13-8289-4020-ba16-9f1d1374e96f/copyresults/02989ba8-1296-499f-aaf4-55cfff41b8f1
142142
```
143143

144144
-----
145145

146-
147-
148146
> [!NOTE]
149147
> The Copy API transparently supports the [AEK/CMK](https://msazure.visualstudio.com/Cognitive%20Services/_wiki/wikis/Cognitive%20Services.wiki/52146/Customer-Managed-Keys) feature. This doesn't require any special treatment, but note that if you're copying between an unencrypted resource to an encrypted resource, you need to include the request header `x-ms-forms-copy-degrade: true`. If this header is not included, the copy operation will fail and return a `DataProtectionTransformServiceError`.
150148
151-
152-
153149
### Common errors
154150

155151
|Error|Resolution|
@@ -159,34 +155,32 @@ Operation-Location: https://{SOURCE_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecog
159155

160156
## Track Copy progress
161157

162-
# [Form Recognizer v3.0 (Preview)](#tab/v30)
158+
### [Form Recognizer v3.0 (Preview)](#tab/v30)
163159

164160
```
165161
GET https://{source-resource}.cognitiveservices.azure.com/formrecognizer/operations/{operation-id}?api-version=2022-06-30-preview
166162
Ocp-Apim-Subscription-Key: {SOURCE_FORM_RECOGNIZER_RESOURCE_KEY}
167163
```
168164

169-
# [Form Recognizer v2.1 (GA)](#tab/v21)
165+
### [Form Recognizer v2.1 (GA)](#tab/v21)
170166

171167
Track your progress by querying the **Get Copy Model Result** API against the source resource endpoint.
172168

173-
```
169+
```http
174170
GET https://{SOURCE_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecognizer/v2.1/custom/models/eccc3f13-8289-4020-ba16-9f1d1374e96f/copyresults/02989ba8-1296-499f-aaf4-55cfff41b8f1 HTTP/1.1
175171
Ocp-Apim-Subscription-Key: {SOURCE_FORM_RECOGNIZER_RESOURCE_KEY}
176172
```
177173

178174
Your response will vary depending on the status of the operation. Look for the `"status"` field in the JSON body. If you're automating this API call in a script, we recommend querying the operation once every second.
179175

180-
```
176+
```http
181177
HTTP/1.1 200 OK
182178
Content-Type: application/json; charset=utf-8
183179
{"status":"succeeded","createdDateTime":"2020-04-23T18:18:01.0275043Z","lastUpdatedDateTime":"2020-04-23T18:18:01.0275048Z","copyResult":{}}
184180
```
185181

186182
-----
187183

188-
189-
190184
### Common errors
191185

192186
|Error|Resolution|
@@ -196,19 +190,18 @@ Content-Type: application/json; charset=utf-8
196190
|"errors":[{"code":"DataProtectionTransformServiceError",<br>"message":"Data transfer request isn't allowed <br>as it downgrades to a less secure data protection scheme. Refer documentation or contact your service administrator <br>for details."}] | Occurs when copying between an `AEK` enabled resource to a non `AEK` enabled resource. To allow copying encrypted model to the target as unencrypted specify `x-ms-forms-copy-degrade: true` header with the copy request.|
197191
|"errors":[{"code":"ResourceResolverError",<br>"message":"Couldn't fetch information for Cognitive resource with ID '...'. Ensure the resource is valid and exists in the specified region 'westus2'.."}] | Indicates that the Azure resource indicated by the `targetResourceId` isn't a valid Cognitive resource or doesn't exist. Verify and reissue the copy request to resolve this issue.|
198192

199-
200193
### [Optional] Track the target model ID
201194

202195
You can also use the **Get Custom Model** API to track the status of the operation by querying the target model. Call this API using the target model ID that you copied down in the first step.
203196

204-
```
197+
```http
205198
GET https://{TARGET_FORM_RECOGNIZER_RESOURCE_ENDPOINT}/formrecognizer/v2.1/custom/models/33f4d42c-cd2f-4e74-b990-a1aeafab5a5d HTTP/1.1
206199
Ocp-Apim-Subscription-Key: {TARGET_FORM_RECOGNIZER_RESOURCE_KEY}
207200
```
208201

209202
In the response body, you'll see information about the model. Check the `"status"` field for the status of the model.
210203

211-
```
204+
```http
212205
HTTP/1.1 200 OK
213206
Content-Type: application/json; charset=utf-8
214207
{"modelInfo":{"modelId":"33f4d42c-cd2f-4e74-b990-a1aeafab5a5d","status":"ready","createdDateTime":"2020-02-26T16:59:28Z","lastUpdatedDateTime":"2020-02-26T16:59:34Z"},"trainResult":{"trainingDocuments":[{"documentName":"0.pdf","pages":1,"errors":[],"status":"succeeded"},{"documentName":"1.pdf","pages":1,"errors":[],"status":"succeeded"},{"documentName":"2.pdf","pages":1,"errors":[],"status":"succeeded"},{"documentName":"3.pdf","pages":1,"errors":[],"status":"succeeded"},{"documentName":"4.pdf","pages":1,"errors":[],"status":"succeeded"}],"errors":[]}}

0 commit comments

Comments
 (0)