Extends: CloudFunction
Description
The CommandableCloudFunction allows you to create an abstract Google Function function that acts as a container to instantiate and run components and expose them via an external entry point.
Important points
-
All actions are automatically generated for commands defined in ICommandable components. Each command is exposed as an action defined by the “cmd” parameter.
-
Container configuration for this Google Function is stored in "./config/config.yml" file. But this path can be overridden by the CONFIG_PATH environment variable.
-
Note: This component has been deprecated. Use Google FunctionService instead.
References
- *:logger:*:*:1.0: (optional) ILogger components to pass log messages
- *:counters:*:*:1.0: (optional) ICounters components to pass collected measurements
- *:service:gcp-function:*:1.0: (optional) ICloudFunctionService services to handle action requests.
- *:service:commandable-gcp-function:*:1.0: (optional) ICloudFunctionService services to handle action requests.
Constructors
Creates a new instance of this Google Function.
public
CommandableCloudFunction(string name, string description = null)
- name: string - (optional) container’s name (accessible via ContextInfo)
- description: string - (optional) container’s description (accessible via ContextInfo)
Creates a new instance of this Google Function.
public
CommandableCloudFunction()
Instance methods
GetParameters
Returns body from Google Function request. This method can be overloaded in child classes
protected
Task<Parameters> GetParameters(HttpContext context)
- context: HttpContext - Google Function request.
- returns: Parameters - Returns Parameters from request
Register
Registers all actions in this Google Function.
protected
void Register()
Examples
class MyCloudFunction : CommandableCloudFunction
{
private IMyController _controller;
...
public MyCloudFunction() : base("mygroup", "MyGroup CloudFunction")
{
this._dependencyResolver.Put(
"controller",
new Descriptor("mygroup", "controller", "*", "*", "1.0")
);
}
}
...
var cloudFunction = new MyCloudFunction();
await cloudFunction.RunAsync();
Console.WriteLine("MyCloudFunction is started");