Function Compute is a fully managed, event-driven computing service. This topic describes the common usage scenarios of Function Compute and the features that you can use for each scenario. You can select features based on your business requirements.
Category | Feature | Description | Reference |
Service management | Service management | A service is a resource management unit in Function Compute. Before you create a function, you must create a service. Functions that belong to a service inherit settings of the service, such as the permissions and log settings of the service. | |
Version management | You can publish one or more versions for your service. A version is similar to a service snapshot that contains the information such as the service settings, and the code and settings of functions that belong to the service. A version does not contain trigger information. | ||
Alias management | You can create an alias for a service version. An alias can be regarded as a pointer to a specific version of a service. You can use an alias to perform version publish, rollback, or canary release with ease. An alias is dependent on a service or a version. When you use an alias to access a service or function, Function Compute parses the alias into the version to which the alias points. This way, the caller does not need to know the specific version to which the alias points. | ||
Canary release | You can perform canary releases in Function Compute. The canary release feature allows you to have both a new version and the old version available at the same time. You can verify the capabilities of the new version before you divert all the traffic to the new version. You can also switch between the main version and the canary release version by changing the version number to which the alias points. This allows you to smoothly switch traffic between both versions. | ||
Network settings | By default, you can invoke the created functions only over the Internet. You cannot invoke the functions over virtual private clouds (VPCs). If you want a function to access resources in a VPC or allow requests from a specific VPC to invoke a function, you must manually configure the network settings and permissions for the service to which the function belongs. | ||
Logging | Before you use Log Service to store function invocation logs, you must specify a Log Service project and a Log Service Logstore for your service in Function Compute and authorize the service to access Log Service. Function invocation logs are stored in the specified Logstore. All function invocation logs that are generated for a service in the same region are stored in the same Logstore. | ||
Storage | You can configure File Storage NAS (NAS) or Object Storage Service (OSS) mounting for a service in Function Compute. After that, functions in the service can use NAS or OSS to store data in the same way as using local file systems. | ||
Tags | Function Compute allows you to classify service resources that have the same features by using tags. Tags facilitate resource searching and aggregation. You can use tags to group services and authorize different roles to manage services in different groups. | ||
Function management | Function management | A function is a unit that Function Compute schedules and runs. Functions must be deployed in services. In a service, you can create multiple functions that share some identical settings, such as service authorization and log settings. These functions are independent of each other. | |
Layer management | Layers allow you to publish and deploy custom resources such as common dependencies, runtimes, and function extensions. You can extract the public libraries on which functions depend into layers or use the common layers in Function Compute to reduce the sizes of code packages when you deploy and update the functions. | ||
Environment variables | You can use environment variables to flexibly adjust the behaviors of functions in Function Compute without modifying the code. | ||
Custom DNS | The custom DNS feature is suitable for scenarios such as accessing accelerated sites. You can use a specified DNS server to perform DNS resolution. | ||
Function instance management | Instance lifecycle | Function Compute provides runtime extensions, which are developed based on traditional long-running applications to help you reduce the unnecessary costs that are generated by idle instances. Each extension corresponds to a hook, including the initializer hook, PreFreeze hook, and PreStop hook. | |
High concurrency | To reduce instance resource usage, optimize resource costs, and reduce cold starts, Function Compute supports high concurrency of each instance. By default, the concurrency value of an instance is one. In this case, a single instance can process only one request at a time. If you set the InstanceConcurrency parameter to a value greater than 1, Function Compute creates a new instance only when the number of requests to be concurrently processed by the existing instance exceeds the specified value. | ||
Health check | Function Compute supports periodic health checks for function instances to avoid request failures caused by instance exceptions. | ||
CLI-based instance management | CLI-based instance management allows you to run commands on instances in real runtime environments. For example, you can connect to an instance and check the environment details or collect context information by using tools such as Profiling or Coredump to optimize performance. | ||
Function invocation | Synchronous invocation | When a function is invoked in synchronous mode, Function Compute runs the function and waits for a response when an event triggers the function. After the function invocation is complete, Function Compute directly returns the execution results, such as the responses, execution summary, and log output. | |
Asynchronous invocation | When Function Compute receives an asynchronous invocation request, the system immediately returns a response after the request is persisted instead of waiting for the request to be completed before a response is returned. | ||
Asynchronous task | When you invoke a function in asynchronous mode, the requests are persisted to Function Compute queues before they are processed in a reliable manner. If you want to track and save the states of asynchronous invocations in each phase to obtain better task control capabilities and observability, you can enable the task mode to process asynchronous requests. | ||
Scaling of pay-as-you-go instances | To prevent unexpected costs caused by excessive function invocations, Function Compute applies limits on the number of pay-as-you-go instances for each account in a region. In addition, Function Compute provides finer-grained control over the number of instances for on-demand invocations. | Overview of configuring the maximum number of on-demand instances | |
Trigger management | Trigger management | Function Compute provides a computing model in which function execution is driven by events. You can create a trigger for a specified function. The trigger contains a set of rules. When an event that meets the rules occurs, the event source triggers the associated function. | |
Custom domain name | Management of custom domain names | You can bind a custom domain name to a web application to allow users to use the domain name to access the web application. | |
WAF | Alibaba Cloud Web Application Firewall (WAF 3.0) identifies malicious traffic of functions and applications, scrubs and filters out malicious traffic, and returns normal traffic to backend functions to protect your functions against malicious intrusions. | ||
Multi-language runtime | Coding | Function Compute supports Java, Python, Node.js, PHP, Go and .Net Core. It can also build the runtime of other languages by using custom runtimes, such as custom Go runtime, custom Ruby runtime, and custom PowerShell runtime. You can also use custom images as runtimes. For Python, Node.js, and PHP runtimes, you can use a developer tool or SDKs to deploy code, and debug code in the Function Compute console. | |
Programming model extensions | Function Compute provides runtime extensions that are developed based on traditional long-running applications to help you reduce costs that are generated by idle instances. | ||
Serverless Application Center | Application | Serverless Application Center allows you to create scenario-specific applications and import applications. On the Applications page in the Function Compute console, various scenarios and scenario-specific applications are displayed. You can select an application based on your business requirements. | |
Environment | The environment feature provides infrastructure management capabilities. You can isolate services in different environments. For example, you can isolate services in different regions and different VPCs to achieve high availability and low latency for production services. | ||
Pipeline | Serverless Application Center provides basic pipeline capabilities, which allow editable and flexible execution of processes and help you publish code to serverless applications. | ||
Monitoring and alerting | Monitoring metrics | In the Function Compute console, you can view the overview metrics of Function Compute resources and the metrics at the region, service, and function levels. | |
Instance-level metrics | Function Compute provides instance-level metrics that allow you to view core metrics such as vCPU usage, memory usage, the network conditions of instances, and the number of requests that an instance concurrently processes. | ||
Managed Service for OpenTelemetry | Function Compute is integrated with Managed Service for OpenTelemetry, which allows you to track function invocations and helps you analyze and diagnose performance bottlenecks in a serverless architecture. This improves development and diagnostics efficiency in serverless scenarios. | ||
Developer tools | Serverless Devs | Serverless Devs allows you to use serverless services and frameworks in a pluggable manner and develop components and plug-ins. This helps improve O&M efficiency. Serverless Devs also allows you to develop, create, test, and deploy projects in an efficient and easy manner. You can use Serverless Devs to manage the full lifecycles of projects. | |
WebIDE | Web Integrated Development Environment (WebIDE) is an online IDE provided by Alibaba Cloud Function Compute. WebIDE delivers cloud-based development experience that is similar to that of Visual Studio Code (VS Code). | ||
Account management | Resource quota | Function Compute allows you to configure limits on the use of resources to avoid unexpected costs caused by wrong code. | |
Permission management | You can manage the required permissions to allow Function Compute to access other Alibaba Cloud services or trigger functions by using event sources. | ||
RAM-based authorization | By using Resource Access Management (RAM) users, you can grant different permissions to RAM users and Alibaba Cloud account to avoid security risks caused by the exposure of the AccessKey pair of your Alibaba Cloud account. After you grant permissions to RAM users, you can allow only RAM users with the specified permissions to access or manage resources in the Function Compute console. |