Technical Articles
SAP Content Agent service: Enhanced Transport experience for SAP API Management content in the Cloud Foundry environment
Overview
With SAP API Management, you can create simple digital experiences for your consumers, partners, and employees. SAP API Management lets you publish, promote, and oversee APIs in a secure and scalable environment.
The CF (Cloud Foundry) environment gives you the ability to subscribe to the API Management service, while you may choose a public infrastructure to run the API Management service, such as Amazon Web Services or Microsoft Azure.
Until now, the only way to transport SAP API management content artifacts between tenants in the CF environment was to manually export and import them. Now, with the help of the SAP Content Agent service, you can do this with much more convenience and efficiency.
Content Agent service is a Cloud Foundry-based utility service. It acts like an agent that allows you to assemble the API Management content and also export it to the transport queue using transport solutions like SAP Cloud Transport Management or the Enhanced Change and Transport System (CTS+). This is equivalent to the assembly and export functionality provided by Solution Lifecycle Management Service in the Neo Environment.
For a high-level view of what is happening take a look at the schematic below.
Content Agent service Schematic
SAP Content Agent Service has already been available for transporting SAP Cloud Integration content since August 2020. Check out my original Blog here.
In this blog, I will briefly show you how to set up the transport of SAP API Management content using the SAP Content Agent service, along with the SAP Cloud Transport Management service.
Setup
For the purpose of simplicity, I will take the example of setting up transports between two SAP API Management (API Portal) tenants, e.g. the development tenant (DEV) and the test tenant (QAS). This is what is currently supported by the service as well. To manage transports in a three-tenant landscape, you can use SAP Cloud Transport Management, using different combinations of transport routes.
What you will need(Prerequisites):
- Two separate SAP SAP API Management(API Portal) tenants, attached to separate CF subaccounts. Let’s call them DEV(source) and QAS(target). These subaccounts should also have their respective CF spaces created with adequate resources assigned in their quota plans. For more information on entitlements, see here. For more information on configuring Quota plans for spaces, see here.
- Subscription and admin access to the SAP Cloud Transport Management service.
- A sample API Management content artifact that you can use to transport between the two API Management (API Portal) tenants.
Setup Instructions:
Setting up this scenario is quite easy and similar to the SAP Cloud Integration content transport scenario that I set up and documented in another blog. Here are the detailed instructions for setting up this scenario.
Testing the Setup:
- In your source SAP API Management tenant, go to the ‘Develop’ view.
- Click the ‘Action’ icon in the row corresponding to the content your want to Transport or Export.
- Choose the ‘Transport’ option out of the available actions, and fill out the description for the transport in the pop-up that comes up.
- In case of success, you should get a message such as “The reference number for the transport request generated is <XXXXX>, TR ID: <XXXX>”
- In the SAP Cloud Transport Management web UI, go to the Import queue of the target node created in the setup process above. The transport request created in step 4 should be already added to this queue.
- Import this transport request into the target node.
- Go to the ‘Develop’ view of your target SAP API Management tenant. The content package exported from the source SAP API Management tenant should have been imported and should be available here.
- Similarly, you can try out transporting other types of API Management content like API Proxies, API Providers, Certificates, and Key-Value Maps. You may have to edit some security fields for contents imported into the target account. Check out how to do all that here.
Important points to note
- Please makes sure you have administrator access to the API Management(API Portal) service.
- The target CF subaccount should also have the requisite entitlements for the SAP API Management (API Portal) service plan so that the deployments to the target account can happen smoothly.
I hope this article was clear enough to help you set up the SAP Content Agent service, enhancing your transport experience for SAP API Management content in the CF environment.
Hope you enjoyed this article. If there are any questions, please let me know in the comments below.
Further information
For the latest on SAP Content Agent service, please look here.
Hi Abhishek,
Thanks for great post. I have a further question for you. we need two separate subaccounts for this scenario, so, do these two subaccount could be from different global account or different DC? If not, if customer have more than one global account or DC, how they could handle this situation?
Thanks.
Hi Nan,
Thanks for your comment and question. I am sure others would have similar questions as well.
The transport can work across subaccounts present in different global accounts/DC as well, since the cTMS that is making the transport in the background only needs a destination in the source subaccount, to connect with the target subaccount.
Thanks
Abhi
Thanks
What roles do we need to set up the API Management, API Portal service key with in order to transport?
Hi Geoff,
Please look here: Link
Thanks
Abhi
Hi Abhishek,
Thanks for the blog!
What role is required to get Transport option in Actions as you mentioned below?Because this details is not even present in SAP help portal
Hi Gowtami,
Glad to know that you found the blog helpful.
For transporting, you will need the role: APIPortalAdmin
Hope this helps.
Thanks
Abhi
Hi Abhishek,
is it also possible to use CTS+ within APIM? The official documentation of APIM only describes the setup of Cloud TMS.
Greetings,
Oliver
Hello Oliver,
from what I learned from CTS+ development colleagues, it looks that for the time being it is not planning to enable CTS+ for APIM artifacts.
Thanks and best regards
Thank you for a very informative blog
I've run into a problem, when I try to transport a proxy I don't get a reference number, it simpy says
Hello Mattias,
It looks like the transport of the API Proxy was not successful.
Our development team would need to check the log files to find the reason for the error.
In case of such a problem with Content Agent Service, please open an SAP support message on queue ‘BC-CP-LCM-CAS’. Like this, the colleagues can take a look at the system directly and analyze the log files. Also, the problem can, if necessary, quickly be distributed inside SAP to the responsible team to solve the issue.
Thank you and best regards
Hello, late update after the Holidays. It fixed itself automatically, now it's working. Thank you again for your blog.
Hi Mattias, I have the same error, could you share with me your solution in order to resolve this error?
Hello,
Sorry for the late reply. As I said in the reply above it fixed itself "by magic", we did not do anything, I don't know if SAP did a fix for something in the background.
Regards
Mattias
One more question while I'm at it. In the instructions you use Basic Authentication to connect to the destination subaccount.
We have disabled the default idp, as we want everyone to SSO in with our corporate IDP using oauth.
Is it possible to use oauth in the transport management scenario? I have tried creating a service key in the api-apiaccess instance in our destination subaccount, but I get a 400 error when trying to use the deployment service.
Hello Mattias,
This looks like a TMS issue.
In the Help portal you can find this description Create Transport Destinations - SAP Help Portal
If the setup was done correctly and the error persists, again I would recommend to open an SAP support message to get immediate support.
Thank you and best regards
Hi everyone, did anyone also try to set up API transports with SAP Integration Suite (API Management Capability)? - no standalone API Management!
We are struggling with this, because the official documentation (and it makes sense) requests you to have an instance of API Portal, API Management in order to be able to generate the service key required in APIManagement destination...
But we don't want / can't create the instance in the same subaccount as our SAP Integration Suite subscription runs.
Any ideas or hints?
Thank you all a lot
Jonas
Hello Jonas,
Within the next few days, Content Agent Service will be available with a new UI.
With CAS and the new UI, you can:
And, you can also configure destinations from other sub-accounts and then use Content Agent Service UI to explore the content from different accounts, or use the same cTMS.
If you face difficulties with Content Agent Service, please open an SAP ticket at the component BC-CP-LCM-CAS.
Hi Stefan, that sounds great!
How can we identify and make sure that the new version of Content Agent Service is available to us?
We're in a CPEA, so entitlement shouldn't be a problem.
Thank you very much
Jonas
Hello Jonas,
the new version is life since yesterday.
Find all relevant information in the SAP Help Portal:
https://help.sap.com/docs/CONTENT_AGENT_SERVICE/ae1a4f2d150d468d9ff56e13f9898e07/3d89b0ac589d49f5882259d6e6092418.html?version=Cloud