api-gateway | Gateway for Containerum components | REST library
kandi X-RAY | api-gateway Summary
kandi X-RAY | api-gateway Summary
Gateway for Containerum components
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- CheckAuth check access token
- preprocess reads the given file at the given path .
- main is the main entry point .
- CreateMetrics creates a new Metrics object .
- checkUserRole returns true if given user role is empty
- setupAuth initializes auth client
- setupTLS is used to setup the TLS configuration
- encodeAccessToBase64 encodes a ResourceAccess to base64
- ReadToml reads TOML file
- Logger is a middleware that logs the request
api-gateway Key Features
api-gateway Examples and Code Snippets
helm repo add containerum https://charts.containerum.io
helm repo update
helm install containerum/api-gateway
protected APIGatewayProxyResponseEvent apiGatewayProxyResponseEvent(Integer statusCode, T body) {
var apiGatewayProxyResponseEvent = new APIGatewayProxyResponseEvent().withHeaders(headers());
try {
apiGatewayProxyResponseEvent
@Override
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent req, Context ctx) {
req.getPathParameters().forEach(FindPersonApiHandler::logKeyValue);
var id = req.getPathParameters().get("id");
var person = thi
Community Discussions
Trending Discussions on api-gateway
QUESTION
In my GCP project, I have a python API running in a docker container (using connexion). I want to expose the API (with an API key) using API Gateway.
When I deploy the docker container with --ingress internal
, I get Access is forbidden.
on API calls over the Gateway. So the API gateway cannot access the Google Run container.
When I use --ingress all
, all works as expected, but then my internal API is accessible from the web, which is not what I want.
I created a service account for this:
...ANSWER
Answered 2021-Jun-13 at 12:12Ingress internal means "Accept only the requests coming from the project's VPC or VPC SC perimeter".
When you use API Gateway, you aren't in your VPC, it's serverless, it's in Google Cloud managed VPC. Therefore, your query are forbidden.
And because API Gateway can't be plugged to a VPC Connector (for now) and thus can't route the request to your VPC, you can't use this ingress=internal mode.
Thus, the solution is to set an ingress to all, which is not a concern is you authorize only the legit accounts to access it.
For that, check in Cloud Run service is there is allUsers granted with the roles/run.invoker in your project.
- If yes, remove it
Then, create a service account and grant it the roles/run.invoker on the Cloud Run service.
Follow this documentation
- Step 4: update the x-google-backend in your OpenAPI spec file to add the correct authentication audience when you call your Cloud Run (it's the base service URL)
- Step 5: create a gateway with a backend service account; set the service account that you created previously
At the end, only the account authenticated and authorized will be able to reach your Cloud Run service
All the unauthorized access are filtered by Google Front End and discarded before reaching your service. Therefore, your service isn't invoked for nothing and therefore your pay nothing!
Only API Gateway (and the potential other accounts that you let on the Cloud Run service) can invoke to the Cloud Run service.
So, OK, your URL is public, reachable from the wild internet, but protected with Google Front End and IAM.
QUESTION
I am creating a script that starts a build in AWS Codebuild. In addition to running it, I would like that when the build completes (reaches the COMPLETED phase) and reads the string "COMPLETED", it stops.
This is the script:
...ANSWER
Answered 2021-Jun-08 at 23:54Your COMPLETE is actually "COMPLETE"
because you do not use -r
flag in jq
. Also you have to wrap your getStatus
as $(getStatus)
and use [[
in loop:
QUESTION
I was using this technique (How could I retrieve AWS Lambda public IP address by using Python?) but it gives the IPAddress of the Lambda Server within AWS.
Based on this: How can I retrieve a user's public IP address via Amazon API Gateway + Lambda (node), it looks like I should be able to use
...ANSWER
Answered 2021-Jun-07 at 08:00You can try this:
- Add the X-Forwarded-For to the "HTTP Request Headers" (goto the API-Gateway configuration -> Resources -> Method Request).
- Add a Template with Content-Type: application/json (Resources -> Integration Request -> "Mapping Templates")
- Add a Mapping to the template
QUESTION
In AWS, I have an EC2 with a private IP in a VPC with no online access.
I sat up a private VPC endpoint to a Gateway API following the instructions here: How to create a VPC endpoint for API Gateway
So now, I can send requests to a Lambda:
curl -i "https://xxxxx-vpce-xxxxxx.execute-api.us-east-1.amazonaws.com/Test/"
For now, my lambda just returns a message, no matter the request:
...ANSWER
Answered 2021-May-26 at 18:52You are trying to use API Gateway as a HTTP Proxy which is the reason why you are getting "403 Forbidden error".
You can look into what is happening by using --trace-ascii option in curl.
Use this command :
QUESTION
I am experimenting with an AWS API-Gateway integration with an S3 backend. I have noticed the switch between different mapping-templates in the integration-response does not appear to work.
In integration-response, I have the following mapping templates:
application/json:
...ANSWER
Answered 2021-May-24 at 11:10AWS Support confirmed to me that the switch is based on the original request Accept
header. Testing this using Postman confirms this functionality.
The test tools built into the AWS console for API-Gateway however do not appear to cater for testing response mapping templates - from AWS support: the purpose of API Gateway test console is only to test the Integration, it doesn't work for end-to-end request
.
QUESTION
There is a similar question but it does not use AWS::ApiGatewayV2::Stage
, and I need the AutoDeploy
that only the V2 seems to provide.
How do I enable CloudWatch logs and log full message data (as per the image) using CloudFormation in an AWS API Gateway?
I can't find anything at the documentation for the Stage https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-deploymentid
I am using an autodeployed stage. I am able to create the log groups, the IAM role to write logs in CloudWatch, but I can't enable the logging itself.
...ANSWER
Answered 2021-May-24 at 10:54How do I enable CloudWatch logs and log full message data (as per the image) using CloudFormation in an AWS API Gateway?
You can't. Execution logs are not supported by HTTP API (i.e. ApiGatewayV2) as explained by AWS here:
HTTP APIs currently support access logging only, and logging setup is different for these APIs. For more information, see Configuring logging for an HTTP API.
QUESTION
I have a problem with my HTTP integration for an AWS API Gateway that uses WEBSOCKET
These are the main characteristics of my configuration (it can be viewed in detail in the cloud formation template at the end of the post):
- Api Gateway Websocket
- Route selection expression
$request.body.action
- Disabled execute api endpoint because I'm using a custom domain, although it does not seem to make any difference if I use the Api Gateway direct url instead
- Routes
$connect
, asend
and a$disconnect
- Integration type is
HTTP_PROXY
- The integration Uri (and here is the interesting part) is a URL that points to my custom domain, and the DNS resolves as ANOTHER Api Gateway in my AWS account (an
HTTP
one) that integrates with a private ALB through a VPC_LINK and reaches a web service in an ECS cluster (I guess this is irrelevant now). - Bot Api Gateway, the http one and the websocket one, use a custom domain
api.mycompany.io
andws.mycompany.io
with a TLS certificate*.mycompany.io
- The HTTP services run in a private subnet, but they're perfectly reachable from internet. I can send http requests and get back responses.
When I do
...ANSWER
Answered 2021-May-24 at 09:18I solved it.
The reason it failed with the "real" http integration pointing to my service is due to some http headers.
I reproduced the issue by accessing the cloud watch logs and viewing all the http headers that were being used in the actual http integration call, and, in PostMan, making a request to my service with exactly those headers. As expected, I got 400 Bad Request.
QUESTION
I have three service that I need to expose via istio ingress gateway, i have setup those services dns records to point to the ingress gateway load balancer but i have not succeded to make it work.
The gateway and virtual service config file :
...ANSWER
Answered 2021-May-21 at 14:44I guess the URI part of the HttpMatchRequest does not work that way. Try to add VirtualServices for each subdomain, i.e. something like.
QUESTION
The full path to the endpoint with the query string parameters is:
...ANSWER
Answered 2021-May-21 at 00:52let params = {};
let pathTemplate = '/getData';
let additionalParams = {
queryParams: {
param0: 'value0',
param1: 'value1'
}
};
QUESTION
According to official docs defining a custom out sequence and adding would remove any unwanted header from api response, yet I'm not getting any success defining a custom global out sequence and trying to remove Server out of response headers nor any other headers as well.
ANSWER
Answered 2021-May-19 at 08:31For anybody struggling with this, all you have to do is to add this Entry into your deployment.toml
file:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install api-gateway
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page