问题描述
我已通过 Hashicorp 的 Packer 将我的产品作为 AMI 上传到 AWS。现在我想自动化最后一步,将其发布到市场。该产品已经存在,只是添加一个修订版。
在阅读this article、API_StartChangeSet doc、add 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\":{}}",
您找到的示例并不一定意味着您必须拥有 EntityArn
和 RevisionsArns
。 Details
方面用作描述更改细节的信息。
检查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\"
]
}
]
}
}
}
]
}"