Skip to content

Commit 0dd06ef

Browse files
authored
Support grpc options (#188)
support grpc server options Signed-off-by: Matej Ohradzansky <matohradzansky@gmail.com>
1 parent 1d0c36d commit 0dd06ef

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

crossplane/function/runtime.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import asyncio
1818
import os
1919
import signal
20+
from collections.abc import Sequence
21+
from typing import Any
2022

2123
import grpc
2224
from grpc_reflection.v1alpha import reflection
@@ -73,6 +75,7 @@ def serve(
7375
*,
7476
creds: grpc.ServerCredentials,
7577
insecure: bool,
78+
options: Sequence[tuple[str, Any]] | None = None,
7679
) -> None:
7780
"""Start a gRPC server and serve requests asychronously.
7881
@@ -81,6 +84,9 @@ def serve(
8184
address: The address at which to listen for requests.
8285
creds: The credentials used to authenticate requests.
8386
insecure: Serve insecurely, without credentials or encryption.
87+
options: Additional gRPC server options. Eg. set max receive message
88+
size to 5Mb (default is 4Mb):
89+
[("grpc.max_receive_message_length", 1024 * 1024 * 5)]
8490
8591
Raises:
8692
ValueError if creds is None and insecure is False.
@@ -91,7 +97,7 @@ def serve(
9197
# Define the loop before the server so everything uses the same loop.
9298
loop = asyncio.get_event_loop()
9399

94-
server = grpc.aio.server()
100+
server = grpc.aio.server(options=options)
95101

96102
loop.add_signal_handler(
97103
signal.SIGTERM,

0 commit comments

Comments
 (0)