Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Exposing GRPC backend as Rest Apigee X proxy

Hi ,

I want to expose a publicly available GRPC app as a REST api on Apigee X.

I created the Target Server as gRPC - External callout type and linked it to the ExternalCallout policy like 

<ExternalCallout continueOnError="false" enabled="true" name="EC-GRPC">
  <DisplayName>EC-GRPC</DisplayName>
  <GrpcConnection>
    <Server name="postman-echo"/>
  </GrpcConnection>
  <TimeoutMs>5000</TimeoutMs>
  <Configurations>
    <Property name="with.request.content">true</Property>
    <Property name="with.request.headers">true</Property>
    <Property name="with.response.content">true</Property>
    <Property name="with.response.headers">true</Property>
    <FlowVariable>example.flow.variable</FlowVariable>
    <FlowVariable>another.flow.variable</FlowVariable>
  </Configurations>
</ExternalCallout>
 
I'm getting this error -
{
    "fault": {
        "faultstring": "Encountered the following exception while sending the gRPC request or processing the response: [io.grpc.StatusRuntimeException: UNIMPLEMENTED: The server does not implement the method /apigee.ExternalCalloutService/ProcessMessage].",
        "detail": {
            "errorcode": "steps.externalcallout.ExecutionError"
        }
    }
}
 
Does this mean I should add more code into the server app to accept apigee rpc calls?
Is there any way to hit the grpc app using server reflection like grpcurl does?
What is the correct way to do this?
0 3 269
3 REPLIES 3