-
Notifications
You must be signed in to change notification settings - Fork 71
Added Azure APIM to API hub plugin using Application Integration #385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
ssvaidyanathan
merged 14 commits into
GoogleCloudPlatform:main
from
jasmehtagoogle:apihub-apim
Oct 18, 2025
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
b7f9cac
Added Azure APIM to API hub plugin using Application Integration
jasmehtagoogle 31211a6
fix: added copyright
ssvaidyanathan fc48322
fix: added copyright
ssvaidyanathan a9b5354
fix: added copyright
ssvaidyanathan d030063
fix: added copyright
ssvaidyanathan e578257
Merge branch 'GoogleCloudPlatform:main' into apihub-apim
ssvaidyanathan 2db1d0b
fix: lint issues
ssvaidyanathan 30929cb
fix: lint errors
ssvaidyanathan c33b663
fix: lint errors
ssvaidyanathan 44b6d94
fix: scripts and updates to README
ssvaidyanathan 6c384ff
fix: README updates
ssvaidyanathan 5b8eb27
fix: table
ssvaidyanathan e5ce75e
Merge branch 'GoogleCloudPlatform:main' into apihub-apim
ssvaidyanathan e9598d8
fix: lint errors
ssvaidyanathan File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# Azure API Management to Google Cloud API Hub Integration | ||
|
||
This sample provides an Application Integration template and scripts to synchronize API metadata from Azure API Management (APIM) to Apigee API hub. | ||
|
||
## Prerequisites | ||
ssvaidyanathan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
1. **Azure:** | ||
* An Azure Subscription with an active API Management instance. | ||
* Azure CLI (`az`) installed and authenticated. You can install it from [here](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). | ||
2. **Google Cloud:** | ||
* A Google Cloud Project with API Hub provisioned. See [Provision API Hub](https://cloud.google.com/apigee/docs/apihub/provision). | ||
* Google Cloud SDK (`gcloud`) installed and authenticated. You can install it from [here](https://cloud.google.com/sdk/docs/install). | ||
* The following Google Cloud APIs Enabled in your project: | ||
* `apihub.googleapis.com` (API Hub API) | ||
* `integrations.googleapis.com` (Application Integration API) | ||
* `secretmanager.googleapis.com` (Secret Manager API) | ||
You can enable these using the `gcp_setup.sh` script or manually in the Cloud Console. | ||
3. **Tools:** | ||
* `jq`: A lightweight and flexible command-line JSON processor. Install it from [here](https://stedolan.github.io/jq/download/). | ||
* `curl`: A command-line tool for transferring data with URLs. | ||
* Bash shell environment. | ||
|
||
## Setup Instructions | ||
|
||
Follow these steps in order to set up and deploy the integration. | ||
|
||
### Step 1: Configure Azure Resources | ||
|
||
This step involves running a script to set up an Azure Active Directory application and grant it the necessary permissions to read from your APIM instance. | ||
|
||
1. Navigate to the directory containing the scripts. | ||
2. Update the env.sh file with appropriate values. Then execute the following command: | ||
```bash | ||
source env.sh | ||
``` | ||
3. Run the script: | ||
```bash | ||
./azure_setup.sh | ||
``` | ||
4. **Important:** At the end of the script, carefully note down the outputted `AZURE_CLIENT_ID` and `AZURE_CLIENT_SECRET`. The secret will not be shown again. Paste those values in the env.sh file and run `source env.sh` again | ||
|
||
### Step 2: Configure Google Cloud Resources | ||
ssvaidyanathan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
This script configures the necessary Google Cloud resources, including a service account, IAM permissions, and creating a plugin `azure-apim-plugin` with an instance `instance` in API hub. | ||
|
||
Run the script: | ||
```bash | ||
./gcp_setup.sh | ||
``` | ||
|
||
### Step 3: Deploy the Application Integration | ||
|
||
This script deploys the `azure_ip_template.json` workflow to your Google Cloud project's Application Integration service. | ||
|
||
Run the script: | ||
```bash | ||
./deploy_integration.sh | ||
``` | ||
|
||
### Step 4: Execute the Integration | ||
|
||
To run the synchronization process, you will execute the deployed integration. | ||
|
||
Run the script: | ||
```bash | ||
./execute_integration.sh | ||
``` | ||
|
||
Upon successful triggering, the script will indicate that the execution has started. You can monitor the detailed logs and status within the Application Integration section of the Google Cloud Console. | ||
|
||
## Files Included | ||
|
||
* `azure_ip_template.json`: The core Application Integration workflow definition. | ||
* `azure_setup.sh`: Script to configure Azure resources. | ||
* `gcp_setup.sh`: Script to configure GCP resources. | ||
* `deploy_integration.sh`: Script to deploy the integration template. | ||
* `execute_integration.sh`: Script to trigger the integration. | ||
* `README.md`: This file. | ||
|
||
## Disclaimer | ||
|
||
This is a sample integration and may require modifications to fit your specific security and operational requirements. | ||
ssvaidyanathan marked this conversation as resolved.
Show resolved
Hide resolved
|
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.