すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:AlbConfig を使用した ALB インスタンスの設定

最終更新日:Mar 11, 2026

AlbConfig は、ALB イングレスコントローラーが Application Load Balancer (ALB) インスタンスおよびリスナーを管理するために使用するカスタムリソース定義 (CRD) です。各 AlbConfig は、1 つの ALB インスタンスにのみ対応します。複数の ALB インスタンスを実行するには、複数の AlbConfig を作成します。

本トピックでは、AlbConfig の作成、更新、削除、リスナーの設定、Ingress リソースへの ALB インスタンスの関連付け、およびアクセスログの収集有効化について説明します。

前提条件

開始する前に、以下の点を確認してください。

ACK 専用クラスターのサービスで ALB イングレスを使用するには、まず、ALB Ingress Controller に必要な権限をクラスターに付与します。 詳細については、「ACK 専用クラスターに ALB Ingress controller へのアクセス権を付与する」をご参照ください。

注意事項

  • AlbConfig リソースを直接編集するには、kubectl edit を使用します。必要に応じて kubectl apply を使用する場合は、適用前に kubectl diff を実行して変更内容をプレビューしてください。

  • クラスターで Flannel ネットワークプラグインを使用している場合、ALB イングレスのバックエンド Services は NodePort 型および LoadBalancer 型のみをサポートします。

AlbConfig の作成

重要

ALB イングレスコントローラーをインストールし、新規作成 または 既存のものを使用ALB クラウドネイティブゲートウェイインスタンスのソース に対して選択すると、コントローラーは自動的に alb という名前の AlbConfig および alb という名前の IngressClass を作成します。

  1. 以下の内容で alb.yaml というファイルを作成します。

       apiVersion: alibabacloud.com/v1
       kind: AlbConfig
       metadata:
         name: alb
       spec:
         config:
           name: alb
           addressType: Internet
           zoneMappings:
           - vSwitchId: vsw-uf6ccg2a9g71hx8go****  # ゾーン A の vSwitch
             allocationId: eip-asdfas****             # (任意)EIP ID
           - vSwitchId: vsw-uf6nun9tql5t8nh15****  # ゾーン B の vSwitch
             allocationId: eip-dpfmss****             # (任意)EIP ID
         listeners:
           - port: 80
             protocol: HTTP
  2. 以下のコマンドを実行して AlbConfig を作成します。予想される出力:

       kubectl apply -f alb.yaml
       albconfig.alibabacloud.com/alb created
  3. AlbConfig が正しく作成されたことを確認します。予想される出力:

       kubectl get AlbConfig
       NAME   ALBID        DNSNAME                                  PORT&PROTOCOL   CERTID   AGE
       alb    alb-******   alb-******.<regionID>.alb.aliyuncsslb.com                            28m
PORT&PROTOCOL 列および CERTID 列は、HTTPS リスナーを作成して証明書を設定するまで空欄のままになります。

AlbConfig のパラメーター

パラメーター

説明

不変

spec.config.name

ALB インスタンスの名前です。

いいえ

spec.config.addressType

ネットワークタイプです。Internet(デフォルト):インターネットからアクセス可能なパブリック IP アドレス。Intranet:VPC 内からのみアクセス可能なプライベート IP アドレス。

はい

spec.config.zoneMappings

vSwitch とゾーンのマッピングです。クラスターと同じ VPC 内で、異なるゾーンに少なくとも 2 つの vSwitch を指定します。シングルゾーンリージョンの場合は、1 つの vSwitch で十分です。

はい

spec.config.zoneMappings[].vSwitchId

vSwitch ID。vSwitch は、ALB がサポートするゾーン に存在している必要があります。

はい

spec.config.zoneMappings[].allocationId

ALB インスタンスに関連付ける EIP(Elastic IP Address)の ID です。省略した場合、基本的なセキュリティ保護を備えた従量課金の BGP(マルチライン)EIP が自動的に作成されます。詳細については、「ALB の課金概要」をご参照ください。Internet Shared Bandwidth インスタンスに追加されていないトラフィック課金の EIP のみがサポートされています。同じ ALB インスタンスに対して複数のゾーンにまたがる EIP は、同じタイプである必要があります。

はい

spec.config.addressAllocatedMode

IP 割り当てモードです。Dynamic(デフォルト):動的 IP。Fixed:固定 IP。

はい

spec.config.addressIpVersion

IP バージョンです。DualStack を指定すると、IPv4 および IPv6 のデュアルスタックが有効になります。

はい

spec.config.edition

ALB エディションです。デフォルト値:Standard

いいえ

spec.config.billingConfig.payType

課金方法です。デフォルト値:PostPay(従量課金)。

はい

spec.config.deletionProtectionEnabled

削除保護の有効化設定です。デフォルト値:true

はい

重要

不変 とマークされたパラメーターは、ALB インスタンスの初回作成時のみ適用されます。その後の変更は無視されます。

デフォルトの AlbConfig 構成

デフォルトの AlbConfig を使用して ALB イングレスコントローラーをインストールすると、以下の設定が適用されます(vSwitchId はユーザーが指定する必要があります)。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    accessLogConfig:
      logProject: ""
      logStore: ""
    addressAllocatedMode: Dynamic
    addressType: Internet
    billingConfig:
      internetBandwidth: 0
      internetChargeType: ""
      payType: PostPay
    deletionProtectionEnabled: true
    edition: Standard
    forceOverride: false
    zoneMappings:
    - vSwitchId: #...
    - vSwitchId: #...
status:
  loadBalancer:
    dnsname: alb-s2em8fr9debkg5****.cn-shenzhen.alb.aliyuncsslb.com
    id: alb-s2em8fr9debkg5****

既存 ALB インスタンスの再利用

ALB コンソールで作成された ALB インスタンスを再利用するには、AlbConfig でその ID を指定します。標準インスタンスまたは WAF が有効なインスタンスのみが再利用できます。Basic インスタンスはサポートされていません。ALB インスタンスは、1 つのクラスターでのみ再利用できます。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: reuse-alb
spec:
  config:
    id: ****  # ALB インスタンス ID(Standard または WAF 対応)
    forceOverride: false
    listenerForceOverride: false

上書き動作

パラメーター

説明

id

ALB インスタンス ID です。空または未指定の場合、インスタンスは再利用されず、forceOverride および listenerForceOverride フィールドは無視されます。

forceOverride

true:ALB インスタンスのプロパティおよびリスナー構成の両方を AlbConfig の設定で上書きします。false:ALB インスタンスのプロパティは保持されます。リスナーの動作は listenerForceOverride によって決定されます。

listenerForceOverride

true:ALB イングレスコントローラーがすべてのリスナーを管理します。その構成は AlbConfig によって決定されます。false:ALB イングレスコントローラーは、自動作成されたリスナー(ingress-auto-listener-{port} という名前)のみを管理します。その他のリスナーは ALB コンソールを通じて個別に管理されます。

重要

再利用する ALB インスタンス上のリスナーを手動で名前変更しないでください。AlbConfig によって作成または更新されたリスナーは、ingress-auto-listener-{port} という命名規則に従います。名前を変更すると、リスナーが管理対象外になる可能性があります。

Ingress リソースへの AlbConfig の関連付け

ALB イングレスは、Kubernetes IngressClass を使用して AlbConfig を Ingress リソースにリンクします。

ステップ 1:IngressClass の作成

以下の内容で ingress_class.yaml というファイルを作成します。

Kubernetes v1.19 以降のクラスター

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: alb  # 関連付ける AlbConfig の名前

Kubernetes v1.19 より前のクラスター

apiVersion: networking.k8s.io/v1beta1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: alb

以下のコマンドを実行して IngressClass を作成します。

kubectl apply -f ingress_class.yaml

予想される出力:

ingressclass.networking.k8s.io/alb created

ステップ 2:IngressClass を参照する Ingress の作成

以下の内容で ingress.yaml というファイルを作成します。ingressClassName フィールドにより、この Ingress が IngressClass を介して AlbConfig と関連付けられます。

Kubernetes v1.19 以降のクラスター

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cafe-ingress
spec:
  ingressClassName: alb
  rules:
  - http:
      paths:
      - path: /tea
        pathType: ImplementationSpecific
        backend:
          service:
            name: tea-svc
            port:
              number: 80
      - path: /coffee
        pathType: ImplementationSpecific
        backend:
          service:
            name: coffee-svc
            port:
              number: 80

Kubernetes v1.19 より前のクラスター

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress
spec:
  ingressClassName: alb
  rules:
  - http:
      paths:
      - path: /tea
        backend:
          serviceName: tea-svc
          servicePort: 80
      - path: /coffee
        backend:
          serviceName: coffee-svc
          servicePort: 80

以下のコマンドを実行して Ingress を作成します。

kubectl apply -f ingress.yaml

予想される出力:

ingress.networking.k8s.io/cafe-ingress created

複数 ALB インスタンスの使用

複数の ALB インスタンスを経由してトラフィックをルーティングするには、各 ALB インスタンスごとに個別の AlbConfig、IngressClass、および Ingress リソースを作成します。ingressClassName の値をそれぞれ別々に指定することで、各 Ingress を対応する ALB インスタンスに関連付けます。

  1. 2 番目の AlbConfig を作成します。

       apiVersion: alibabacloud.com/v1
       kind: AlbConfig
       metadata:
         name: alb-2
       spec:
         config:
           name: alb-2
           addressType: Internet
           zoneMappings:
           - vSwitchId: vsw-uf6ccg2a9g71hx8go****
           - vSwitchId: vsw-uf6nun9tql5t8nh15****
       kubectl apply -f alb-2.yaml
  2. 新しい AlbConfig を参照する 2 番目の IngressClass を作成します。

    Kubernetes v1.19 以降のクラスター

       apiVersion: networking.k8s.io/v1
       kind: IngressClass
       metadata:
         name: alb-2
       spec:
         controller: ingress.k8s.alibabacloud/alb
         parameters:
           apiGroup: alibabacloud.com
           kind: AlbConfig
           name: alb-2

    Kubernetes v1.19 より前のクラスター

       apiVersion: networking.k8s.io/v1beta1
       kind: IngressClass
       metadata:
         name: alb-2
       spec:
         controller: ingress.k8s.alibabacloud/alb
         parameters:
           apiGroup: alibabacloud.com
           kind: AlbConfig
           name: alb-2
       kubectl apply -f ingress_class2.yaml
  3. 2 番目の IngressClass を使用する Ingress を作成します。

    Kubernetes v1.19 以降のクラスター

       apiVersion: networking.k8s.io/v1
       kind: Ingress
       metadata:
         name: cafe-ingress2
       spec:
         ingressClassName: alb-2
         rules:
         - http:
             paths:
             - path: /tea
               pathType: ImplementationSpecific
               backend:
                 service:
                   name: tea-svc
                   port:
                     number: 80
             - path: /coffee
               pathType: ImplementationSpecific
               backend:
                 service:
                   name: coffee-svc
                   port:
                     number: 80

    Kubernetes v1.19 より前のクラスター

       apiVersion: networking.k8s.io/v1beta1
       kind: Ingress
       metadata:
         name: cafe-ingress2
       spec:
         ingressClassName: alb-2
         rules:
         - http:
             paths:
             - path: /tea
               backend:
                 serviceName: tea-svc
                 servicePort: 80
             - path: /coffee
               backend:
                 serviceName: coffee-svc
                 servicePort: 80
       kubectl apply -f ingress2.yaml

ネットワーク設定の構成

IPv6 デュアルスタックの有効化

IPv4 および IPv6 の両方を有効にするには、addressIpVersionDualStack に設定します。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    addressIpVersion: DualStack
    ...
重要

addressIpVersion パラメーターは、AlbConfig の初回作成時のみ適用されます。作成後の変更は無視されます。

インターネット共有帯域幅インスタンスの関連付け

ALB インスタンス間で帯域幅を共有するには、bandWidthPackageIdbillingConfig セクションで指定します。この設定は、インターネット向け ALB インスタンス(addressType: Internet)にのみ適用されます。

Internet Shared Bandwidth の詳細については、「Internet Shared Bandwidth インスタンスを作成および管理する」をご参照ください。
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    name: alb
    addressType: Internet
    edition: Standard
    zoneMappings:
    - vSwitchId: vsw-2vcqeyvwsnd***
    - vSwitchId: vsw-2vcbhjlqu7y***
    billingConfig:
      bandWidthPackageId: cbwp-2vcjucp49otd8qolhm***

リスナーの構成

リスナーは、ALB インスタンスがクライアントトラフィックを受け付けるポートおよびプロトコルを定義します。ALB インスタンスは、少なくとも 1 つのリスナーが構成されて初めてトラフィックを処理できます。リスナーの portprotocol、またはその他のプロパティを変更すると、元のリスナーが削除され、新しいリスナーが作成されます。

ALB は、HTTP、HTTPS、QUIC の 3 つのアプリケーション層プロトコルをサポートしています。

重要

異なるプロトコルの複数のリスナーを同時に使用するには、Ingress リソースにアノテーションを追加します。詳細については、「カスタムリスニングポートの設定」をご参照ください。

HTTP リスナー

listeners:
  - port: 80
    protocol: HTTP
HTTP リスナーは WebSocket と自動互換です。追加の構成は不要です。

HTTPS リスナー

listeners:
  - port: 443
    protocol: HTTPS
重要

HTTPS リスナーには証明書が必要です。詳細については、「暗号化された通信のための HTTPS 証明書の設定」をご参照ください。

QUIC リスナー

listeners:
  - port: 443
    protocol: QUIC
重要

QUIC リスナーを使用すると、クライアントが HTTP/3 を使用してサービスにアクセスできるようになります。詳細については、「QUIC リスナーを使用して HTTP/3 プロトコルをサポートする」をご参照ください。

証明書の指定

HTTPS リスナーに証明書をバインドするには、リスナー構成の certificates フィールドを設定します。最初の証明書がデフォルト証明書となります。

証明書が指定されていない場合、ALB の作成時にはリスナーは作成されません。代わりに、Ingress が関連付けられ、ドメイン名に基づいて証明書が自動検出された後にリスナーが作成されます。

詳細については、「暗号化通信用に HTTPS 証明書を設定する」をご参照ください。

重要

ALB は最初の証明書をデフォルトとして扱います。他の証明書は、デフォルト証明書が有効期限切れになったり、利用中でなくなったりした場合にのみ使用されます。

listeners:
- caEnabled: false
  certificates:
  - CertificateId: 756****-cn-hangzhou
    IsDefault: true
  port: 443
  protocol: HTTPS

TLS セキュリティポリシーの指定

HTTPS リスナーの場合、securityPolicyId フィールドを使用して TLS セキュリティポリシーを指定します。カスタムポリシーおよびシステムデフォルトポリシーの両方がサポートされています。詳細については、「TLS セキュリティポリシー」をご参照ください。

listeners:
- port: 443
  protocol: HTTPS
  securityPolicyId: tls_cipher_policy_1_1

リクエストタイムアウトの設定

requestTimeout フィールドは、ALB インスタンスがバックエンドからの応答を待機する時間を(秒単位で)指定します。有効な値は 1~600 です。デフォルト値は 60 秒です。バックエンドがタイムアウト期間内に応答しない場合、ALB はクライアントに HTTP 504 エラーを返します。

listeners:
- port: 80
  protocol: HTTP
  requestTimeout: 40

データ圧縮の有効化

応答の圧縮を有効にするには、gzipEnabledtrue に設定します。クライアントが Brotli および Gzip の両方をサポートしている場合、ALB は圧縮率の高い Brotli を優先します。

以下の 2 つの条件が満たされた場合にのみ、圧縮が適用されます。

  • Content-Length 応答ヘッダーの値が 1024 バイトを超える。

  • Accept-Encoding リクエストヘッダーにサポートされている圧縮アルゴリズムが含まれている。

Brotli はすべてのファイルタイプを圧縮します。Gzip は以下のタイプを圧縮します:text/xmltext/plaintext/cssapplication/javascriptapplication/x-javascriptapplication/rss+xmlapplication/atom+xmlapplication/xml、および application/json

listeners:
- port: 80
  protocol: HTTP
  gzipEnabled: true

X-Forwarded-For ヘッダーの構成

バックエンドサービスに転送される HTTP リクエストヘッダーに、クライアントおよび ALB のメタデータを追加します。

フィールド

説明

XForwardedForEnabled

クライアントの送信元 IP アドレスを X-Forwarded-For ヘッダーに追加します。一度有効化すると無効化できません。HTTP/HTTPS のみ対応。

XForwardedForClientSrcPortEnabled

クライアントのポート番号を追加します。HTTP/HTTPS のみ対応。

XForwardedForProtoEnabled

リスナーのプロトコルを追加します。

XForwardedForSLBIdEnabled

ALB インスタンス ID を追加します。

XForwardedForSLBPortEnabled

リスナーのポート番号を追加します。

listeners:
- port: 80
  protocol: HTTP
  xForwardedForConfig:
    XForwardedForEnabled: true
    XForwardedForClientSrcPortEnabled: true
    XForwardedForProtoEnabled: true
    XForwardedForSLBIdEnabled: true
    XForwardedForSLBPortEnabled: true

信頼済みプロキシ IP アドレスの指定

既知のプロキシを経由するリクエストにおいて、XForwardedForClientSourceIpsEnabled および XForwardedForClientSourceIpsTrusted を使用して、X-Forwarded-For ヘッダーからクライアントの実際の IP アドレスを抽出します。ALB は、X-Forwarded-For の IP リストを逆順に走査し、信頼リストに含まれていない最初の IP を選択します。

たとえば、X-Forwarded-For<client IP, proxy-1, proxy-2> の場合、クライアント IP を抽出するために XForwardedForClientSourceIpsTrustedproxy-1;proxy-2 に設定します。

重要

この設定は、HTTP および HTTPS リスナーのみに適用されます。

listeners:
- port: 80
  protocol: HTTP
  xForwardedForConfig:
    XForwardedForClientSourceIpsEnabled: true
    XForwardedForClientSourceIpsTrusted: 192.168.x.x;192.168.x.x/16  # IP アドレスまたは CIDR をセミコロンで区切り、スペースを含めないでください。

ACL によるアクセス制御の構成

アクセス制御リスト (ACL) を設定して、ALB リスナーにアクセスできるクライアントを制御します。詳細については、「ACL を設定してアクセスの制御を実装する」をご参照ください。

フィールド

説明

aclType

White:指定された CIDR ブロックのみを許可(ホワイトリスト)。Black:指定された CIDR ブロックを拒否(ブラックリスト)。

aclEntries

アクセス制御エントリの CIDR ブロック(例:127.0.0.1/32)。

listeners:
- port: 80
  protocol: HTTP
  aclConfig:
    aclEntries:
    - 127.0.0.1/32
    aclType: White

Simple Log Service を使用したアクセスログの有効化

AlbConfig 内で logProject および logStore を指定することで、ALB アクセスログの収集を有効化します。

クラスターには関連付けられた Simple Log Service プロジェクトが必要です。プロジェクト名を確認するには、ACK コンソールに移動し、クラスター > ご利用のクラスター名 > クラスター情報 > 基本情報 の順に進み、Log Service プロジェクト フィールドを確認します。
logStore の名前は alb_ で始める必要があります。logStore が存在しない場合、自動的に作成されます。
再利用する ALB インスタンスでアクセスログを有効化するには、forceOverridetrue に設定します。詳細については、「既存 ALB インスタンスの再利用」をご参照ください。
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    accessLogConfig:
      logProject: "k8s-log-xz92lvykqj1siwvif****"
      logStore: "alb_****"
    #...

収集されたアクセスログを表示するには、基本情報 タブを開き、Log Service プロジェクト の横にあるリンクをクリックします。

AlbConfig の更新

既存の AlbConfig の構成を更新するには、kubectl edit を使用します。

  1. AlbConfig の名前を確認します。予想される出力:

       kubectl get AlbConfig
       NAME       ALBID        DNSNAME                                  PORT&PROTOCOL   CERTID   AGE
       alb        alb-******   alb-******.<regionID>.alb.aliyuncsslb.com                            28m
  2. AlbConfig を編集します。<ALBCONFIG_NAME> をご利用の AlbConfig 名に置き換えます。たとえば、ALB インスタンス名を変更する場合:

       kubectl edit albconfig <ALBCONFIG_NAME>
       ...
        spec:
          config:
            name: new_alb  # 更新後の名前
       ...

リスナー フィールドの更新方法

listeners フィールドは、置き換えによって更新される配列です。新しい構成を適用すると、システムは 3 つの状態を比較して結果を決定します。

#

新規構成

既存構成

直近適用構成

結果

1

はい

はい

新規構成の値で更新されます。

2

はい

なし

新規リスナーとして作成されます。

3

なし

はい

既存構成から削除されます。デフォルト値にリセットされる可能性があります。

4

なし

あり

なし

既存構成から削除されます。

例:

以下の 3 つの状態を前提とします。

# 新規構成(オブジェクト構成ファイル)
listeners:
- port: 8001
  protocol: HTTP
- port: 8003
  protocol: HTTP
- port: 8005    # 新規
  protocol: HTTP

# 既存構成
listeners:
- port: 8001
  protocol: HTTP
- port: 8002    # 削除対象
  protocol: HTTP
- port: 8003
  protocol: HTTP
- port: 8004    # 削除対象
  protocol: HTTP

# 直近適用構成
listeners:
- port: 8001
  protocol: HTTP
- port: 8002    # 削除対象
  protocol: HTTP
- port: 8003
  protocol: HTTP

結果として得られるリスナー構成:

listeners:
- port: 8001    # 保持(ルール 1)
  protocol: HTTP
- port: 8003    # 保持(ルール 1)
  protocol: HTTP
- port: 8005    # 追加(ルール 2)
  protocol: HTTP
  • ポート 8001 および 8003:保持(ルール 1)。

  • ポート 8005:追加(ルール 2)。

  • ポート 8002:削除(ルール 3 — 直近適用構成に存在)。

  • ポート 8004:削除(ルール 4 — 直近適用構成に存在せず、新規構成にも存在しない)。

AlbConfig の削除

重要

AlbConfig を削除する前に、それに関連付けられたすべての Ingress リソースを削除してください。

ALB インスタンスを作成した AlbConfig の削除

AlbConfig を削除すると、関連付けられた ALB インスタンスも削除されます。

kubectl delete AlbConfig <AlbConfig_NAME>

<AlbConfig_NAME> を AlbConfig の名前に置き換えます。

再利用 ALB インスタンス用 AlbConfig の削除

AlbConfig を削除しても、ALB インスタンス自体は削除されません。これは、インスタンスが AlbConfig によって作成されていないためです。

  1. (ALB イングレスコントローラー v2.10.0-aliyun.1 以前のみ) AlbConfig を編集し、spec.listeners の下にあるすべてのエントリを削除します。ALB イングレスコントローラーのバージョンが v2.10.0-aliyun.1 より新しい場合は、このステップをスキップしてください。

       kubectl edit albconfig <AlbConfig_NAME>
  2. AlbConfig を削除します。

    重要

    このコマンドを実行する前に、関連付けられたすべての Ingress リソースを削除してください。

       kubectl delete AlbConfig <AlbConfig_NAME>

リスナーの削除

spec.listeners からリスナーのエントリを kubectl edit を使用して削除します。ALB インスタンスには複数のリスナーを設定できます。不要になったリスナーのみを削除してください。

重要

リスナーを削除する前に、そのリスナーに関連付けられたすべての Ingress を削除してください。そうしないと、削除操作は失敗します。

# 削除前:2 つのリスナー
listeners:
- port: 8001
  protocol: HTTP
- port: 8002    # このリスナーを削除
  protocol: HTTP

# 削除後:1 つのリスナー
listeners:
- port: 8001
  protocol: HTTP

よくある質問

エラー: alb: リスナーのポート番号は [1:65535] の範囲内にするか、リスナー設定でリッスンポートを明示的に設定する必要があります

このエラーは、YAML ファイル内で -(ダッシュ)が certificates の前に余分に配置され、ポートのない別個のリスナーが作成された場合に発生します。

誤った記述:

listeners:
- port: 80
  protocol: HTTP
- port: 443
  protocol: HTTPS
- certificates:           # 余分な「-」により、ポートのない新規リスナーが作成される
  - CertificateId: 756****-cn-hangzhou
    IsDefault: true

正しい記述:

listeners:
- port: 80
  protocol: HTTP
- port: 443
  protocol: HTTPS
  certificates:           # 「-」を削除 — certificates はポート 443 の HTTPS リスナーの一部
  - CertificateId: 756****-cn-hangzhou
    IsDefault: true

-certificates の前に削除し、証明書構成がポート 443 の HTTPS リスナーに属するようにしてください。