P12 (**) 解码游程编码过的列表

本文介绍了如何将游程编码过的列表进行解码,详细阐述了问题描述及递归解法,通过将(N E)转换为列表形式,并对单独的E进行处理,最终得到解码后的列表。

问题描述

该题是实现P11的逆操作,即将P11编码过的列表进行解码。如

sash> (decode '((4 a) b (2 c) (2 a) d (4 e)))
sash> (a a a a b c c a a d e e e e)

解法

  • 递归实现

    思路:(1) 将(N E)转换为'(E ... E)列表形式,单独的E转换为'(E)列表;(2) 依次append这些列表即可得到答案。

     (define to-list
      (lambda (ne)
        (if (list? ne)
            (let f ([ls '()] [n (car ne)])
              (cond
                [(zero? n) ls]
                [else (f (cons (cadr ne) ls) (- n 1))]))
            (list ne))))
    (define decode
      (lambda (ls)
        (cond
          [(null? ls) '()]
          [else (append (to-list (car ls))
                        (decode (cdr ls)))])))        

    上面的decode也可使用reduce实现。

在APM-Server中,如果使用的是X-Pack并需要添加`.p12`格式的SSL证书,你需要额外步骤来进行配置。以下是具体的步骤: 1. **解密.p12文件**: 首先,你需要将`.p12`证书文件转换成PEM格式。可以使用命令行工具如`openssl`。假设你的证书文件名为`apm_server_p12.pem`: ``` openssl pkcs12 -in apm_server.p12 -out apm_server.pem -nodes ``` 这里`-nodes`表示不要加密私钥。 2. **分离CA和服务器证书**: 对于自签名证书,有时候`.p12`文件包含了根证书(CA)。你可以使用`openssl x509`命令分离它们: ```bash openssl x509 -inform pem -in apm_server.pem -out ca.pem -certopt noauxiliary openssl x509 -inform pem -in apm_server.pem -out server.pem -notext -noout ``` 3. **更新`config.yml`**: 将证书信息添加到`config.yml`的`outputs.elasticsearch`部分: - `ssl.certificate_authorities`: CA证书的路径,如果是刚才生成的`ca.pem`。 - `client_certificate`: 服务器证书的路径,通常是`server.pem`。 - `client_key`:对应的私钥文件,同样可能是`server.pem`,但一般仅包含公钥。 示例: ```yaml outputs: elasticsearch: hosts: ["https://elasticsearch_host:port"] scheme: https ssl.certificate_authorities: /path/to/ca.pem client_certificate: /path/to/server.pem client_key: /path/to/server.pem ``` 4. **启动APM-Server**: 使用新配置启动APM-Server,并检查日志确认证书导入是否成功。 相关问题: 1. 如何在APM-Server中查看证书导入的状态? 2. 如果.x509证书格式也可以,为什么还需要转换为.p12? 3. 如果证书管理需要定期更新,应该如何操作?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值