CustomDomain

class CustomDomain : KotlinCustomResource

Provides an Alicloud Function Compute custom domain resource. For the detailed information, please refer to the developer guide.

NOTE: Available since v1.98.0.

Example Usage

Basic Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.RandomInteger;
import com.pulumi.random.RandomIntegerArgs;
import com.pulumi.alicloud.log.Project;
import com.pulumi.alicloud.log.Store;
import com.pulumi.alicloud.log.StoreArgs;
import com.pulumi.alicloud.ram.Role;
import com.pulumi.alicloud.ram.RoleArgs;
import com.pulumi.alicloud.ram.RolePolicyAttachment;
import com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;
import com.pulumi.alicloud.fc.Service;
import com.pulumi.alicloud.fc.ServiceArgs;
import com.pulumi.alicloud.fc.inputs.ServiceLogConfigArgs;
import com.pulumi.alicloud.oss.Bucket;
import com.pulumi.alicloud.oss.BucketArgs;
import com.pulumi.alicloud.oss.BucketObject;
import com.pulumi.alicloud.oss.BucketObjectArgs;
import com.pulumi.alicloud.fc.Function;
import com.pulumi.alicloud.fc.FunctionArgs;
import com.pulumi.alicloud.fc.CustomDomain;
import com.pulumi.alicloud.fc.CustomDomainArgs;
import com.pulumi.alicloud.fc.inputs.CustomDomainRouteConfigArgs;
import com.pulumi.alicloud.fc.inputs.CustomDomainCertConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var defaultRandomInteger = new RandomInteger("defaultRandomInteger", RandomIntegerArgs.builder()
.max(99999)
.min(10000)
.build());
var defaultProject = new Project("defaultProject");
var defaultStore = new Store("defaultStore", StoreArgs.builder()
.project(defaultProject.name())
.build());
var defaultRole = new Role("defaultRole", RoleArgs.builder()
.document("""
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"fc.aliyuncs.com"
]
}
}
],
"Version": "1"
}
""")
.description("this is a example")
.force(true)
.build());
var defaultRolePolicyAttachment = new RolePolicyAttachment("defaultRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
.roleName(defaultRole.name())
.policyName("AliyunLogFullAccess")
.policyType("System")
.build());
var defaultService = new Service("defaultService", ServiceArgs.builder()
.description("example-value")
.role(defaultRole.arn())
.logConfig(ServiceLogConfigArgs.builder()
.project(defaultProject.name())
.logstore(defaultStore.name())
.enableInstanceMetrics(true)
.enableRequestMetrics(true)
.build())
.build());
var defaultBucket = new Bucket("defaultBucket", BucketArgs.builder()
.bucket(defaultRandomInteger.result().applyValue(result -> String.format("terraform-example-%s", result)))
.build());
var defaultBucketObject = new BucketObject("defaultBucketObject", BucketObjectArgs.builder()
.bucket(defaultBucket.id())
.key("index.py")
.content("""
import logging
def handler(event, context):
logger = logging.getLogger()
logger.info('hello world')
return 'hello world' """)
.build());
var defaultFunction = new Function("defaultFunction", FunctionArgs.builder()
.service(defaultService.name())
.description("example")
.ossBucket(defaultBucket.id())
.ossKey(defaultBucketObject.key())
.memorySize("512")
.runtime("python2.7")
.handler("hello.handler")
.build());
var defaultCustomDomain = new CustomDomain("defaultCustomDomain", CustomDomainArgs.builder()
.domainName("terraform.functioncompute.com")
.protocol("HTTP")
.routeConfigs(CustomDomainRouteConfigArgs.builder()
.path("/login/*")
.serviceName(defaultService.name())
.functionName(defaultFunction.name())
.qualifier("?query")
.methods(
"GET",
"POST")
.build())
.certConfig(CustomDomainCertConfigArgs.builder()
.certName("example")
.certificate("""
-----BEGIN CERTIFICATE-----
MIICWD****-----END CERTIFICATE----- """)
.privateKey("""
-----BEGIN RSA PRIVATE KEY-----
MIICX****n-----END RSA PRIVATE KEY----- """)
.build())
.build());
}
}

Import

Function Compute custom domain can be imported using the id or the domain name, e.g.

$ pulumi import alicloud:fc/customDomain:CustomDomain foo my-fc-custom-domain

*/

Properties

Link copied to clipboard
val accountId: Output<String>

The account id.

Link copied to clipboard
val apiVersion: Output<String>

The api version of Function Compute.

Link copied to clipboard

The configuration of HTTPS certificate.See cert_config below.

Link copied to clipboard
val createdTime: Output<String>

The date this resource was created.

Link copied to clipboard
val domainName: Output<String>

The custom domain name. For example, "example.com".

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

The date this resource was last modified.

Link copied to clipboard
val protocol: Output<String>

The protocol, HTTP or HTTP,HTTPS.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The configuration of domain route, mapping the path and Function Compute function.See route_config below.

Link copied to clipboard
val urn: Output<String>