尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

AWS CLI `cloudformation register-publisher` 完全指南:注册 CloudFormation Registry 公共扩展发布者

AWS CLI `cloudformation register-publisher` 完全指南:注册 CloudFormation Registry 公共扩展发布者 AWS CLIcloudformation register-publisher完全指南注册 CloudFormation Registry 公共扩展发布者【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读本文围绕 register-publisher.rst 展开系统讲解如何通过 AWS CLI 的aws cloudformation register-publisher命令将你的 AWS 账户注册为 CloudFormation Registry 公共扩展Public Extension的发布者。读完本文你将掌握该命令的完整参数语义、身份验证前提、典型执行流程、返回结果解析以及它与describe-publisher、register-type、publish-type等命令组成的开发—注册—发布全链路并了解其底层 API 定义对应仓库 service-2.json。一、命令作用为什么要注册 Publisher在 CloudFormation Registry 中扩展Extension分为资源类型Resource Type、模块Module和 Hook 三类。想要把扩展作为**公共扩展Public Extension**提供给所有 CloudFormation 用户使用账户必须先完成发布者注册只有注册为发布者后才能通过publish-type将扩展发布为公共扩展该发布者 ID 对账户在所有 AWS 区域All Amazon Web Services Regions全局生效无需逐区域重复注册注册成功后即可使用describe-publisher查询发布者状态。在 service-2.json 中该操作被定义为RegisterPublisher采用 HTTPPOST请求 URI 为/并标记为幂等操作idempotent——这意味着重复调用不会产生副作用。它只返回一个形状为RegisterPublisherOutput的结果内部仅包含PublisherId字段失败时抛出CFNRegistryException。二、命令语法与示例来自官方示例文档register-publisher.rst 给出的官方示例展示了最简用法注册发布者并接受条款。aws cloudformation register-publisher \ --region us-west-2 \ --accept-terms-and-conditions执行成功后的输出示例{ PublisherId: 000q6TfUovXsEMmgKowxDZLlwqr2QUshd2e75c8c }其中PublisherId即 CloudFormation 为你的账户分配、用于发布扩展的全局发布者 ID。需要注意该示例中的 ID 是文档示例值实际执行时 AWS 会为你的账户生成专属 ID。三、参数详解来自服务模型定义根据 service-2.jsonRegisterPublisherInput结构体仅包含两个可选成员参数对应形状是否必填说明--accept-terms-and-conditionsAcceptTermsAndConditions否但实际注册前必须为 true是否接受 AWS CloudFormation Registry 发布者条款与条件Terms and Conditions。默认值为false即不传该参数默认不接受。--connection-arnConnectionArn否若使用 Bitbucket 或 GitHub 账户做身份验证则为该连接的 ARN。3.1--accept-terms-and-conditions条款接受的唯一开关这是示例中唯一传入的选项也是整个注册流程的必要条件。服务模型明确说明必须接受条款才能注册为公共扩展发布者且默认值为false。因此即使你的账户已经满足其他全部前提只要漏掉该参数注册请求仍不会成功服务端会因条款未接受而拒绝抛出CFNRegistryException。命令行中以--flag形式给出即表示布尔值true。3.2--connection-arnGitHub/Bitbucket 身份验证连接如果选择使用 GitHub 或 Bitbucket 账户完成身份验证需要先通过 AWS Developer Tools 控制台创建连接Connection并将该连接的 ARN 传入aws cloudformation register-publisher \ --region us-west-2 \ --accept-terms-and-conditions \ --connection-arn arn:aws:codestar-connections:us-west-2:123456789012:connection/example-connection服务模型指出该连接用于发布者身份验证identity verification属于注册的前置条件之一Prerequisite流程。实际使用何种验证方式如 AWS Marketplace 卖家身份取决于账户的具体验证路径。四、执行前提与准备工作从服务模型文档与配套示例可梳理出以下注册前提身份验证账户需完成发布者身份验证例如通过 GitHub/Bitbucket 连接对应--connection-arn或使用 AWS Marketplace 卖家档案等其他验证方式接受条款注册时须显式传入--accept-terms-and-conditions指定区域示例中显式指定了--region us-west-2。虽然发布者 ID 对全部区域生效但命令本身仍属于区域化 API 调用建议显式指定区域以避免使用默认区域带来歧义凭证就绪运行任何aws cloudformation命令前需通过aws configure配置好 Access Key / Secret Key 与默认区域或使用环境变量 / IAM 角色等方式提供凭证。五、注册后的验证describe-publisher注册完成后可通过 describe-publisher.rst 中的describe-publisher命令查询发布者信息确认注册是否生效、状态是否VERIFIEDaws cloudformation describe-publisher \ --region us-west-2 \ --publisher-id 000q6TfUovXsEMmgKowxDZLlwqr2QUsh输出示例{ PublisherId: 000q6TfUovXsEMmgKowxDZLlwqr2QUshd2e75c8c, PublisherStatus: VERIFIED, IdentityProvider: AWS_Marketplace, PublisherProfile: https://aws.amazon.com/marketplace/seller-profile?id2c5dc1f0-17cd-4259-8e46-822a83gdtegd }输出字段包括PublisherId与注册时返回一致的发布者 IDPublisherStatus发布者状态VERIFIED表示已验证通过IdentityProvider身份验证提供方示例中为AWS_MarketplacePublisherProfile发布者档案链接。六、发布者注册在扩展生命周期中的位置注册发布者是扩展上云链条中的第一步后续步骤同样在该仓库的示例目录 awscli/examples/cloudformation 中有对应示例注册扩展私有通过 register-type.rst 中的register-type将扩展注册为账户内的私有资源类型aws cloudformation register-type \ --type-name My::Organization::ResourceName \ --schema-handler-package s3://bucket_name/my-organization-resource_name.zip \ --type RESOURCE输出为RegistrationToken可用于后续跟踪注册进度。在服务模型 service-2.json 中RegisterType还负责校验扩展 Schema、确定 handlers并注册的扩展版本存在每账户每区域最多 50 个版本的限制。发布为公共扩展注册发布者成功后通过 publish-type.rst 中的publish-type将已注册的扩展发布为公共扩展aws cloudformation publish-type \ --region us-west-2 \ --type RESOURCE \ --type-name Example::Test::1234567890abcdef0输出为PublicTypeArn形如arn:aws:cloudformation:us-west-2::type/resource/{PublisherId}/Example-Test-1234567890abcdef0/1.0.0——可以看到 ARN 中嵌入了注册时返回的发布者 ID。取消发布 / 注销不再使用时可通过 deregister-type.rst 中的deregister-type将指定版本移出活动使用状态。七、底层实现佐证从源码角度验证本文结论API 定义service-2.json 中RegisterPublisher为幂等操作、仅返回PublisherId失败抛CFNRegistryException输入模型service-2.json 中RegisterPublisherInput仅含AcceptTermsAndConditions默认false与ConnectionArn两个成员CLI 命令注册机制在 awscli/customizations/cloudformation/init.py 中通过building-command-table.cloudformation事件为cloudformation命令树注入deploy、package等自定义命令而register-publisher本身由 service-2.json 模型自动生成属于标准的模型驱动命令示例文档组织全部 CloudFormation 命令示例集中于 awscli/examples/cloudformation 目录与命令一一对应便于查阅与测试。八、常见问题与注意事项忘记传--accept-terms-and-conditions由于默认值为false漏传将导致注册失败CFNRegistryException务必显式带上发布者 ID 是否随区域变化不会。服务模型明确说明发布者 ID 对账户在所有 AWS 区域生效--region仅决定该次 API 调用落地的区域重复调用是否安全安全。RegisterPublisher是幂等操作重复执行不会产生额外副作用身份验证方式的选择--connection-arn仅适用于 GitHub/Bitbucket 身份验证路径使用 AWS Marketplace 卖家身份验证时则无需该参数参见 describe-publisher.rst 示例中IdentityProvider为AWS_Marketplace的情况与私有扩展注册的关系不注册发布者也能使用register-type注册私有扩展发布者注册只影响发布为公共扩展publish-type这一步。结语aws cloudformation register-publisher是 CloudFormation Registry 公共扩展发布流程的起点命令本身极其精简——只有一个必传开关--accept-terms-and-conditions和一个可选的身份验证参数--connection-arn。理解其参数默认值、幂等语义、全局生效的PublisherId以及与describe-publisher/register-type/publish-type的协作关系就能完整打通账户验证 → 扩展注册 → 公开发布的端到端链路。本文所有命令与模型细节均可直接对照仓库中的 register-publisher.rst 与 service-2.json 进行验证。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表