API 名称:CreateListener。
API 域名:open.volcengineapi.com 。
API 描述:创建监听器。
节流限制:每秒最多提交 5 个 API 请求。
在使用该部分 API 提交请求时必须包含以下 URI 参数。
除了 URI 参数,该 API 请求还需要包含签名参数。关于更多签名参数的信息,参见公共请求参数。
名称 | 类型 | 是否必选 | 格式 | 说明 |
---|---|---|---|---|
Action | string | 是 | [a-zA-Z]+ | API 名称,如 CreateListener。 |
Version | string | 是 | YYYY-MM-DD | API 版本信息。该参数的取值是 2020-04-01 。 |
X-Expires | int | 否 | 900 | 表示签名的有效时间,单位是秒,默认值是900。 |
在使用该 API 提交请求时,请求参数中可以包含的参数如下。
参数 | 类型 | 是否必选 | 参数说明 | 示例值 |
---|---|---|---|---|
LoadBalancerId | String | 是 | 监听器所属的负载均衡实例ID | alb-abcderf****** |
ListenerName | String | 否 | 监听器的名字。
| test |
Protocol | String | 是 | 监听器的协议,包括 HTTP 协议和 HTTPS 协议。 | HTTP |
Port | Integer | 是 | 监听器的监听端口,取值:1 - 65535 。 | 80 |
Enabled | String | 否 | 监听器开启/关闭,取值如下:
| on |
CertificateSource | String | 否 | 监听器关联的默认证书的来源,该参数仅对 HTTPS 监听器有效,取值:
| cert_center |
CertificateId | String | 否 | 监听器关联的证书ID,创建 HTTPS 监听器且证书来源为 alb 时必传。 | cert-******** |
CertCenterCertificateId | String | 否 | 监听器关联的证书ID,创建 HTTPS 监听器且证书来源为 cert_center 时必传。 | cert-******** |
CACertificateId | String | 否 | 监听器关联的 CA 证书 ID,创建 HTTPS 监听器时指定 CA 证书,则支持双向认证,否则为单向认证。 | cert-******** |
ServerGroupId | String | 是 | 监听器关联的默认服务器组 ID 。 | rsp-******** |
EnableHttp2 | String | 否 | HTTP2.0 特性开关,该参数仅对 HTTPS 监听器有效,取值如下:
| off |
EnableQuic | String | 否 | QUIC 特性开关,该参数仅对 HTTPS 监听器有效,取值如下:
| off |
AclStatus | String | 否 | 是否开启访问控制功能。取值如下:
| off |
AclType | String | 否 | 访问控制的方式。取值如下:
| black |
AclIds.N | List of String | 否 | 监听器绑定的访问控制策略组ID。
| AclIds.1=acl-3cj44nv0jhhxc6c6rrtet****& AclIds.2=acl-2febxt4pu0zy85oxruw0t**** |
Description | String | 否 | 监听器的描述信息。
| test |
DomainExtensions | - | 否 | 需要关联的扩展域名列表,仅HTTPS监听器生效。 | - |
Tags | Array | 否 | 监听器所属标签,具体参见下表 Tags。 | - |
DomainExtensions
参数 | 类型 | 是否必选 | 参数说明 | 示例值 |
---|---|---|---|---|
DomainExtensions.N.Domain | List of Struct | 否 | 域名。 - N:表示域名的序号,一个HTTPS监听器能关联的扩展域名上限为20个,取值1~20。 具体格式规范如下:
| DomainExtensions.1.Domain=abc.com&DomainExtensions.2.Domain=def.com |
DomainExtensions.N.CertificateSource | String | 否 |
|
DomainExtensions.1.CertificateSource=cert_center&DomainExtensions.2.CertificateSource=alb |
DomainExtensions.N.CertificateId | String | 否 |
| DomainExtensions.1.CertificateId=cert-qwertyuqwert&DomainExtensions.2.CertificateId=cert-zxcvbgasdfn |
DomainExtensions.N.CertCenterCertificateId | String | 否 |
| DomainExtensions.1.CertCenterCertificateId=cert-qwertyuqwert&DomainExtensions.2.CertCenterCertificateId=cert-zxcvbgasdfn |
Tags
参数 | 类型 | 是否必选 | 参数说明 | 示例 |
---|---|---|---|---|
Tags.N.Key | String | 是 | 用户标签的标签键。具体规则如下:
| Tags.1.Key=k1&Tags.2.Key=k2 |
Tags.N.Value | String | 否 | 用户标签的标签值。如果传入该参数,则必须先传入Tags.N.Key。具体规则如下:
| Tags.1.Value=v1&Tags.2.Value=v2 |
参数 | 类型 | 参数说明 | 示例值 |
---|---|---|---|
RequestId | String | 请求 ID。 | 20210811152539010225146063030**** |
ListenerId | String | 监听器 ID。 | lsn-2fek3rgsxhrsw5oxruwec**** |
GET /?Action=CreateListener&CertificateId=&Description=test&Enabled=on&ListenerName=TEST&LoadBalancerId=alb-1g1f1c6a****88ibuxws5k0k3&Port=12&Protocol=HTTP&ServerGroupId=rsp-2ff2u2282****5oxruwe33hdz&Version=2020-04-01" HTTP/1.1 Host: open.volcengineapi.com Region: cn-beijing ServiceName: alb
{ "ResponseMetadata": { "RequestId": "20210816110638****2514606306AF947C", "Action": "CreateListener", "Version": "2020-04-01", "Service": "alb", "Region": "cn-beijing" }, "Result": { "RequestId": "202108161106****22514606306AF947C", "ListenerId": "lsn-1g0swqx5fnqbk8ibuxyfxp2rd" } }
如果响应正文包含 Error 字段,则表示 API 请求失败。此处仅展示当前 API 的错误码,更多错误码请参见公共错误码。
HTTP Code | 错误码 | 错误信息 | 错误描述 |
---|---|---|---|
400 | OperationDenied.AccountArrears | The request on the specified resource is denied due to the account being in arrears status. | 因账号处于欠费状态,对于该资源的操作请求被拒绝。 |
400 | InvalidPort.Malformed | The specified Port is malformed. | 指定的 Port 参数格式不合法。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'ServerGroupId'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: ServerGroupId。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'CertificateId'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: CertificateId。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'CertCenterCertificateId'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: CertCenterCertificateId。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'DomainExtensions.CertificateId'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: DomainExtensions.CertificateId。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'DomainExtensions.CertCenterCertificateId'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: DomainExtensions.CertCenterCertificateId。 |
400 | InvalidServerGroup.InvalidStatus | The specified ServerGroup is not in the correct status for the request. | 指定的服务器组所处状态无法响应该请求。 |
400 | InvalidVpcForServerGroup.LoadBalancerMismatch | The specified VPC of ServerGroup and LoadBalancer do not match. | 指定的服务器组和 ALB 实例的 VPC 不匹配。 |
400 | InvalidListenerName.Malformed | The specified ListenerName is malformed. | 指定的 ListenerName 参数格式不合法。 |
400 | InvalidDescription.Malformed | The specified Description is malformed. | 指定的 Description 参数格式不合法。 |
400 | InvalidAclStatus.Malformed | The specified AclStatus is malformed. | 指定的 AclStatus 参数格式不合法。 |
400 | InvalidAclType.Malformed | The specified AclType is malformed. | 指定的 AclType 参数格式不合法。 |
400 | InvalidDomainExtensions.CertificateSource.Malformed | The specified DomainExtensions.CertificateSource is malformed. | 指定的 DomainExtensions.CertificateSource 参数格式不合法。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'AclIds'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: AclIds。 |
400 | InvalidAclId.Duplicated | The specified AclId is duplicated. | 指定的 AclId 重复。 |
400 | OperationFailed.QueryProject | The request on the specified resource failed due to the query on project failed. | 因查询项目失败,对于该资源的操作请求失败。 |
400 | MissingParameter | The request is missing a required parameter. Ensure that you have supplied all the required parameters for the request; for example, 'CertificateId'. | 该请求缺少必要参数。请确保发起请求已提供全部必要参数,比如: CertificateId。 |
400 | InvalidCertificateType.FunctionMismatch | The specified Certificate's type and Function do not match. | 指定的证书的类型与预期功能不匹配。 |
400 | InvalidServerCertificate.InvalidStatus | The specified Server Certificate is not in the correct status for the request. | 指定的服务器证书所处状态无法响应该请求。 |
400 | InvalidCertificateServiceSSLCertificate.InvalidStatus | The specified Certificate Service SSL Certificate is not in the correct status for the request. Please check if the certificate has been issued. | 指定的证书中心 SSL 证书所处状态无法响应该请求。请确认证书处于已签发状态。 |
400 | InvalidIndexOrder.Malformed | The specified index order is malformed. | 指定的索引顺序参数格式不合法。 |
400 | InvalidDomainExtensions.Domain.Malformed | The specified DomainExtensions.Domain is malformed. | 指定的 DomainExtensions.Domain 参数格式不合法。 |
400 | InvalidDomainExtensions.Domain.Duplicated | The specified DomainExtensions.Domain is duplicated. Domain Extensions in one listener can not be same. | 指定的 DomainExtensions.Domain 重复。一个监听器下关联的扩展域名不能重复。 |
400 | InvalidDomainExtensions.Certificate.InvalidStatus | The specified DomainExtension Certificate is not in the correct status for the request. | 指定的扩展域名证书所处状态无法响应该请求。 |
400 | InvalidCACertificate.InvalidStatus | The specified CA Certificate is not in the correct status for the request. | 指定的 CA 证书所处状态无法响应该请求。 |
400 | InvalidProtocol.Malformed | The specified Protocol is malformed. | 指定的 Protocol 参数格式不合法。 |
400 | InvalidEnabled.Malformed | The specified Enabled is malformed. | 指定的 Enabled 参数格式不合法。 |
400 | InvalidEnableHttp2.Malformed | The specified EnableHttp2 is malformed. | 指定的 EnableHttp2 参数格式不合法。 |
400 | InvalidEnableQuic.Malformed | The specified EnableQuic is malformed. | 指定的 EnableQuic 参数格式不合法。 |
400 | InvalidCertificateSource.Malformed | The specified CertificateSource is malformed. | 指定的 CertificateSource 参数格式不合法。 |
400 | OperationDenied.DualStackEnableQuicUnsupported | The request on the specified Listener is denied due to the dual stack load balancer listener not support to enable quic. | 因双栈 ALB 实例暂时不支持监听器开启 Quic,对于该监听器的操作请求被拒绝。 |
400 | OperationFailed.QueryIAM | The request on the specified resource failed due to the query on IAM failed. | 因请求 IAM 失败,对于该资源的操作请求失败。 |
400 | OperationFailed.QueryCertificateService | The request on the specified resource failed due to the query on Certificate Service failed. | 因请求证书中心服务失败,对于该资源的操作请求失败。 |
400 | OperationFailed.OperateGtmFailed | The request on the specified resource failed due to operating gtm failed. | 因操作 GTM 实例失败,对于该资源的操作请求失败。 |
400 | OperationFailed.AddIntoProjectFailed | The request on the specified resource failed due to adding it into the project failed. | 因将资源加入至项目中失败,对于该资源的操作请求失败。 |
400 | QuotaExceed.ListenerPerInstance | You've reached the limit on the number of listeners per ALB you can add in, resource xxx, usage xx/xx. | 已达到每个 ALB 实例可创建的监听器的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | QuotaExceed.ServerPerInstance | You've reached the limit on the number of backend servers per ALB you can associate with, resource xxx, usage xx/xx. | 已达到每个实例可关联的后端服务器的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | QuotaExceed.SniDomainPerListener | You've reached the limit on the number of sni domains per listener you can associate with, resource xxx, usage xx/xx. | 已达到每个监听器可关联的 sni 域名的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | QuotaExceed.AclPerListener | You've reached the limit on the number of ACLs per listener you can associate with, resource xxx, usage xx/xx. | 已达到每个监听器可关联的 ACL 的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | QuotaExceed.ListenerPerAcl | You've reached the limit on the number of listeners per ACL you can associate with, resource xxx, usage xx/xx. | 已达到每个 ACL 可关联的监听器的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | QuotaExceed.RulePerGroup | You've reached the limit on the number of rules per server group you can associate with, resource xxx, usage xx/xx. | 已达到每个服务器组可关联转发规则的数量上限。资源是xxx,目前已使用xxx,配额为xxx。 |
400 | OperationFailed.AddTagFailed | The request on the specified resource failed due to adding tag to the resource failed. | 因给资源添加标签失败失败,对于该资源的操作请求失败。 |
400 | InvalidCertificateId.Duplicated | The specified CertificateId is duplicated. Certificates in one listener can not be same. | 指定的 CertificateId 重复。一个监听器下的证书不能重复。 |
404 | InvalidLoadBalancer.NotFound | The specified LoadBalancer does not exist. | 指定的 ALB 实例不存在。 |
404 | InvalidServerGroup.NotFound | The specified ServerGroup does not exist. | 指定的服务器组不存在。 |
404 | InvalidAcl.NotFound | The specified ACL does not exist. | 指定的 ACL 不存在。 |
404 | InvalidProject.NotFound | The specified Project does not exist. | 指定的项目不存在。 |
404 | InvalidServerCertificate.NotFound | The specified Server Certificate does not exist. | 指定的服务器证书不存在。 |
404 | InvalidDomainExtensions.Certificate.NotFound | The specified DomainExtension Certificate does not exist. | 指定的扩展域名证书不存在。 |
404 | InvalidCACertificate.NotFound | The specified CA Certificate does not exist. | 指定的 CA 证书不存在。 |
409 | InvalidPort.Conflict | The specified Port already exists. | 指定的端口已存在。 |