Skip to content

Commit 12553fb

Browse files
authored
Merge pull request #289463 from MicrosoftDocs/main
10/30 11:00 AM IST Publish
2 parents 0ddc956 + e097198 commit 12553fb

24 files changed

+344
-283
lines changed

articles/api-management/import-and-publish.md

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ author: dlepow
66
ms.service: azure-api-management
77
ms.custom: mvc, devdivchpfy22, engagement-fy23
88
ms.topic: tutorial
9-
ms.date: 06/15/2023
9+
ms.date: 10/29/2024
1010
ms.author: danlep
1111

1212
---
1313
# Tutorial: Import and publish your first API
1414

1515
[!INCLUDE [api-management-availability-all-tiers](../../includes/api-management-availability-all-tiers.md)]
1616

17-
This tutorial shows how to import an OpenAPI specification backend API in JSON format into Azure API Management. Microsoft provides the backend API used in this example, and hosts it on Azure at `https://conferenceapi.azurewebsites.net`.
17+
This tutorial shows how to import an OpenAPI specification backend API in JSON format into Azure API Management. For this example, you import the open source [Petstore API](https://petstore3.swagger.io/).
1818

1919
Once you import the backend API into API Management, your API Management API becomes a façade for the backend API. You can customize the façade to your needs in API Management without touching the backend API. For more information, see [Transform and protect your API](transform-api.md).
2020

@@ -26,7 +26,7 @@ In this tutorial, you learn how to:
2626
2727
After import, you can manage the API in the Azure portal.
2828

29-
:::image type="content" source="media/import-and-publish/created-api.png" alt-text="Screenshot of a new API in API Management in the portal.":::
29+
:::image type="content" source="media/import-and-publish/created-api.png" lightbox="media/import-and-publish/created-api.png" alt-text="Screenshot of a new API in API Management in the portal.":::
3030

3131
## Prerequisites
3232

@@ -51,21 +51,18 @@ This section shows how to import and publish an OpenAPI specification backend AP
5151

5252
|Setting|Value|Description|
5353
|-------|-----|-----------|
54-
|**OpenAPI specification**|*https:\//conferenceapi.azurewebsites.net?format=json*|Specifies the backend service implementing the API and the operations that the API supports. <br/><br/>The backend service URL appears later as the **Web service URL** on the API's **Settings** page.<br/><br/>After import, you can add, edit, rename, or delete operations in the specification. |
54+
|**OpenAPI specification**|*https:\//petstore3.swagger.io/api/v3/openapi.json*|Specifies the backend service implementing the API and the operations that the API supports. <br/><br/>The backend service URL appears later as the **Web service URL** on the API's **Settings** page.<br/><br/>After import, you can add, edit, rename, or delete operations in the specification. |
5555
| **Include query parameters in operation templates** | Selected (default) | Specifies whether to import required query parameters in the specification as template parameters in API Management. |
5656
|**Display name**|After you enter the OpenAPI specification URL, API Management fills out this field based on the JSON.|The name displayed in the [developer portal](api-management-howto-developer-portal.md).|
5757
|**Name**|After you enter the OpenAPI specification URL, API Management fills out this field based on the JSON.|A unique name for the API.|
5858
|**Description**|After you enter the OpenAPI specification URL, API Management fills out this field based on the JSON.|An optional description of the API.|
5959
|**URL scheme**|**HTTPS**|Which protocols can access the API.|
60-
|**API URL suffix**|*conference*|The suffix appended to the base URL for the API Management service. API Management distinguishes APIs by their suffix, so the suffix must be unique for every API for a given publisher.|
60+
|**API URL suffix**|*petstore*|The suffix appended to the base URL for the API Management service. API Management distinguishes APIs by their suffix, so the suffix must be unique for every API for a given publisher.|
6161
|**Tags**| |Tags for organizing APIs for searching, grouping, or filtering.|
62-
|**Products**|**Unlimited**|Association of one or more APIs. Each API Management instance comes with two sample products: **Starter** and **Unlimited**. You publish an API by associating the API with a product, **Unlimited** in this example.<br/><br/> You can include several APIs in a product and offer product [subscriptions](api-management-subscriptions.md) to developers through the developer portal. To add this API to another product, type or select the product name. Repeat this step to add the API to multiple products. You can also add APIs to products later from the **Settings** page.<br/><br/> For more information about products, see [Create and publish a product](api-management-howto-add-products.md).|
62+
|**Products**|**Unlimited**|Association of one or more APIs. In certain tiers, API Management instance comes with two sample products: **Starter** and **Unlimited**. You publish an API in the developer portal by associating the API with a product.<br/><br/> You can include several APIs in a product and offer product [subscriptions](api-management-subscriptions.md) to developers through the developer portal. To add this API to another product, type or select the product name. Repeat this step to add the API to multiple products. You can also add APIs to products later from the **Settings** page.<br/><br/> For more information about products, see [Create and publish a product](api-management-howto-add-products.md).|
6363
|**Gateways**|**Managed**|API gateway(s) that expose the API. This field is available only in **Developer** and **Premium** tier services.<br/><br/>**Managed** indicates the gateway built into the API Management service and hosted by Microsoft in Azure. [Self-hosted gateways](self-hosted-gateway-overview.md) are available only in the Premium and Developer service tiers. You can deploy them on-premises or in other clouds.<br/><br/> If no gateways are selected, the API won't be available and your API requests won't succeed.|
6464
|**Version this API?**|Select or deselect|For more information, see [Publish multiple versions of your API](api-management-get-started-publish-versions.md).|
6565

66-
> [!NOTE]
67-
> To publish the API to API consumers, you must associate it with a product.
68-
6966
1. Select **Create** to create your API.
7067

7168
If you have problems importing an API definition, see the [list of known issues and restrictions](api-management-api-import-restrictions.md).
@@ -74,8 +71,8 @@ If you have problems importing an API definition, see the [list of known issues
7471

7572
You can call API operations directly from the Azure portal, which provides a convenient way to view and test the operations. In the portal's test console, by default, APIs are called by using a key from the built-in all-access subscription. You can also test API calls by using a subscription key scoped to a product.
7673

77-
1. In the left navigation of your API Management instance, select **APIs** > **Demo Conference API**.
78-
1. Select the **Test** tab, and then select **GetSpeakers**. The page shows **Query parameters** and **Headers**, if any.
74+
1. In the left navigation of your API Management instance, select **APIs** > **Swagger Petstore**.
75+
1. Select the **Test** tab, and then select **Finds Pets by status**. The page shows the *status* **Query parameter**. Select one of the available values, such as *pending*. You can also add query parameters and headers here.
7976

8077
In the **HTTP request** section, the **Ocp-Apim-Subscription-Key** header is filled in automatically for you, which you can see if you select the "eye" icon.
8178
1. Select **Send**.
63.4 KB
Loading
60.5 KB
Loading
162 KB
Loading

articles/bastion/kerberos-authentication-portal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This article shows you how to configure Azure Bastion to use Kerberos authentica
2020
* VMs migrated from on-premises to Azure aren't currently supported for Kerberos. 
2121
* Cross-realm authentication isn't currently supported for Kerberos.
2222
* The Domain controller must be an Azure Hosted VM within the same VNET that bastion is deployed.
23-
* Changes to DNS server aren't currently supported for Kerberos. After making any changes to DNS server, you'll need to delete and re-create the Bastion resource.
23+
* Changes to DNS servers do not propagate to Bastion. Bastion re-deployment is needed for DNS info to properly propagate. After making any changes to DNS server, you'll need to delete and re-create the Bastion resource.
2424
* If additional DC (domain controllers) are added, Bastion will only recognize the first DC.
2525
* If additional DCs are added for different domains, the added domains can't successfully authenticate with Kerberos.
2626

articles/data-factory/connector-troubleshoot-oracle.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Learn how to troubleshoot issues with the Oracle connector in Azure
55
author: jianleishen
66
ms.subservice: data-movement
77
ms.topic: troubleshooting
8-
ms.date: 07/02/2024
8+
ms.date: 10/23/2024
99
ms.author: jianleishen
1010
ms.custom: has-adal-ref, synapse
1111
---
@@ -35,17 +35,17 @@ This article provides suggestions to troubleshoot common problems with the Oracl
3535

3636
- **Cause**: The secure algorithm is not added to your Oracle server.
3737

38-
- **Recommendation**: Update your Oracle server settings to add these secure algorithms:
38+
- **Recommendation**: Update your Oracle server settings to add these secure algorithms if they are not already included:
3939

40-
- The following algorithms are deemed as secure by OpenSSL, and will be sent along to the server for OAS (Oracle Advanced Security) encryption.
40+
- For **SQLNET.ENCRYPTION_TYPES_SERVER**, need to add the following algorithms that are deemed as secure by OpenSSL and will be used for OAS (Oracle Advanced Security) encryption.
4141
- AES256
4242
- AES192
4343
- 3DES168
4444
- AES128
4545
- 3DES112
4646
- DES
4747

48-
- The following algorithms are deemed as secure by OpenSSL, and will be sent along to the server for OAS (Oracle Advanced Security) data integrity.
48+
- For **SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER**, need to add the following algorithms that are deemed as secure by OpenSSL and will be used for OAS (Oracle Advanced Security) data integrity.
4949
- SHA256
5050
- SHA384
5151
- SHA512

articles/iot-operations/connect-to-cloud/tutorial-mqtt-bridge.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -406,16 +406,16 @@ spec:
406406
command: ["sh", "-c"]
407407
args: ["apk add mosquitto-clients mqttui && sleep infinity"]
408408
volumeMounts:
409-
- name: mq-sat
409+
- name: broker-sat
410410
mountPath: /var/run/secrets/tokens
411411
- name: trust-bundle
412412
mountPath: /var/run/certs
413413
volumes:
414-
- name: mq-sat
414+
- name: broker-sat
415415
projected:
416416
sources:
417417
- serviceAccountToken:
418-
path: mq-sat
418+
path: broker-sat
419419
audience: aio-internal # Must match audience in BrokerAuthentication
420420
expirationSeconds: 86400
421421
- name: trust-bundle
@@ -450,7 +450,7 @@ mosquitto_sub --host aio-broker --port 18883 \
450450
-t "tutorial/#" \
451451
--debug --cafile /var/run/certs/ca.crt \
452452
-D CONNECT authentication-method 'K8S-SAT' \
453-
-D CONNECT authentication-data $(cat /var/run/secrets/tokens/mq-sat)
453+
-D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
454454
```
455455

456456
Leave the command running and open a new terminal window.
@@ -472,7 +472,7 @@ mosquitto_pub -h aio-broker -p 18883 \
472472
--repeat 5 --repeat-delay 1 -d \
473473
--debug --cafile /var/run/certs/ca.crt \
474474
-D CONNECT authentication-method 'K8S-SAT' \
475-
-D CONNECT authentication-data $(cat /var/run/secrets/tokens/mq-sat)
475+
-D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
476476
```
477477

478478
## View the messages in the subscriber

articles/iot-operations/discover-manage-assets/concept-opcua-message-format.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ The connector for OPC UA publishes messages from OPC UA servers to the MQTT brok
2020
The payload of an OPC UA message is a JSON object that contains the telemetry data from the OPC UA server. The following example shows the payload of a message from the sample thermostat asset used in the quickstarts. Use the following command to subscribe to messages in the `azure-iot-operations/data` topic:
2121

2222
```console
23-
mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/#" -v --debug --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/mq-sat)
23+
mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/#" -v --debug --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
2424
```
2525

2626
The output from the previous command looks like the following example:
@@ -43,7 +43,7 @@ Client $server-generated/05a22b94-c5a2-4666-9c62-837431ca6f7e received PUBLISH (
4343
The headers in the messages published by the connector for OPC UA are based on the [CloudEvents specification for OPC UA](https://github.com/cloudevents/spec/blob/main/cloudevents/extensions/opcua.md). The headers from an OPC UA message become user properties in a message published to the MQTT broker. The following example shows the user properties of a message from the sample thermostat asset used in the quickstarts. Use the following command to subscribe to messages in the `azure-iot-operations/data` topic:
4444

4545
```console
46-
mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/#" -V mqttv5 -F %P --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/mq-sat)
46+
mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/#" -V mqttv5 -F %P --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
4747
```
4848

4949
The output from the previous command looks like the following example:

articles/iot-operations/manage-mqtt-broker/howto-configure-authentication.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
310310
Inside the pod's shell, run the following command to publish a message to the broker:
311311

312312
```bash
313-
mosquitto_pub --host aio-broker --port 18883 --message "hello" --topic "world" --debug --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/mq-sat)
313+
mosquitto_pub --host aio-broker --port 18883 --message "hello" --topic "world" --debug --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
314314
```
315315

316316
The output should look similar to the following:
@@ -322,7 +322,7 @@ Client (null) sending PUBLISH (d0, q0, r0, m1, 'world', ... (5 bytes))
322322
Client (null) sending DISCONNECT
323323
```
324324

325-
The mosquitto client uses the service account token mounted at `/var/run/secrets/tokens/mq-sat` to authenticate with the broker. The token is valid for 24 hours. The client also uses the default root CA cert mounted at `/var/run/certs/ca.crt` to verify the broker's TLS certificate chain.
325+
The mosquitto client uses the service account token mounted at `/var/run/secrets/tokens/broker-sat` to authenticate with the broker. The token is valid for 24 hours. The client also uses the default root CA cert mounted at `/var/run/certs/ca.crt` to verify the broker's TLS certificate chain.
326326

327327
### Refresh service account tokens
328328

articles/iot-operations/manage-mqtt-broker/howto-configure-availability-scale.md

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,25 @@ For a list of the available settings, see the [Broker](/rest/api/iotoperationsmq
3030
3131
To configure the scaling settings MQTT broker, you need to specify the `cardinality` fields in the specification of the *Broker* custom resource. For more information on setting the mode and cardinality settings using Azure CLI, see [az iot ops init](/cli/azure/iot/ops#az-iot-ops-init).
3232

33-
The `cardinality` field is a nested field that has these subfields:
33+
### Automatic deployment cardinality
34+
35+
To automatically determine the initial cardinality during deployment, omit the `cardinality` field in the *Broker* resource. The MQTT broker operator automatically deploys the appropriate number of pods based on the number of available nodes at the time of the deployment. This is useful for non-production scenarios where you don't need high-availability or scale.
36+
37+
However, this is *not* auto-scaling. The operator doesn't automatically scale the number of pods based on the load. The operator only determines the initial number of pods to deploy based on the cluster hardware. As noted above, the cardinality can only be set at initial deployment time, and a new deployment is required if the cardinality settings need to be changed.
38+
39+
### Configure cardinality directly
40+
41+
To configure the cardinality settings directly, specify the `cardinality` field. The `cardinality` field is a nested field that has these subfields:
3442

3543
- `frontend`: This subfield defines the settings for the frontend pods, such as:
36-
- `replicas`: The number of frontend pods to deploy. This subfield is required if the `mode` field is set to `distributed`.
37-
- `workers`: The number of workers to deploy per frontend, currently it must be set to `1`. This subfield is required if the `mode` field is set to `distributed`.
44+
- `replicas`: The number of frontend pods to deploy. Increasing the number of frontend replicas provides high availability in case one of the frontend pods fails.
45+
- `workers`: The number of logical frontend workers per replica. Increasing the number of workers per frontend replica improves CPU core utilization because each worker can use only one CPU core at most. For example, if your cluster has 3 nodes, each with 8 CPU cores, then set the number of replicas to match the number of nodes (3) and increase the number of workers up to 8 per replica as you need more frontend throughput. This way, each frontend replica can use all the CPU cores on the node without workers competing for CPU resources.
3846
- `backendChain`: This subfield defines the settings for the backend chains, such as:
39-
- `redundancyFactor`: The number of data copies in each backend chain. This subfield is required if the `mode` field is set to `distributed`.
40-
- `partitions`: The number of partitions to deploy. This subfield is required if the `mode` field is set to `distributed`.
41-
- `workers`: The number of workers to deploy per backend, currently it must be set to `1`. This subfield is required if the `mode` field is set to `distributed`.
42-
43-
If `cardinality` field is omitted, cardinality is determined by MQTT broker operator automatically deploys the appropriate number of pods based on the cluster hardware.
47+
- `partitions`: The number of partitions to deploy. Increasing the number of partitions increases the number of messages that the broker can handle. Through a process called *sharding*, each partition is responsible for a portion of the messages, divided by topic ID and session ID. The frontend pods distribute message traffic across the partitions.
48+
- `redundancyFactor`: The number of backend pods to deploy per partition. Increasing the redundancy factor increases the number of data copies to provide resiliency against node failures in the cluster.
49+
- `workers`: The number of workers to deploy per backend replica. The workers take care of storing and delivering messages to clients together. Increasing the number of workers per backend replica increases the number of messages that the backend pod can handle. Each worker can consume up to 2 CPU cores at most, so be careful when increasing the number of workers per replica to not exceed the number of CPU cores in the cluster.
4450

45-
To configure the scaling settings MQTT broker, you need to specify the `mode` and `cardinality` fields in the specification of the *Broker* custom resource. For more information on setting the mode and cardinality settings using Azure CLI, see [az iot ops init](/cli/azure/iot/ops#az-iot-ops-init).
51+
When you increase these values, the broker's capacity to handle more connections and messages improves, and it enhances high availability in case of pod or node failures. However, this also leads to higher resource consumption. So, when adjusting cardinality values, consider the memory profile settings and balance these factors to optimize the broker's resource usage.
4652

4753
## Configure memory profile
4854

0 commit comments

Comments
 (0)