I want to integrate my table request of bigquery in APIGEE API proxy.
I create an integration and a collector for my table in google cloud, I connected the APIGEE proxy to connector.
It works APIGEE response me with data of table, but with a problem, the list have a maxinum of 200 items(are more result).
I tryed to make a multiple pages logic, but I found a problem.
The connector used for bigquery have an output parameter called "listEntitiesNextPageToken" that should contains the token of next page, but effectively remain the default value after run.
I search everywhere but all documentation of this parameter is this ("https://cloud.google.com/apigee/docs/api-platform/integration/connectors-task")
I expectining to found an alternative or a solution for have all the result of the query i tried to make using only google cloud.
Related
The requirement is to call other microservices running within the same GCP project using the service name instead of the full service url to get the ID token as mentioned here https://cloud.google.com/run/docs/authenticating/service-to-service.
I see a similar stackoverflow question - Google Cloud Run API - accessing endpoint internally. Here it looked like there was no direct solution from GCP and has been suggested to use runsd - https://github.com/ahmetb/runsd.
Is there something available from GCP now where a cloud run service can call another private cloud run service within the same project using "https://servicename" internally
(or)
Is it still not available and we need to use the complete service url https://--.run.app to get the ID Token and then make the call using the ID Token and the full service url?
I have tried using the full service url and ID Token to make the call. But getting the full url with the projectHash is not something we are looking for. A more uniform approach using the service name for internal call will be more easier from microservice calling perspective.
Since Google Cloud is not offering this yet. You may file a feature request to this link. However, please keep in mind that this will still be under consideration and there is no definite ETA.
You must use the whole service URL, which contains the service name, project hash, and region, together with the ID token, to perform a service-to-service call to another Cloud Run service inside the same project.
The above answer from Christian Paul Andaya is the accepted answer.
We trying to integrate our own project in WS02, to bring informations with Choreo
I followed the documentation (generate the key for authentication, but I'm not getting information from Choreo analytics,
Follow prints of what was done.
Config authentiction token:
Insights (doesn't working)
From the printscreen you sent it looks like there are some issues in the .toml file, first you should uncomment the "#" in front of [apim.analytics], if you don't do this, the configuration will not be processed correctly. There are also two letters on the same line that shouldn't be there "hy", you may remove that.
Do this, restart the WSO2 APIM nodes and send some requets to APIs served by the gateway, then check if the analytics data appears on Choreo.
Also, please notice that Choreo Analytics is an enterprise feature that is only available through an active WSO2 subscription. Without the subscription, the API key you generated will only last for 2 weeks before becoming unactive. If you wish to talk about getting a WSO2 Support Subscription for you company you can reach out to WSO2 through the link below:
https://wso2.com/contact/
I am trying to send HTTPS Post Request from GCP to Segment.io
I want to create a service that will read data from BigQuery table and then send calls directly to Segment.io API (link) from where I'll redirect the data to other destinations, but on the GCP site I'm struggling to find the most optimal way to do it. Cloud Run seems like a good option but I'm wondering if there might be an easier way?
The recommended products to be used for this task can be either Cloud Run or Cloud Functions.
You can either use the Client Libraries or API in order to extract the data from the BigQuery table and use any HTTP request library of your favorite programming language to issue the POST request to the Segment.io API.
I have a logic app which triggers my HTTP endpoint every 15 minutes. Then the endpoint connects to SharePoint using Rest API and gets the data from specific list which is then added to my db.
But to get the data from SharePoint, i need access token. Do i need to write logic to get access token in the endpoint itself? or is there any to pass access token from my logic app while triggering my endpoint ?
As first answer. Yes, implement logic to get access token in HTTP Endpoint using SharePoint Online REST API.
Through such guides may be 1, 2, 3, 4. I think not exists any ways to pass access token from Azure logic app to your endpoint.
As second answer I can suggest to use SharePoint CSOM object model. To using it just install SharePoint Online Client Components SDK on computer where is your HTTP endpoint located and add Microsoft.SharePoint.Client.dll Microsoft.SharePoint.Client.Runtime.dll libraries as references. There exists good SharepointOnlineCredentials class to give credentials to requests.
Or other ways - you can re-architecture your solution:
Azure Logic Apps if I understood correctly must ask you to set connection to SharePoint by out-of-box features. See this article. I think you can get list items from SharePoint by actions in Azure Logic App and pass data to your HTTP endpoint without any additional access token requests just as method arguments.
If you have access to HTTP Endpoint from SharePoint then you can send data from SharePoint to your endpoint directly, not from Azure logic apps. You can do it from list items form pages, from site workflows or may be some Flow templates.
If you don't have access to HTTP Endpoint from SharePoint then you can create Azure hosted web service and call its methods from SharePoint by any ways. This web service will pass data to your HTTP endpoint as method arguments without any additional authentication. Web service call will be done from JavaScript on list item form save, from SharePoint workflow. May be here to get access token to this Azure web service will be easier then from your HTTP Endpoint to SP.
Are you using Azure SQL Database ? If yes then create connection between SharePoint Online and Azure SQL Database through Business Connectivity Services BCS. Like here or here or here. This allow user get, create, update items in your database inline in SharePoint list by out-of-box features.
Create periodically running code (Console App, PowerShell script, Windows Service). Schedule it on some server in your company. That code will use CSOM SharePoint object model and connect to SharePoint more easier through SharepointOnlineCredentials class, get data and connect to your HTTP Endpoint directly or to your database.
If your database is MS SQL Server located on-premise then you can use this guide to create Business Connectivity Services content types between SharePoint Online and on-premise SQL Server.
You can go some extravagant ways: =)
SharePoint by some ways can send emails with data from list items to some inbox and your HTTP endpoint can get these emails, parse data and perform following steps.
May be you can create Sql Server Integration Service (SSIS) package on some company local MS SQL Server that will send data from SharePoint on periodically basis to your database directly or to your HTTP endpoint directly.
Other ways...
"But to get the data from SharePoint, i need access token. Do i need to write logic to get access token in the endpoint itself?"
Correct, you do need a bearer access token. Where are you hosting the code for your HTTP endpoint? If you can put it in Azure as a Function or web API, then you can implement app-only permissions which will give you the necessary access token.
There are 2 options for doing so:
Granting access via Azure AD App-Only
Granting access using SharePoint App-Only
The first one is a bit more involved, because it requires a client secret AND a self-signed security certificate, but it will allow you permissions to any O365 API. The 2nd one is simpler and will only require the app/client ID and secret, but only allows permissions to the SharePoint Rest API.
The MSDN documentation linked above uses a PowerShell script to generate the security cert, but I prefer Bob German's instructions for manually creating/exporting one. He also includes instructions for registering an Azure AD application for your Azure function in his tutorial.
I have an application that uses Google Cloud Translation API for translating contents from a source language to the languages used by the different users.
Since there are several clients for the API, I would like to distinguish the request numbers for different clients, like making a distinction between Android and iOS clients.
There's a dashboard in Google Cloud Translation API Overview page that contains the Traffic chart with a By credential option, which should be able to distinguish the request numbers by their credentials (in our case, API keys.) Unfortunately, it doesn't, the only option available there being Unspecified.
Moreover, even if I change the filter of credentials to No selection, the Traffic map is still the same!
I have also attached the project's credential list, where only API keys are used.
Please help me how to know the request numbers by different API keys, thanks.
Update:
Here are how I send requests to Google Cloud Translation API.
I tried with Postman and Swift code in iOS (what I actually do in my project.) Sent GET/POST requests to the API with API keys and POST requests with service account token, but neither API keys nor service account shown in request logs as the first picture.
Postman
Request with API key in GET
Request with API key in POST
Request with service account token in POST
Swift code
Code
Response
I have also done some requests to Translation API using different credentials. After doing the requests, I have checked my dashboard and I encountered the same situation as you, with all requests marked as Unspecified when choosing the By credential option.
As it turns out, there is an issue related to this situation, as this is not the expected behavior. This has been notified and it will be sorted out by the Google team. You can keep track on any updates related to this issue here. If you click the star button on this site, you will get email notifications whenever any progress has been made. Please bear in mind that it may take some time for this issue to be resolved.
In the meantime, you may consider tracking the client information through the statistics of the applications that make requests to the API, if possible. Thanks for your help on finding this issue.