aws中AcmClient.describeCertificate返回值中没有ResourceRecord
我有一个需求,就是让用户自己把自己的域名绑定我们的提供的AWS服务器。
AWS需要验证证书 上一篇文章中我用php的AcmClient中的requestCertificate方法申请到了证书。
$acmClient = new AcmClient(['region' => 'us-east-1','version' => '2015-12-08','credentials'=>[// 'id'=>"851725259723",'key'=>"AKIA4MTWICPFTJEVQ25E","secret"=>"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"]]);$subdomainName = "";// 使用 mt_rand() 生成随机数$randomNumber = mt_rand(1000, 99999);$result = $acmClient->requestCertificate(['DomainName' =>"$domainName", 'ValidationMethod' => 'DNS','']);$acm_certificate = $result->get("CertificateArn");
开始我以为返回的这个 arn:aws:acm:us-east-1:851725259723:certificate\/b59ed66e-edce-40da-8ed7-2f69f535ccc6 就可以配置在域名解析上。当我填上去的时候发现报错了
原来要填的不是这个。
后来我在AWS的后台证书上发现,原来证书里有一个domain。通常我们如果是自己来绑定域名,到后台来复制过去,然后去到域名服务商那里填写信息解析域名就可以了。

但是我们的需求是,通过Api获取到CNAME等信息,通过接口返回给用户,让用户自己去绑定域名。
第一步通过Api接口 requestCertificate方法申请证书是成功了,但是requestCertificate的返回里没有我们要的CNAME信息。
通过查看文档,发现describeCertificate方法返回了我要的东西。ResourceRecord里面包含的就是。https://docs.aws.amazon.com/zh_cn/acm/latest/APIReference/API_DescribeCertificate.html
于是我写好了调用方法:
// echo $acm_certificate;$certificate_detail = $acmClient->describeCertificate(["CertificateArn"=> $acm_certificate],);
返回值是这样的:
Model Data
----------
Data can be retrieved from the model object using the get() method of the
model (e.g., `$result->get($key)`) or "accessing the result like an
associative array (e.g. `$result['key']`). You can also execute JMESPath
expressions on the result data using the search() method.{"Certificate": {"CertificateArn": "arn:aws:acm:us-east-1:851725259723:certificate\/b59ed66e-edce-40da-8ed7-2f69f535ccc6","DomainName": "sdafsdfsd.com","SubjectAlternativeNames": ["sdafsdfsd.com"],"DomainValidationOptions": [{"DomainName": "sdafsdfsd.com","ValidationDomain": "sdafsdfsd.com","ValidationStatus": "PENDING_VALIDATION","ValidationMethod": "DNS"}],"Subject": "CN=sdafsdfsd.com","Issuer": "Amazon","CreatedAt": "2024-11-13T06:26:15+00:00","Status": "PENDING_VALIDATION","KeyAlgorithm": "RSA-2048","SignatureAlgorithm": "SHA256WITHRSA","InUseBy": [],"Type": "AMAZON_ISSUED","KeyUsages": [],"ExtendedKeyUsages": [],"RenewalEligibility": "INELIGIBLE","Options": {"CertificateTransparencyLoggingPreference": "DISABLED"}},"@metadata": {"statusCode": 200,"effectiveUri": "https:\/\/acm.us-east-1.amazonaws.com","headers": {"x-amzn-requestid": "dc2eafd9-f2d0-4ec5-b712-3f863878b1ab","content-type": "application\/x-amz-json-1.1","content-length": "695","date": "Wed, 13 Nov 2024 06:26:17 GMT","connection": "close"},"transferStats": {"http": [[]]}}
}
文档上明明说会返回这个值,但我实际结果里面没有。怎么办?我到处搜索,找客服还要花钱。没办法,继续折腾。偶然一次,发现去掉"IdempotencyToken",这个动态随机参数时,我重复点击请求我写的接口(里面包含有requestCertificate和describeCertificate这两个操作),突然有一次返回的结果里面有ResourceRecord。
Model Data
----------
Data can be retrieved from the model object using the get() method of the
model (e.g., `$result->get($key)`) or "accessing the result like an
associative array (e.g. `$result['key']`). You can also execute JMESPath
expressions on the result data using the search() method.{"Certificate": {"CertificateArn": "arn:aws:acm:us-east-1:851725259723:certificate\/36323e6b-44b0-4319-a89c-554f83b4903d","DomainName": "dddddddseeddeessssssseee.com","SubjectAlternativeNames": ["dddddddseeddeessssssseee.com"],"DomainValidationOptions": [{"DomainName": "dddddddseeddeessssssseee.com","ValidationDomain": "dddddddseeddeessssssseee.com","ValidationStatus": "PENDING_VALIDATION","ResourceRecord": {"Name": "_aed5251d9f13549ea764739a398b8031.dddddddseeddeessssssseee.com.","Type": "CNAME","Value": "_3f3f8c3ebb4c32f510b21bbee66da88e.djqtsrsxkq.acm-validations.aws."},"ValidationMethod": "DNS"}],"Subject": "CN=dddddddseeddeessssssseee.com","Issuer": "Amazon","CreatedAt": "2024-11-13T09:02:12+00:00","Status": "PENDING_VALIDATION","KeyAlgorithm": "RSA-2048","SignatureAlgorithm": "SHA256WITHRSA","InUseBy": [],"Type": "AMAZON_ISSUED","KeyUsages": [],"ExtendedKeyUsages": [],"RenewalEligibility": "INELIGIBLE","Options": {"CertificateTransparencyLoggingPreference": "ENABLED"}},"@metadata": {"statusCode": 200,"effectiveUri": "https:\/\/acm.us-east-1.amazonaws.com","headers": {"x-amzn-requestid": "8ba40475-79b0-4a0a-adda-c8a32d9357e4","content-type": "application\/x-amz-json-1.1","content-length": "952","date": "Wed, 13 Nov 2024 09:18:55 GMT","connection": "close"},"transferStats": {"http": [[]]}}
}
sss{}
到此我恍然大悟,原来是ResourceRecord要返回的时候还没拿到,需要多次请求。直接返回值里有ResourceRecord为止。
相关文章:
aws中AcmClient.describeCertificate返回值中没有ResourceRecord
我有一个需求,就是让用户自己把自己的域名绑定我们的提供的AWS服务器。 AWS需要验证证书 上一篇文章中我用php的AcmClient中的requestCertificate方法申请到了证书。 $acmClient new AcmClient([region > us-east-1,version > 2015-12-08,credentials>[/…...
Spring Task详细讲解
✨Spring Task简介 Spring Task 是 Spring 提供的轻量级定时任务工具,也就意味着不需要再添加第三方依赖了,相比其他第三方类库更加方便易用。可以按照约定的时间自动执行某个代码逻辑。 使用场景: 信用卡每月还款提醒银行贷款每月还款提醒…...
C++初阶 --- 类和对象(1)
类和对象(1) 一、类的相关内容1.访问限定符2.class关键字与struct关键字的区别3.类域 二、this指针三、成员函数存放在哪里?1. 函数的存放位置2. 练习题 一、类的相关内容 1.访问限定符 (1)C⼀种实现封装的⽅式&…...
《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接
《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接 《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接基于 TCP 的半关闭单方面断开连接带来的问题套接字和流针对优雅断开的 shutdown 函数为何需要半关闭?基于半关闭…...
Anaconda 和 conda 是什么关系?就像 pip 和 python 一样吗
Anaconda 和 conda是 Anaconda Distribution 还是 Miniconda Anaconda 和 conda Anaconda 和 conda 之间的关系有点类似于 pip 和 Python,但又有所不同。 Anaconda 是一个数据科学和机器学习的发行版,它包含了 Python、conda 以及许多预装的库和工具&am…...
「数据治理」核心专业术语解释!
数据治理就是指在一定的组织范围内,依托制度法规、标准规范、应用实践和支撑技术对数据进行全生命周期的数据确权、质量管理、安全控制、隐私保护、开放共享、交易流通和分析处理。数据治理的目标是为了提高数据的可用性、安全性、流通性,激活数据资源…...
Mac Nginx 前端打包部署
安装homebrew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 安装Nginx brew install nginx nginx相关命令 nginx启动命令:nginx nginx -s reload #重新加载配置 nginx -s reopen #重启 nginx -s stop #…...
乳腺癌诊断分析——基于聚类分析实现
一、研究背景 乳腺癌属于恶性肿瘤,在早期发现后需要及早将病变组织切除,而且术后还要化疗和放射等辅助治疗,能够抑制癌细胞的扩散和增长。 二、研究目的 研究乳腺癌病人的患病特征通过聚类分析方法对特征进行分类通过上述聚类结果对乳腺诊…...
Ubuntu 22.04 安装配置opencv
OpenCV下载:https://opencv.org/releases/ 编译与安装 安装cmake OpenCV需要使用cmake进行编译 sudo apt-get install cmake安装依赖 sudo apt-get install build-essential pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev lib…...
【软考】系统架构设计师-计算机系统基础(3):嵌入式系统
嵌入式系统:嵌入式处理器、相关支撑硬件、嵌入式OS、支撑软件以及应用软件 嵌入式系统特征:专用性强、技术融合、软硬一体软件为主、通用计算机资源少,... 分层(5层):硬件层 → 抽象层 → 操作系统层 → 中间件层 →…...
实测运行容器化Tomcat服务器
文章目录 前言一、拉取Tomcat 9.0镜像二、运行容器化Tomcat服务器三、访问Tomcat官网首页测试 总结 前言 运行容器化Tomcat服务器,首先确保正确安装docker,并且已启动运行,具体安装docker方法见笔者前面的博文《OpenEuler 下 Docker 安装、配…...
致敬苹果的国产手机,只会失去更多市场,iPhone一骑绝尘!
近期诸多国产手机品牌纷纷发布旗舰手机,随着这些旗舰手机的发布,可以看出他们在进一步致敬苹果--实质就是模仿苹果的设计,如此做的结果恐怕是得不偿失,将导致国产手机损失更多市场。 致敬苹果最为直接的当属手机外壳了,…...
《MYSQL45讲》kill不掉的线程
kill query 线程id :终止这个线程正在执行的语句 kill connection 线程id :关闭这个线程的连接,也会先停止这个线程正在执行的语句。这个connection可以缺省。 本文讨论的情况是:使用了kill命令,却没有断开连接,show processli…...
单体架构 IM 系统之 Server 节点状态化分析
基于 http 短轮询模式的单体架构的 IM 系统见下图,即客户端通过 http 周期性地轮询访问 server 实现消息的即时通讯,也就是我们前面提到的 “信箱模型”。“信箱模型” 虽然实现非常容易,但是消息的实时性不高。 我们在上一篇文章(…...
java xml 文本解析
示例文本 <Message><MessageName>time_request</MessageName><Timestamp>20220217165432906359</Timestamp><Body><EQPID>CMMAB01-DTP01</EQPID></Body> </Message>示例代码 import org.w3c.dom.Document; impo…...
Docker占用空间太大磁盘空间不足清理妙招
docker占用空间太大了,磁盘空间不足,清理3妙招 清除所有已停止的容器(container)、未被任何容器所使用的卷(volume)、未被任何容器所关联的网络(network)、所有悬空镜像(…...
编程之路,从0开始:字符函数和字符串函数
Hello大家好!很高兴我们又见面了! 给生活添点passion,开始今天的编程之路! 目录 1、字符分类函数 2、字符转换函数 3、字符串函数 1、 strcpy 2、 strcat 3、 strcmp 4、strlen(s) 5、strstr(s1, s2) 6、 strtok(s1, s2…...
化工防爆巡检机器人:在挑战中成长,为化工安全保驾护航
随着全球能源需求的不断攀升,化工行业的安全性与高效性愈发受到关注。化工设施规模巨大,而且其中多数存在高风险因素,像是易燃易爆化学物质、高温环境、有毒有害物质以及高压设备等。仅2023年,国内危化品事故就多达652起ÿ…...
音频采样数据格式
音频信号在模拟到数字转换时,会涉及到多个关键参数,如采样率、位深度、通道数等。下面是常见的音频采样数据格式及其相关概念: 1. 采样率 (Sample Rate) 采样率指的是每秒钟对音频信号进行采样的次数,单位为赫兹 (Hz)。常见的值…...
【pytorch】常用强化学习算法实现(持续更新)
持续更新常用的强化学习算法,采用单python文件实现,简单易读 2024.11.09 更新:PPO(GAE); SAC2024.11.12 更新:OptionCritic(PPOC) "PPO" import copy import time import torch import numpy as np import torch.nn as …...
Anaconda环境下Spyder升级保姆级教程(附常见问题解决方案)
Anaconda环境下Spyder升级全攻略与疑难排解手册 在Python数据科学领域,Spyder作为专为科学计算设计的集成开发环境(IDE),凭借其变量查看器、交互式控制台和强大的调试功能,已成为众多研究人员的首选工具。而Anaconda作为Python科学计算的瑞士…...
Qwen3.5-9B镜像免配置实战:Docker化迁移与端口映射最佳实践
Qwen3.5-9B镜像免配置实战:Docker化迁移与端口映射最佳实践 1. 项目概述 Qwen3.5-9B是一个拥有90亿参数的开源大语言模型,具备强大的逻辑推理、代码生成和多轮对话能力。该模型支持多模态理解(图文输入)和长上下文处理ÿ…...
从ATE到RPE:用evo全面解读你的SLAM算法在KITTI上的表现
从ATE到RPE:用evo全面解读你的SLAM算法在KITTI上的表现 在SLAM算法开发中,量化评估是验证算法性能的关键环节。KITTI数据集作为自动驾驶领域最具影响力的基准测试平台之一,为研究者提供了丰富的真实场景数据。但如何从海量轨迹数据中提取有价…...
ERNIE-4.5-0.3B-PT智能合约分析:区块链安全检测系统
ERNIE-4.5-0.3B-PT智能合约分析:区块链安全检测系统 1. 引言 区块链开发者们经常面临一个头疼的问题:智能合约部署后才发现存在安全漏洞,导致资产损失。传统的安全审计需要专业团队花费数天甚至数周时间,成本高昂且效率低下。现…...
别再只会用‘Let‘s think step by step’了:DeepSeek-R1原生CoT机制详解与实战调优
解锁DeepSeek-R1推理潜能:原生思维链技术深度解析与高阶应用指南 当我们在数学考试中遇到复杂题目时,老师总会强调"把解题过程写清楚"。这种分步思考的方式,正是人类解决复杂问题的核心方法。如今,大语言模型也掌握了这…...
城通网盘限速破解:ctfileGet让下载效率提升10倍的技术革命
城通网盘限速破解:ctfileGet让下载效率提升10倍的技术革命 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 在数字化协作日益频繁的今天,网盘已成为信息传递的重要枢纽。然而城通…...
P1095 守望者的逃离【洛谷算法习题】
P1095 守望者的逃离 网页链接 P1095 守望者的逃离 题目背景 NOIP2007 普及组 T3 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。 守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。…...
Ubuntu 虚拟机 Python3 + pip 完整安装教程
文章目录一、先检查系统是否自带 Python3二、安装 Python3 和 pip(必装)1. 更新软件源2. 安装 python3 和 pip3. 验证安装成功三、最简单的使用方法1. 运行 Python2. 用 pip 安装第三方库(如 requests、numpy)3. 运行 .py 文件四、…...
Qwen3-TTS-VoiceDesign应用案例:智能硬件设备嵌入式多语种语音播报
Qwen3-TTS-VoiceDesign应用案例:智能硬件设备嵌入式多语种语音播报 1. 智能语音播报的市场需求 现在的智能硬件设备越来越普及,从智能家居到车载系统,从工业设备到消费电子产品,几乎都需要语音交互功能。但很多设备面临一个共同…...
MongoDB:如何构建“数据回收站“,防止人为误删数据(延迟节点)
更多内容请见: 《深入掌握MongoDB数据库》 - 专栏介绍和目录 一、引言:数据误删的现实挑战 在企业级数据库系统中,人为误删数据是导致业务中断的常见原因。根据2023年数据库安全报告,37%的数据丢失事件是由人为错误引起的,其中误删除操作占主要部分。MongoDB作为企业级No…...
