mirror of
https://github.com/php-win-ext/grpc.git
synced 2026-04-27 02:38:13 +02:00
41ec08c69a
* Update third_party/protobuf * run tools/distrib/python/make_grpcio_tools.py * regenerate protos for ruby, php * update build_handwritten.yaml * regenerate projects * Build - Use :well_known_type_protos instead of :well_known_protos * Fix target * Update upb * Update Python for Protobuf 4.21 (#140) * Update protobuf dependency on grpcio-tools * Off by one * Drop python 3.6 support * Try upgrading pip * And in the other script * Try to figure out if we're compatible with abi3 * See what we've already got installed * Update the requirements.txt file I didn't know existed * And here too * See what's installed * Let's try that again * Remove * Try to confirm version * Let me see the generated code * Fix non-Bazel test runner * Work for all test directories * Regenerate example protos * Clean up * Generate .pyi files * Fix type checking and linting * Exclude pyi files from isort * Upgrade to 3.21.4 * Update iwyu to get around messy protobuf IWYU rules Co-authored-by: Richard Belleville <gnossen@gmail.com>
gRPC Hostname Example
The hostname example is a Hello World server whose response includes its hostname. It also supports health and reflection services. This makes it a good server to test infrastructure, like load balancing. This example depends on a gRPC version of 1.28.1 or newer.
Run the Server
- Navigate to this directory:
cd grpc/examples/python/xds
- Run the server
virtualenv venv -p python3
source venv/bin/activate
pip install -r requirements.txt
python server.py
Run the Client
- Set up xDS configuration.
After configuring your xDS server to track the gRPC server we just started, create a bootstrap file as desribed in gRFC A27:
{
xds_servers": [
{
"server_uri": <string containing URI of xds server>,
"channel_creds": [
{
"type": <string containing channel cred type>,
"config": <JSON object containing config for the type>
}
]
}
],
"node": <JSON form of Node proto>
}
- Point the
GRPC_XDS_BOOTSTRAPenvironment variable at the bootstrap file:
export GRPC_XDS_BOOTSTRAP=/etc/xds-bootstrap.json
- Run the client:
python client.py xds:///my-backend
Verifying Configuration with a CLI Tool
Alternatively, grpcurl can be used to verify your server. If you don't have it,
install grpcurl. This will allow
you to manually test the service.
Be sure to set up the bootstrap file and GRPC_XDS_BOOTSTRAP as in the previous
section.
- Verify the server's application-layer service:
> grpcurl --plaintext -d '{"name": "you"}' localhost:50051
{
"message": "Hello you from rbell.svl.corp.google.com!"
}
- Verify that all services are available via reflection:
> grpcurl --plaintext localhost:50051 list
grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection
helloworld.Greeter
- Verify that all services are reporting healthy:
> grpcurl --plaintext -d '{"service": "helloworld.Greeter"}' localhost:50051
grpc.health.v1.Health/Check
{
"status": "SERVING"
}
> grpcurl --plaintext -d '{"service": ""}' localhost:50051
grpc.health.v1.Health/Check
{
"status": "SERVING"
}
Running with Proxyless Security
Run the Server with Secure Credentials
Add the --secure true flag to the invocation outlined above.
python server.py --secure true
Run the Client with Secure Credentials
Add the --secure true flag to the invocation outlined above.
- Run the client:
python client.py xds:///my-backend --secure true