通过 CLI 自动发布 AWS Marketplace

问题描述

我已通过 Hashicorp 的 Packer 将我的产品作为 AMI 上传到 AWS。现在我想自动化最后一步,将其发布到市场。该产品已经存在,只是添加一个修订版。

在阅读this articleAPI_StartChangeSet docadd revisions user guide 和摆弄市场控制台后,我想我只需要

aws marketplace-catalog start-change-set --catalog AWSMarketplace --change-set-name "$VERSION" --change-set '[ {"ChangeType": "AddRevisions","Entity": {"Identifier": "REDACTED@29","Type": "ServerProduct@1.0"},"Details": "{\"DataSetArn\": \"?????\",\"RevisionArns\": [\"?????\"] }" ]'

我很难想出“详细信息”部分。我有我的 AMI ID。我猜这在 RevisionsArns 中?我应该在 DataSetArn(aws marketplace-catalog describe-entity --catalog AWSMarketplace --entity-id REDACTED输出中的“EntityArn”)中放入什么?

解决方法

Details facet 只是一个特定于产品类型的 facet,编码为 json 字符串。对于您在 AWS Marketplace 中提供的 AMI,它可能包括支持信息、区域可用性或提供有关您的更改的描述性文本的任何其他信息。例如:

  "Details": "{\"Description\":{},\"PromotionalResources\":{},\"RegionAvailability\":{},\"SupportInformation\":{}}",

您找到的示例并不一定意味着您必须拥有 EntityArnRevisionsArnsDetails 方面用作描述更改细节的信息。

检查here

,

原来我没有找到好的文档,我的最后一个链接是关于 AWS Data Exchange,其“详细信息”字段的内容令人困惑。

这里是相关文档:Marketplace catalog AMI add version,这里是我正在寻找的片段

      "Details": "{
        \"Version\": {
          \"VersionTitle\": \"*My new title*\",\"ReleaseNotes\": \"*My new Release notes*\"
        },\"DeliveryOptions\": [
          {
            \"Details\": {
              \"AmiDeliveryOptionDetails\": {
                \"AmiSource\": {
                  \"AmiId\": \"ami-1234567890abcdef\",\"AccessRoleArn\": \"arn:aws:iam::12345678901:role/AwsMarketplaceAmiIngestion\",\"UserName\": \"ec2-user\",\"OperatingSystemName\": \"AMAZONLINUX\",\"OperatingSystemVersion\": \"Amazon Linux 2 AMI 2.0.20210126.0 x86_64 HVM gp2\"
                },\"UsageInstructions\": \"Easy to use AMI\",\"RecommendedInstanceType\": \"m4.xlarge\",\"SecurityGroups\": [
                  {
                    \"IpProtocol\": \"tcp\",\"FromPort\": 443,\"ToPort\": 443,\"IpRanges\": [
                      \"0.0.0.0/0\"
                    ]
                  }
                ]
              }
            }
          }
        ]
      }"