@@ -232,6 +232,63 @@ def get_deployment(self) -> AbstractDeployment:
232232 return RemoteDeployment .from_config (self )
233233
234234
235+ class FCDeploymentConfig (DeploymentConfig ):
236+ """Configuration for Alibaba Cloud Function Compute deployment.
237+
238+ FC (Function Compute) is Alibaba Cloud's serverless compute service.
239+ This deployment type enables serverless sandbox execution with WebSocket
240+ session management for stateful operations.
241+ """
242+
243+ type : Literal ["fc" ] = "fc"
244+ """Deployment type discriminator."""
245+
246+ session_id : str | None = None
247+ """FC session identifier (also serves as ROCK sandbox_id)."""
248+
249+ # Connection settings
250+ function_name : str | None = None
251+ region : str | None = None
252+ account_id : str | None = None
253+ access_key_id : str | None = None
254+ access_key_secret : str | None = Field (default = None , repr = False , exclude = True )
255+ security_token : str | None = None
256+
257+ # Resource settings
258+ memory : int | None = None
259+ cpus : float | None = None
260+
261+ # Timeout settings (in seconds)
262+ session_ttl : int | None = None
263+ session_idle_timeout : int | None = None
264+ function_timeout : float | None = None
265+
266+ def get_deployment (self ) -> AbstractDeployment :
267+ from rock .deployments .fc import FCDeployment
268+
269+ return FCDeployment .from_config (self )
270+
271+ def merge_with_fc_config (self , fc_config : "FCConfig" ) -> "FCDeploymentConfig" :
272+ """Merge this config with FCConfig defaults."""
273+ from rock .config import FCConfig
274+
275+ return FCDeploymentConfig (
276+ type = self .type ,
277+ session_id = self .session_id ,
278+ function_name = self .function_name or fc_config .function_name ,
279+ region = self .region or fc_config .region ,
280+ account_id = self .account_id or fc_config .account_id ,
281+ access_key_id = self .access_key_id or fc_config .access_key_id ,
282+ access_key_secret = self .access_key_secret or fc_config .access_key_secret ,
283+ security_token = self .security_token or fc_config .security_token ,
284+ memory = self .memory or fc_config .default_memory ,
285+ cpus = self .cpus or fc_config .default_cpus ,
286+ session_ttl = self .session_ttl or fc_config .default_session_ttl ,
287+ session_idle_timeout = self .session_idle_timeout or fc_config .default_session_idle_timeout ,
288+ function_timeout = self .function_timeout or fc_config .default_function_timeout ,
289+ )
290+
291+
235292def get_deployment (config : DeploymentConfig ) -> AbstractDeployment :
236293 """Create a deployment instance from the given configuration.
237294
0 commit comments