日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置服務的運行時參數

服務商如允許用戶修改服務的配置參數,可在創建服務時開啟運行時參數按鈕。配置相關參數后,計算巢將為用戶提供圖形化編輯運行時參數的界面,以降低用戶變更運行時參數的門檻。

背景信息

在實際服務使用過程中,經常有需要修改服務運行參數的場景。例如,用戶需修改部署服務的端口或最大連接數。通常,用戶需自行登錄服務部署的ECS實例或ACK集群修改相關的配置文件或ConfigMap。為降低用戶編輯配置文件的門檻,您可開啟運行時參數功能,并配置相關內容,計算巢將為用戶提供圖形化編輯參數的界面。

使用方式

  1. 點擊我的服務 > 創建新服務 > 自定義創建服務 > 私有部署or全托管服務

  2. 根據服務需求,編輯各配置項與服務的ros模板。

  3. 在ros模板里的Parameters模塊下,新增ConfigParam參數,可將下面代碼直接復制到您的ros模板中。

    ConfigParam:
      Type: String
      Default: ''
  4. 在編輯頁面服務運維(選填)模塊找到運行時參數,打開按鈕。

    image

  5. 運行時參數支持多模板,多文件配置。您需要首先定義參數分組名,用以在多配置文件的情況下供計算巢區分不同的文件內容。同時需指定該配置文件的指令配置文件格式,計算巢支持cnf、json、yaml、properties、xml等常見格式的配置文件。參數文件內容則需要填寫該配置文件的全部內容,例如下圖。

    image

  6. 定義可修改的參數。配置文件中參數眾多,可供用戶編輯的可能只是其中一部分。服務商需要定義這部分參數,同時需要定義這些參數的約束。下面內容請重點關注

    • 配置可編輯參數時。參數名需要與參數文件內容中的參數名一致。對于json、yaml、xml這些參數有層次結構的文件格式,可使用英文句號“.”分割各層。例如,yaml格式的參數。

      root:
        properties:
          value: 1

      參數名可填寫為:root.properties.value。

    • 參數類型支持String、Number、List、Boolean、Json。

    • 不同的參數類型支持不同的參數約束規則。其中json和boolean兩種不可約束;string類型的參數支持“可選參數”和“匹配表達式”兩種約束;number類型的參數支持“可選參數”和“參數極值”兩種約束;list類型的參數僅支持“可選參數”一種約束。您可根據自己的情況酌情選擇。

      • 可選參數指的是服務商可定義幾個備選值供用戶選擇,不可填寫這些值之外的值。例如:

        image

      • 匹配表達式指的是您可以輸入一個正則表達式,用戶必須填寫符合該正則表達式的內容才能夠通過校驗。同時您需要提供這個表達式的含義供用戶參考。例如:

        image

      • 參數極值指的是用戶可填寫的數字的最大值和最小值。服務商可根據情況限制最大值,或限制最小值,或同時限制最大最小值。例如:

        image

  7. 在ros模板中定義資源,將配置文件的內容寫入您的配置文件。根據您部署的方式不同,需要定義不同的ros資源。例如:服務商在運行時參數模塊配置了一個叫mysql的參數分組。

    • 如果您的軟件部署在ECS實例上。此時通常需要將配置文件寫入到ECS機器的特定文件中,可使用ros的RunCommand資源執行寫入腳本:

      Resources:
        InstanceRunCommand:
          Type: ALIYUN::ECS::RunCommand
          Properties:
            Sync: true
            CommandContent:
              Fn::Sub:
                - |
                  cat > /root/mysql.cnf << "EOF"
                  ${Mysql}
      
                  EOF
                - Mysql:
                    Fn::Select:
                      - mysql
                      - Ref: ConfigParam
            Type: RunShellScript
            InstanceIds:
              Fn::GetAtt:
                - EcsInstanceGroup
                - InstanceIds
            Timeout: '300'

      上面內容測含義是,定義一個腳本,該腳本向/root/mysql.cnf覆蓋式寫入內容。而寫入的內容則是通過

      Mysql:
        Fn::Select:
          - mysql
          - Ref: ConfigParam

      獲取的。Fn::Select:的含義是,從ConfigParam的眾多參數分組中篩選參數組名是mysql的參數分組內容。

    • 如果您的軟件部署在ACK集群上。這種情況一般是通過ConfigMap存儲配置內容,例如:

      Resources:
        ClusterApplication:
          Type: ALIYUN::CS::ClusterApplication
          Properties:
            YamlContent:
              Fn::Sub:
                - |
                  apiVersion: apps/v1
                  kind: StatefulSet
                  metadata:
                    name: mysql-demo
                  spec:
                    replicas: 1
                    selector:
                      matchLabels:
                        app: mysql
                    template:
                      metadata:
                        labels:
                          app: mysql
                      spec:
                        containers:
                          - name: mysql
                            image: mysql:latest
                            ports:
                              - containerPort: 3306
                            volumeMounts:
                              - name: mysql-config
                                mountPath: /etc/mysql/conf.d
                        volumes:
                          - name: mysql-config
                            configMap:
                              name: mysql-config
                  ---
                  apiVersion: v1
                  kind: ConfigMap
                  metadata:
                    name: mysql-config
                  data:
                    my.cnf: |
                  ${ConfigParam}
            
                - ConfigParam:
                    Fn::Indent:
                      - Fn::Select:
                          - mysql
                          - Ref: ConfigParam
                      - 2
            ClusterId: c989ca998e381*************
            DefaultNamespace: mysql-demo

      上文通過yaml部署了一個StatefulSet,同時該StatefulSet掛載了一個ConfigMap存儲運行時參數信息。該ConfigMap的key是my.cnf,內容是ConfigParam的內容。

  8. 服務運維(選填)模塊的運維模塊,點擊添加運維操作。進入基礎運維項的tab頁,勾選重啟選項點擊確定。更多內容,請參考自定義運維操作說明基礎運維項相關內容。

  9. 完成其他內容編輯,保存服務。