Creates an Alibaba Cloud Service Mesh (ASM) instance.
Debugging
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| Action | String | Yes | CreateServiceMesh | The operation that you want to perform. Set the value to CreateServiceMesh. |
| RegionId | String | Yes | cn-hangzhou | The ID of the region in which the ASM instance resides. |
| IstioVersion | String | No | v1.5.4.1-g5960ec40-aliyun | The Istio version of the ASM instance. |
| VpcId | String | Yes | vpc-xzelac2tw4ic7wz31**** | The ID of the virtual private cloud (VPC). |
| ApiServerPublicEip | Boolean | No | false | Specifies whether to expose the API server to the Internet. Valid values:
Default value: Note If you set this parameter to false, the API server cannot be accessed over the Internet. |
| Tracing | Boolean | No | false | Specifies whether to enable the Tracing Analysis feature. Valid values:
Default value: |
| Name | String | No | mesh1 | The name of the ASM instance. |
| VSwitches | String | Yes | ["vsw-xzegf5dndkbf4m6eg****"] | The ID of the vSwitch to which the ASM instance is connected. |
| TraceSampling | Float | No | 100 | The sampling percentage of tracing analysis. |
| CustomizedZipkin | Boolean | No | false | Specifies whether to use a self-managed Zipkin system to collect tracing data. Valid values:
Default value: |
| LocalityLoadBalancing | Boolean | No | false | Specifies whether to route traffic to the nearest instance. Valid values:
Default value: |
| LocalityLBConf | String | No | {"failover":[{"from":"cn-hangzhou","to":"cn-shanghai"}]} | The configurations for the access to the nearest instance. |
| Telemetry | Boolean | No | false | Specifies whether to enable Prometheus monitoring. We recommend that you use Prometheus Service of Application Real-Time Monitoring Service (ARMS). Valid values:
Default value: |
| OpenAgentPolicy | Boolean | No | false | Specifies whether to install the Open Policy Agent (OPA) plug-in. Valid values:
Default value: |
| OPALogLevel | String | No | info | The log level of OPA. |
| OPARequestCPU | String | No | 1 | The number of CPU cores that are requested by OPA. You can specify the parameter value in the standard representation form of CPUs in Kubernetes. For example, a value of 1 represents one CPU core. |
| OPARequestMemory | String | No | 512Mi | The size of the memory that is requested by OPA. You can specify the parameter value in the standard quantity representation used by Kubernetes. For example, a value of 1 Mi represents a memory size of 1,024 KB. |
| OPALimitCPU | String | No | 2 | The maximum number of CPU cores that are available for OPA. |
| OPALimitMemory | String | No | 1024Mi | The maximum size of the memory that is available for OPA. You can specify the parameter value in the standard quantity representation used by Kubernetes. For example, a value of 1 Mi represents a memory size of 1,024 KB. |
| EnableAudit | Boolean | No | false | Specifies whether to enable the mesh audit feature. To enable this feature, make sure that you have activated Log Service. Valid values:
Default value: |
| AuditProject | String | No | mesh-log-xxxx | The name of the Log Service project that is used for mesh audit. Default value: mesh-log-{ASM instance ID}. |
| ProxyRequestCPU | String | No | 100m | The number of CPU cores that are requested by the proxy container. |
| ProxyRequestMemory | String | No | 128Mi | The size of the memory that is requested by the proxy container. |
| ProxyLimitCPU | String | No | 2000m | The maximum number of CPU cores that are available for the proxy container. |
| ProxyLimitMemory | String | No | 1024Mi | The maximum size of the memory that is available for the proxy container. |
| IncludeIPRanges | String | No | * | The IP ranges in CIDR form to redirect to sidecar proxies in the ASM instance. |
| ExcludeIPRanges | String | No | 100.100.10*.*** | The IP ranges in CIDR form to be excluded from redirection to sidecar proxies in the ASM instance. |
| ExcludeOutboundPorts | String | No | 80,81 | The outbound ports to be excluded from redirection to the sidecar proxies in the ASM instance. Separate multiple port numbers with commas (,). |
| ExcludeInboundPorts | String | No | 80,81 | The inbound ports to be excluded from redirection to the sidecar proxies in the ASM instance. Separate multiple port numbers with commas (,). |
| OpaEnabled | Boolean | No | false | Specifies whether to enable the OPA plug-in. Valid values:
Default value: |
| KialiEnabled | Boolean | No | false | Specifies whether to enable the mesh topology feature. To enable this feature, make sure that you have enabled Prometheus monitoring. If Prometheus monitoring is disabled, you must set this parameter to
Default value: |
| AccessLogEnabled | Boolean | No | false | Specifies whether to enable access log collection. Valid values:
Default value: |
| CustomizedPrometheus | Boolean | No | false | Specifies whether to use a custom Prometheus instance. Valid values:
Default value: |
| PrometheusUrl | String | No | http://prometheus:9090 | The endpoint of the custom Prometheus instance. |
| RedisFilterEnabled | Boolean | No | true | Specifies whether to enable Redis Filter. Valid values:
Default value: |
| MysqlFilterEnabled | Boolean | No | false | Specifies whether to enable MySQL Filter. Valid values:
Default value: |
| ThriftFilterEnabled | Boolean | No | false | Specifies whether to enable Thrift Filter. Valid values:
Default value: |
| WebAssemblyFilterEnabled | Boolean | No | false | Specifies whether to enable WebAssembly Filter. Valid values:
Default value: |
| MSEEnabled | Boolean | No | false | Specifies whether to enable Microservices Engine (MSE). Valid values:
Default value: |
| DNSProxyingEnabled | Boolean | No | false | Specifies whether to enable the DNS proxy feature. Valid values:
Default value: |
| Edition | String | No | Pro | The edition of the ASM instance. |
| ConfigSourceEnabled | Boolean | No | false | Specifies whether to enable the external service registry. Valid values:
Default value: |
| ConfigSourceNacosID | String | No | mse-cn-tl326****** | The instance ID of the Nacos registry. |
| DubboFilterEnabled | Boolean | No | false | Specifies whether to enable Dubbo Filter. Valid values:
Default value: |
| FilterGatewayClusterConfig | Boolean | No | false | Specifies whether to enable gateway configuration filtering. Valid values:
Default value: |
| EnableSDSServer | Boolean | No | false | Specifies whether to enable Secret Discovery Service (SDS). Valid values:
Default value: |
| AccessLogServiceEnabled | Boolean | No | false | Specifies whether to enable gRPC Access Log Service (ALS) for Envoy. Valid values:
Default value: |
| AccessLogServiceHost | String | No | 0.0.0.0 | The endpoint of gRPC ALS for Envoy. |
| AccessLogServicePort | Integer | No | 9999 | The port of gRPC ALS for Envoy. |
| GatewayAPIEnabled | Boolean | No | false | Specifies whether to enable Gateway API. Valid values:
Default value: |
| ControlPlaneLogEnabled | Boolean | No | false | Specifies whether to enable the collection of control-plane logs. Valid values:
Default value: |
| ControlPlaneLogProject | String | No | mesh-log-cf245a429b6ff4b6e97f20797758***** | The name of the Log Service project that is used to collect the logs of the control plane. |
| AccessLogFormat | String | No | {"authority_for":"%REQ(:AUTHORITY)%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%","downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%","duration":"%DURATION%","istio_policy_status":"%DYNAMIC_METADATA(istio.mixer:status)%","method":"%REQ(:METHOD)%","path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","protocol":"%PROTOCOL%","request_id":"%REQ(X-REQUEST-ID)%","requested_server_name":"%REQUESTED_SERVER_NAME%","response_code":"%RESPONSE_CODE%","response_flags":"%RESPONSE_FLAGS%","route_name":"%ROUTE_NAME%","start_time":"%START_TIME%","trace_id":"%REQ(X-B3-TRACEID)%","upstream_cluster":"%UPSTREAM_CLUSTER%","upstream_host":"%UPSTREAM_HOST%","upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%","user_agent":"%REQ(USER-AGENT)%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%"} | The custom format of access logs. To set this parameter, you must enable access log collection. Otherwise, you cannot set this parameter. The value must be a JSON string. The following key names must be contained: authority_for, bytes_received, bytes_sent, downstream_local_address, downstream_remote_address, duration, istio_policy_status, method, path, protocol, requested_server_name, response_code, response_flags, route_name, start_time, trace_id, upstream_cluster, upstream_host, upstream_local_address, upstream_service_time, upstream_transport_failure_reason, user_agent, and x_forwarded_for. |
| AccessLogFile | String | No | /dev/stdout | Specifies whether to enable access logging. Valid values:
|
| AccessLogProject | String | No | mesh-log-cf245a429b6ff4b6e97f20797758***** | The name of the Log Service project that is used to collect access logs. |
| EnableCRHistory | Boolean | No | false | Specifies whether to enable the rollback feature for Istio resources. Valid values:
Default value: |
| CRAggregationEnabled | Boolean | No | false | Specifies whether to allow the Kubernetes API of clusters on the data plane to access Istio resources. To use this feature, the version of the ASM instance must be V1.9.7.93 or later. Valid values:
Default value: |
| GlobalRateLimitEnabled | Boolean | No | false | Specifies whether to enable Application High Availability Service (AHAS)-based throttling. Valid values:
Default value: |
| ApiServerLoadBalancerSpec | String | No | slb.s1.small | The instance type of the Server Load Balancer (SLB) instance bound to the API server. Valid values: |
| PilotLoadBalancerSpec | String | No | slb.s1.small | The instance type of the SLB instance bound to Istio Pilot. Valid values: |
| ChargeType | String | No | PostPaid | The billing method of the SLB instance. Valid values:
|
| Period | Integer | No | 3 | The subscription period of the SLB instance. Unit: month. This parameter is valid only if the ChargeType parameter is set to PrePaid. For example, if the subscription period is one year, set this parameter to 12. |
| AutoRenew | Boolean | No | true | Specifies whether to enable auto-renewal for the SLB instance if the SLB instance uses the subscription billing method. Valid values:
|
| AutoRenewPeriod | Integer | No | 3 | The auto-renewal period of the SLB instance. This parameter is valid only if the |
| ClusterSpec | String | No | standard | The specification of the ASM instance. Valid values:
|
| MultiBufferEnabled | Boolean | No | true | Specifies whether to enable MultiBuffer-based Transport Layer Security (TLS) acceleration. Valid values:
Default value: |
| MultiBufferPollDelay | String | No | 30s | The pull-request latency. Default value: |
| UseExistingCA | Boolean | No | false | Specifies whether to use an existing CA certificate and private key. |
| ExistingCaCert | String | No | N/A | The existing CA certificate, which is encoded in Base64. This parameter is used in scenarios where you migrate open source Istio to ASM. It specifies the content of the ca-cert.pem file in the istio-ca-secret secret. The secret is in the istio-system namespace of the Kubernetes cluster where the open source Istio is installed. |
| ExistingCaKey | String | No | N/A | The existing CA key, which is encoded in Base64. This parameter is used in scenarios where you migrate open source Istio to ASM. It specifies the content of the ca-key.pem file in the istio-ca-secret secret. The secret is in the istio-system namespace of the Kubernetes cluster where the open source Istio is installed. |
| ExistingCaType | String | No | 1 | The type of the existing CA certificate. Valid values:
|
| ExistingRootCaCert | String | No | N/A | The existing root certificate, which is encoded in Base64. |
| ExistingRootCaKey | String | No | N/A | The private key that corresponds to the root certificate, which is encoded in Base64. |
Response parameters
| Parameter | Type | Example | Description |
|---|---|---|---|
| RequestId | String | BD65C0AD-D3C6-48D3-8D93-38D2015C**** | The ID of the request. |
| ServiceMeshId | String | c08ba3fd1e6484b0f8cc1ad8fe10d**** | The ID of the ASM instance. |
Examples
Sample requests
http(s)://[Endpoint]/?Action=CreateServiceMesh
&RegionId=cn-hangzhou
&IstioVersion=v1.5.4.1-g5960ec40-aliyun
&VpcId=vpc-xzelac2tw4ic7wz31****
&ApiServerPublicEip=false
&Tracing=false
&Name=mesh1
&VSwitches=["vsw-xzegf5dndkbf4m6eg****"]
&TraceSampling=100.0
&CustomizedZipkin=false
&LocalityLoadBalancing=false
&LocalityLBConf={"failover":[{"from":"cn-hangzhou","to":"cn-shanghai"}]}
&Telemetry=false
&OpenAgentPolicy=false
&OPALogLevel=info
&OPARequestCPU=1
&OPARequestMemory=512Mi
&OPALimitCPU=2
&OPALimitMemory=1024Mi
&EnableAudit=false
&AuditProject=mesh-log-xxxx
&ProxyRequestCPU=100m
&ProxyRequestMemory=128Mi
&ProxyLimitCPU=2000m
&ProxyLimitMemory=1024Mi
&IncludeIPRanges=*
&ExcludeIPRanges=100.100.10*.***
&ExcludeOutboundPorts=80,81
&ExcludeInboundPorts=80,81
&OpaEnabled=false
&KialiEnabled=false
&AccessLogEnabled=false
&CustomizedPrometheus=false
&PrometheusUrl=http://prometheus:9090
&RedisFilterEnabled=true
&MysqlFilterEnabled=false
&ThriftFilterEnabled=false
&WebAssemblyFilterEnabled=false
&MSEEnabled=false
&DNSProxyingEnabled=false
&Edition=Pro
&ConfigSourceEnabled=false
&ConfigSourceNacosID=mse-cn-tl326******
&DubboFilterEnabled=false
&FilterGatewayClusterConfig=false
&EnableSDSServer=false
&AccessLogServiceEnabled=false
&AccessLogServiceHost=0.0.0.0
&AccessLogServicePort=9999
&GatewayAPIEnabled=false
&ControlPlaneLogEnabled=false
&ControlPlaneLogProject=mesh-log-cf245a429b6ff4b6e97f20797758*****
&AccessLogFormat={"authority_for":"%REQ(:AUTHORITY)%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%","downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%","duration":"%DURATION%","istio_policy_status":"%DYNAMIC_METADATA(istio.mixer:status)%","method":"%REQ(:METHOD)%","path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","protocol":"%PROTOCOL%","request_id":"%REQ(X-REQUEST-ID)%","requested_server_name":"%REQUESTED_SERVER_NAME%","response_code":"%RESPONSE_CODE%","response_flags":"%RESPONSE_FLAGS%","route_name":"%ROUTE_NAME%","start_time":"%START_TIME%","trace_id":"%REQ(X-B3-TRACEID)%","upstream_cluster":"%UPSTREAM_CLUSTER%","upstream_host":"%UPSTREAM_HOST%","upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%","user_agent":"%REQ(USER-AGENT)%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%"}
&AccessLogFile=/dev/stdout
&AccessLogProject=mesh-log-cf245a429b6ff4b6e97f20797758*****
&EnableCRHistory=false
&CRAggregationEnabled=false
&GlobalRateLimitEnabled=false
&ApiServerLoadBalancerSpec=slb.s1.small
&PilotLoadBalancerSpec=slb.s1.small
&ChargeType=PostPaid
&Period=3
&AutoRenew=true
&AutoRenewPeriod=3
&ClusterSpec=standard
&MultiBufferEnabled=true
&MultiBufferPollDelay=30s
&UseExistingCA=false
&ExistingCaCert=Content of the CA certificate, which is encoded in Base64
&ExistingCaKey=Content of the CA key, which is encoded in Base64
&ExistingCaType=1
&ExistingRootCaCert=Content of the root certificate, which is encoded in Base64
&ExistingRootCaKey==Content of the private key that corresponds to the root certificate, which is encoded in Base64
&<Common request parameters>Sample success responses
XML format
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateServiceMeshResponse>
<RequestId>BD65C0AD-D3C6-48D3-8D93-38D2015C****</RequestId>
<ServiceMeshId>c08ba3fd1e6484b0f8cc1ad8fe10d****</ServiceMeshId>
</CreateServiceMeshResponse>JSON format
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "BD65C0AD-D3C6-48D3-8D93-38D2015C****",
"ServiceMeshId" : "c08ba3fd1e6484b0f8cc1ad8fe10d****"
}Error codes
| HttpCode | Error code | Error message | Description |
|---|---|---|---|
| 404 | ERR404 | Not found | The error message returned because the requested resource does not exist. |
For a list of error codes, see Service error codes.