当前位置: 首页 > news >正文

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一骑绝尘!

近期诸多国产手机品牌纷纷发布旗舰手机,随着这些旗舰手机的发布,可以看出他们在进一步致敬苹果--实质就是模仿苹果的设计,如此做的结果恐怕是得不偿失,将导致国产手机损失更多市场。 致敬苹果最为直接的当属手机外壳了&#xff0c…...

《MYSQL45讲》kill不掉的线程

kill query 线程id :终止这个线程正在执行的语句 kill connection 线程id :关闭这个线程的连接,也会先停止这个线程正在执行的语句。这个connection可以缺省。 本文讨论的情况是:使用了kill命令,却没有断开连接,show processli…...

单体架构 IM 系统之 Server 节点状态化分析

基于 http 短轮询模式的单体架构的 IM 系统见下图,即客户端通过 http 周期性地轮询访问 server 实现消息的即时通讯,也就是我们前面提到的 “信箱模型”。“信箱模型” 虽然实现非常容易,但是消息的实时性不高。 我们在上一篇文章&#xff08…...

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占用空间太大了&#xff0c;磁盘空间不足&#xff0c;清理3妙招 清除所有已停止的容器&#xff08;container&#xff09;、未被任何容器所使用的卷&#xff08;volume&#xff09;、未被任何容器所关联的网络&#xff08;network&#xff09;、所有悬空镜像&#xff08…...

编程之路,从0开始:字符函数和字符串函数

Hello大家好&#xff01;很高兴我们又见面了&#xff01; 给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 目录 1、字符分类函数 2、字符转换函数 3、字符串函数 1、 strcpy 2、 strcat 3、 strcmp 4、strlen(s) 5、strstr(s1, s2) 6、 strtok(s1, s2…...

化工防爆巡检机器人:在挑战中成长,为化工安全保驾护航

随着全球能源需求的不断攀升&#xff0c;化工行业的安全性与高效性愈发受到关注。化工设施规模巨大&#xff0c;而且其中多数存在高风险因素&#xff0c;像是易燃易爆化学物质、高温环境、有毒有害物质以及高压设备等。仅2023年&#xff0c;国内危化品事故就多达652起&#xff…...

音频采样数据格式

音频信号在模拟到数字转换时&#xff0c;会涉及到多个关键参数&#xff0c;如采样率、位深度、通道数等。下面是常见的音频采样数据格式及其相关概念&#xff1a; 1. 采样率 (Sample Rate) 采样率指的是每秒钟对音频信号进行采样的次数&#xff0c;单位为赫兹 (Hz)。常见的值…...

【pytorch】常用强化学习算法实现(持续更新)

持续更新常用的强化学习算法&#xff0c;采用单python文件实现&#xff0c;简单易读 2024.11.09 更新&#xff1a;PPO(GAE); SAC2024.11.12 更新&#xff1a;OptionCritic(PPOC) "PPO" import copy import time import torch import numpy as np import torch.nn as …...

Bluesky AI助手Attie:用户不满下的未来挑战

Attie&#xff1a;定制化社交媒体动态新尝试Bluesky正在开发的新型AI助手Attie&#xff0c;以AT协议命名&#xff0c;可创建定制化的社交媒体动态。它作为一个独立的可选应用程序&#xff0c;目前处于仅限受邀用户参与的封闭测试阶段。其目标是打造一个比单纯搜索话题更全面的时…...

HS2-HF Patch:驱动创作自由的智能补丁系统与需求动态匹配技术

HS2-HF Patch&#xff1a;驱动创作自由的智能补丁系统与需求动态匹配技术 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 在游戏创作领域&#xff0c;玩家对个性…...

Phi-3-Mini-128K实战JavaScript:构建前端智能代码提示插件

Phi-3-Mini-128K实战JavaScript&#xff1a;构建前端智能代码提示插件 最近在折腾前端项目时&#xff0c;我总在想&#xff0c;要是写代码时能有个更懂我的助手就好了。现有的代码补全工具虽然不错&#xff0c;但很多时候还是停留在语法层面&#xff0c;对于业务逻辑、复杂函数…...

信创协同办公价格与成本:这样选,性价比直接拉满!

“一套信创协同办公到底多少钱&#xff1f;”“是按人头收费&#xff0c;还是按项目打包算&#xff1f;”“前期买着便宜&#xff0c;后期维护会不会无底洞&#xff1f;”不管是政企单位采购&#xff0c;还是企业选型&#xff0c;这三个问题几乎是所有人的核心顾虑。毕竟信创办…...

国产半导体测试设备公司领军者,杭州加速科技引领产业自主可控新征程

在半导体产业国产化全面推进的背景下&#xff0c;国产半导体测试设备公司成为突破产业链瓶颈、保障中国芯安全的核心力量。半导体测试设备作为芯片制造关键装备&#xff0c;长期依赖进口&#xff0c;制约国内半导体产业发展。经过多年技术攻坚&#xff0c;一批优质国产半导体测…...

AutoHotkey脚本编译指南:3步将.ahk文件转为独立可执行程序

AutoHotkey脚本编译指南&#xff1a;3步将.ahk文件转为独立可执行程序 【免费下载链接】Ahk2Exe Official AutoHotkey script compiler - written itself in AutoHotkey 项目地址: https://gitcode.com/gh_mirrors/ah/Ahk2Exe 你是否曾想过将精心编写的AutoHotkey自动化…...

Janus-Pro-7B入门指南:零基础Python调用与第一个AI应用创建

Janus-Pro-7B入门指南&#xff1a;零基础Python调用与第一个AI应用创建 你是不是对AI大模型充满好奇&#xff0c;想亲手试试调用一个强大的模型&#xff0c;但又觉得门槛太高&#xff0c;被各种复杂的部署和配置劝退&#xff1f;别担心&#xff0c;今天我们就来彻底解决这个问…...

Calypso vs PC-DMIS:三坐标两大软件脱机编程实战对比与选型指南

Calypso vs PC-DMIS&#xff1a;三坐标测量软件脱机编程深度对比与实战选型策略 在精密制造领域&#xff0c;三坐标测量机(CMM)的脱机编程能力直接决定了检测效率与资源利用率。作为行业两大标杆&#xff0c;蔡司Calypso与海克斯康PC-DMIS在用户界面设计、编程逻辑、仿真验证等…...

R包版本冲突别头疼:手把手教你降级igraph 2.1.1,解决monocle3的orderCells报错

R包版本冲突实战指南&#xff1a;精准降级igraph解决monocle3依赖问题 当你满怀期待地安装好monocle3准备进行单细胞拟时序分析时&#xff0c;突然弹出的nei() was deprecated in igraph 2.1.0报错就像一盆冷水浇灭了热情。这种R包版本冲突在生物信息学分析中屡见不鲜&#xff…...

DanKoe 视频笔记:深度工作:改变生活的常规 [特殊字符]

在本教程中&#xff0c;我们将学习一套能极大提升专注力与生产力的深度工作常规。这套方法的核心在于理解并管理你的注意力&#xff0c;将其视为最宝贵的资源&#xff0c;并像管理计算机内存一样去优化它。我们将从核心概念开始&#xff0c;逐步拆解具体步骤&#xff0c;帮助你…...