Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 由于有关EC2 BillingProduct代码的神秘错误,无法复制图像_Amazon Web Services_Packer - Fatal编程技术网

Amazon web services 由于有关EC2 BillingProduct代码的神秘错误,无法复制图像

Amazon web services 由于有关EC2 BillingProduct代码的神秘错误,无法复制图像,amazon-web-services,packer,Amazon Web Services,Packer,我正试图复制EC2映像以对其进行加密 我发布的命令行是: $ aws ec2 copy-image --name encrypted-kafka-201707121432 \ --source-region ap-southeast-2 --encrypted --source-image-id ami-2a617249 \ --region ap-southeast-2 这将导致发出以下错误: An error occurred (InvalidRequest) when call

我正试图复制EC2映像以对其进行加密

我发布的命令行是:

$ aws ec2 copy-image --name encrypted-kafka-201707121432 \
  --source-region ap-southeast-2 --encrypted --source-image-id ami-2a617249 \
  --region ap-southeast-2 
这将导致发出以下错误:

An error occurred (InvalidRequest) when calling the CopyImage operation:
  Images with EC2 BillingProduct codes cannot be copied to another AWS account.
我环顾四周,了解到此错误通常在复制Windows AMI(例如)时出现,它与SO()上的此问题类似

但是,此映像不是来自市场,也不是Windows AMI,并且其中没有任何产品代码:

$ aws ec2 describe-images --image-ids ami-2a617249 --region ap-southeast-2 \
    --query '.Images[].ProductCodes'
[]
将此项与另一项进行比较:

$ aws ec2 describe-images --image-ids ami-00280263 --region ap-southeast-2 \
    --query '.Images[].ProductCodes'
[
  {
    "ProductCodeType": "marketplace",
    "ProductCodeId": "dsli9z1o9amfv5g2hsmdj1pph"
  }
]
图像是使用Packer烘焙的


我没有主意了。为什么会发生这种情况?是我做错了什么,还是这种没有记录的行为?

事实证明,这种AMI的后代确实来自亚马逊市场

烘焙管道的简化版本为:

账户A:

市场AMI(AMI-xxxxxxxx)->打包机构建(AMI-YYYYYY)->共享到帐户B

账户B:

我随后发表:

aws ec2 copy-image --encrypted --source-image ami-yyyyyyyy
并收到:

An error occurred (InvalidRequest) when calling the CopyImage operation:
  Images with EC2 BillingProduct codes cannot be copied to another AWS account.
从帐户B,我可以检查所有者,即与我共享该帐户的帐户:

$ aws ec2 describe-images --image-id ami-yyyyyyyy --region ap-southeast-2 \
>   --query 'Images[0].OwnerId'
这返回帐户A的16位帐户ID

在这一点上,了解使用Packer烘焙AMI会导致产品代码明显丢失是很有帮助的。但是,这些产品代码仍然存在,Amazon支持人员可以看到它们。需要致电亚马逊支持部门确认此部分


为了解决这个问题,我现在用Python或Bash(AWS CLI)维护一个可以使用的脚本。

该实例是从Marketplace实例的AMI生成的,还是以任何方式与Marketplace实例关联?另请看,就我所知,也就是说,除非我被误导,否则不会。我想要排除这一点,我需要自己做所有的上游AMI烘焙,或者有没有办法进行测试?结果证明答案是“是”。下面是完整的解释。因此,您可以共享图像,将其旋转,并从运行的实例创建副本,而不仅仅是制作图像的副本。