|
| 1 | +--- |
| 2 | +title: Synchronize APIs from Amazon API Gateway - Azure API Center |
| 3 | +description: Integrate an Amazon API Gateway to Azure API Center for automatic synchronization of APIs to the inventory. |
| 4 | +author: dlepow |
| 5 | +ms.service: azure-api-center |
| 6 | +ms.topic: how-to |
| 7 | +ms.date: 12/20/2024 |
| 8 | +ms.author: danlep |
| 9 | +ms.custom: devx-track-azurecli |
| 10 | +# Customer intent: As an API program manager, I want to integrate my Azure API Management instance with my API center and synchronize API Management APIs to my inventory. |
| 11 | +--- |
| 12 | + |
| 13 | +# Synchronize APIs from Amazon API Gateway to Azure API Center (preview) |
| 14 | + |
| 15 | +This article shows how to integrate an Amazon API Gateway so that the gateway's APIs are continuously kept up to date in your [API center](overview.md) inventory. |
| 16 | + |
| 17 | +## About integrating Amazon API Gateway |
| 18 | + |
| 19 | +Integrating Amazon API Gateway as an API source for your API center enables continuous synchronization so that the API inventory stays up to date. |
| 20 | + |
| 21 | +When you integrate an Amazon API Gateway as an API source, the following happens: |
| 22 | + |
| 23 | +1. APIs, and optionally API definitions (specs), from the API Gateway are added to the API center inventory. |
| 24 | +1. You configure an [environment](key-concepts.md#environment) of type *Amazon API Gateway* in the API center. |
| 25 | +1. An associated [deployment](key-concepts.md#deployment) is created for each synchronized API definition. |
| 26 | + |
| 27 | +Synchronization is one-way from Amazon API Gateway to your Azure API center, meaning API updates in the API center aren't synchronized back to the API Gateway. |
| 28 | + |
| 29 | +> [!NOTE] |
| 30 | +> * There are [limits](../azure-resource-manager/management/azure-subscription-service-limits.md?toc=/azure/api-center/toc.json&bc=/azure/api-center/breadcrumb/toc.json#api-center-limits) for the number of integrated API sources. |
| 31 | +> * API updates in Amazon API Gateway synchronize to your API center every hour. |
| 32 | +
|
| 33 | +### Entities synchronized from Amazon API Gateway |
| 34 | + |
| 35 | +You can add or update metadata properties and documentation in your API center to help stakeholders discover, understand, and consume the synchronized APIs. Learn more about Azure API Center's [built-in and custom metadata properties](add-metadata-properties.md). |
| 36 | + |
| 37 | +The following table shows entity properties that can be modified in Azure API Center and properties that are determined based on their values in Amazon API Gateway. Also, entities' resource or system identifiers in Azure API Center are generated automatically and can't be modified. |
| 38 | + |
| 39 | +| Entity | Properties configurable in API Center | Properties determined in API Gateway | |
| 40 | +|--------------|-----------------------------------------|-----------------| |
| 41 | +| API | summary<br/>lifecycleStage<br/>termsOfService<br/>license<br/>externalDocumentation<br/>customProperties | title<br/>description<br/>kind | |
| 42 | +| API version | lifecycleStage | title | |
| 43 | +| Environment | title<br/>description<br/>kind</br>server.managementPortalUri<br/>onboarding<br/>customProperties | server.type |
| 44 | +| Deployment | title<br/>description<br/>server<br/>state<br/>customProperties | server.runtimeUri | |
| 45 | + |
| 46 | +For property details, see the [Azure API Center REST API reference](/rest/api/apicenter). |
| 47 | + |
| 48 | + |
| 49 | +## Prerequisites |
| 50 | + |
| 51 | +* An API center in your Azure subscription. If you haven't created one, see [Quickstart: Create your API center](set-up-api-center.md). |
| 52 | + |
| 53 | +* An Azure key vault. If you need to create one, see [Quickstart: Create a key vault using the Azure portal](/azure/key-vault/general/quick-create-portal). |
| 54 | + |
| 55 | +* An [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/). |
| 56 | + |
| 57 | +* An AWS [IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) identity with the `AmazonAPIGatewayAdministrator` policy attached. |
| 58 | + |
| 59 | +* For Azure CLI: |
| 60 | + [!INCLUDE [include](~/reusable-content/azure-cli/azure-cli-prepare-your-environment-no-header.md)] |
| 61 | + |
| 62 | + [!INCLUDE [install-apic-extension](includes/install-apic-extension.md)] |
| 63 | + |
| 64 | + > [!NOTE] |
| 65 | + > Azure CLI command examples in this article can run in PowerShell or a bash shell. Where needed because of different variable syntax, separate command examples are provided for the two shells. |
| 66 | +
|
| 67 | +## Add a managed identity in your API center |
| 68 | + |
| 69 | +[!INCLUDE [enable-managed-identity](includes/enable-managed-identity.md)] |
| 70 | + |
| 71 | + |
| 72 | +## Create IAM user access keys |
| 73 | + |
| 74 | +To authenticate your API center with Amazon API Gateway, you need access keys for an AWS IAM user. |
| 75 | + |
| 76 | +To generate the required access key ID and secret key using the AWS Management Console, see [Create an access key for yourself](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-key-self-managed.html#Using_CreateAccessKey). |
| 77 | + |
| 78 | +Save your access keys in a safe location. You'll store them in Azure Key Vault in the next steps. |
| 79 | + |
| 80 | +> [!CAUTION] |
| 81 | +> Access keys are long-term credentials and you should manage them as securely as you would a password. Learn more about [securing access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/securing_access-keys.html) |
| 82 | +
|
| 83 | +## Store IAM user access keys in Azure Key Vault |
| 84 | + |
| 85 | +Manually upload and securely store the two IAM user access keys in Azure Key Vault using the configuration in the following table. For more information, see [Quickstart: Set and retrieve a secret from Azure Key Vault using the Azure portal](/azure/key-vault/secrets/quick-create-portal). |
| 86 | + |
| 87 | +| AWS secret | Upload options | Name | Secret value | |
| 88 | + |
| 89 | + |
| 90 | +Upload option |
| 91 | + |
| 92 | +Manual |
| 93 | + |
| 94 | +Name |
| 95 | + |
| 96 | +aws-access-key |
| 97 | + |
| 98 | +Secret value |
| 99 | + |
| 100 | +Access key retrieved from AWS |
| 101 | + |
| 102 | +One secret for secret access key: |
| 103 | + |
| 104 | +Upload option |
| 105 | + |
| 106 | +Manual |
| 107 | + |
| 108 | +Name |
| 109 | + |
| 110 | +aws-secret-access-key |
| 111 | + |
| 112 | +Secret value |
| 113 | + |
| 114 | +Secret access key retrieved from AWS |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | + |
| 121 | + |
| 122 | + |
| 123 | +## Add a managed identity in your API center |
| 124 | + |
| 125 | +[!INCLUDE [enable-managed-identity](includes/enable-managed-identity.md)] |
| 126 | + |
| 127 | +## Assign the managed identity the Key Vault Secrets User role |
| 128 | + |
| 129 | +[!INCLUDE [configure-managed-identity-apim-reader](includes/configure-managed-identity-apim-reader.md)] |
| 130 | + |
| 131 | +## Integrate an Amazon API Gateway |
| 132 | + |
| 133 | +You can integrate an API Gateway using the portal. |
| 134 | + |
| 135 | +1. In the [portal](https://portal.azure.com), navigate to your API center. |
| 136 | +1. Under **Assets**, select **Environments**. |
| 137 | +1. Select **Integrations (preview)** > **+ New integration**. |
| 138 | +1. In the **Link your Azure API Gateway** page: |
| 139 | + 1. TBD... |
| 140 | + 1. In **Environment details**, enter an **Environment title** (name), **Environment type**, and optional **Environment description**. |
| 141 | + 1. In **API details**, select a **Lifecycle stage** for the synchronized APIs. (You can update this value for your APIs after they're added to your API center.) Also, select whether to synchronize API definitions. |
| 142 | +1. Select **Create**. |
| 143 | + |
| 144 | +<!---- |
| 145 | +:::image type="content" source="media/synchronize-api-management-apis/link-api-management-service.png" alt-text="Screenshot of linking an Azure API Management Service in the portal."::: |
| 146 | +
|
| 147 | +---> |
| 148 | +The environment is added in your API center. The API Management APIs are imported to the API center inventory. |
| 149 | + |
| 150 | +<!-- |
| 151 | +:::image type="content" source="media/synchronize-api-management-apis/environment-link-list.png" alt-text="Screenshot of environment list in the portal."::: |
| 152 | +--> |
| 153 | + |
| 154 | +## Delete an integration |
| 155 | + |
| 156 | +While an API source is integrated, you can't delete synchronized APIs from your API center. If you need to, you can delete the integration. When you delete an integration: |
| 157 | + |
| 158 | +* The synchronized APIs in your API center inventory are deleted |
| 159 | +* The environment and deployments associated with the API source are deleted |
| 160 | + |
| 161 | +To delete an integration: |
| 162 | + |
| 163 | +1. In the [portal](https://portal.azure.com), navigate to your API center. |
| 164 | +1. Under **Assets**, select **Environments** > **Integration (preview)**. |
| 165 | +1. Select the integration, and then select **Delete** (trash can icon). |
| 166 | + |
| 167 | +## Related content |
| 168 | + |
| 169 | +* [Manage API inventory with Azure CLI commands](manage-apis-azure-cli.md) |
| 170 | +* [Import APIs from API Management to your Azure API center](import-api-management-apis.md) |
| 171 | +* [Azure API Management documentation](../api-management/index.yml) |
0 commit comments