Skip to content

Commit

Permalink
Merge pull request #74 from Azure/dev
Browse files Browse the repository at this point in the history
Merge dev to main
  • Loading branch information
madelinegordon authored Jun 2, 2022
2 parents 7cce215 + 3cef6c2 commit 6cccbbf
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 27 deletions.
9 changes: 0 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,6 @@ From within the Azure Functions language worker repo:
- `git commit -m "Updated subtree from https://github.com/azure/azure-functions-language-worker-protobuf. Tag: <tag-name>. Commit: <commit hash>"`
- `git push`

## Releasing a Language Worker Protobuf version

1. Draft a release in the GitHub UI
- Be sure to include details of the release
2. Create a release version, following semantic versioning guidelines ([semver.org](https://semver.org/))
3. Tag the version with the pattern: `v<M>.<m>.<p>-protofile` (example: `v1.1.0-protofile`)
4. Merge `dev` to `main`
5. Run the release you'd created

## Consuming FunctionRPC.proto
*Note: Update versionNumber before running following commands*

Expand Down
43 changes: 25 additions & 18 deletions src/proto/FunctionRpc.proto
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,21 @@ message StreamingMessage {
oneof content {

// Worker initiates stream
StartStream start_stream = 20;
StartStream start_stream = 20;

// Host sends capabilities/init data to worker
WorkerInitRequest worker_init_request = 17;
// Worker responds after initializing with its capabilities & status
WorkerInitResponse worker_init_response = 16;

// Worker periodically sends empty heartbeat message to host
WorkerHeartbeat worker_heartbeat = 15;

// Host sends terminate message to worker.
// Worker terminates if it can, otherwise host terminates after a grace period
WorkerTerminate worker_terminate = 14;

// Host periodically sends status request to the worker
// Add any worker relevant status to response
WorkerStatusRequest worker_status_request = 12;
WorkerStatusResponse worker_status_response = 13;

Expand All @@ -46,25 +49,25 @@ message StreamingMessage {

// Worker requests a desired action (restart worker, reload function)
WorkerActionResponse worker_action_response = 7;

// Host sends required metadata to worker to load function
FunctionLoadRequest function_load_request = 8;
// Worker responds after loading with the load result
FunctionLoadResponse function_load_response = 9;

// Host requests a given invocation
InvocationRequest invocation_request = 4;

// Worker responds to a given invocation
InvocationResponse invocation_response = 5;

// Host sends cancel message to attempt to cancel an invocation.
// Host sends cancel message to attempt to cancel an invocation.
// If an invocation is cancelled, host will receive an invocation response with status cancelled.
InvocationCancel invocation_cancel = 21;

// Worker logs a message back to the host
RpcLog rpc_log = 2;

FunctionEnvironmentReloadRequest function_environment_reload_request = 25;

FunctionEnvironmentReloadResponse function_environment_reload_response = 26;
Expand All @@ -88,15 +91,15 @@ message StreamingMessage {
// Process.Start required info
// connection details
// protocol type
// protocol version
// protocol version

// Worker sends the host information identifying itself
message StartStream {
// id of the worker
string worker_id = 2;
}

// Host requests the worker to initialize itself
// Host requests the worker to initialize itself
message WorkerInitRequest {
// version of the host sending init request
string host_version = 1;
Expand Down Expand Up @@ -147,6 +150,11 @@ message StatusResult {
repeated RpcLog logs = 3;
}

// TODO: investigate grpc heartbeat - don't limit to grpc implemention

// Message is empty by design - Will add more fields in future if needed
message WorkerHeartbeat {}

// Warning before killing the process after grace_period
// Worker self terminates ..no response on this
message WorkerTerminate {
Expand Down Expand Up @@ -177,25 +185,24 @@ message FileChangeEventRequest {

// Indicates whether worker reloaded successfully or needs a restart
message WorkerActionResponse {
// indicates whether a restart is needed, or reload successfully
// indicates whether a restart is needed, or reload succesfully
enum Action {
Restart = 0;
Reload = 1;
}

// action for this response
Action action = 1;

// text reason for the response
string reason = 2;
}

// Used by the host to determine worker health
message WorkerStatusRequest {
// NOT USED
message WorkerStatusRequest{
}

// Worker responds with status message
// TODO: Add any worker relevant status to response
// NOT USED
message WorkerStatusResponse {
}

Expand Down Expand Up @@ -264,7 +271,7 @@ message RpcFunctionMetadata {

// base directory for the Function
string directory = 1;

// Script file specified
string script_file = 2;

Expand Down Expand Up @@ -485,7 +492,7 @@ message BindingInfo {
DataType data_type = 4;
}

// Used to send logs back to the Host
// Used to send logs back to the Host
message RpcLog {
// Matching ILogger semantics
// https://github.com/aspnet/Logging/blob/9506ccc3f3491488fe88010ef8b9eb64594abf95/src/Microsoft.Extensions.Logging/Logger.cs
Expand Down Expand Up @@ -536,7 +543,7 @@ message RpcLog {
map<string, TypedData> propertiesMap = 9;
}

// Encapsulates an Exception
// Encapsulates an Exception
message RpcException {
// Source of the exception
string source = 3;
Expand Down Expand Up @@ -598,7 +605,7 @@ message RpcHttpCookie {
// TODO - solidify this or remove it
message RpcHttp {
string method = 1;
string url = 2;
string url = 2;
map<string,string> headers = 3;
TypedData body = 4;
map<string,string> params = 10;
Expand Down

0 comments on commit 6cccbbf

Please sign in to comment.