繁体   English   中英

AWS EC2竞价型实例PHP在发出现场请求时添加标记

[英]AWS EC2 Spot Instance PHP add tag when making spot request

我希望能够在通过PHP发出点请求时包含一个标记。 创建按需实例时,您可以创建实例,然后使用它的实例发出以下内容:

$ec2->create_tags($instance_id, array(
      array('Key' => 'Name', 'Value' => 'MyTestMachine'),
    ));

但是,在发布现货出价时,实例不会立即启动,因此您必须创建一个观察者标记来处理此问题...除非您可以在请求阶段添加标记。 我还没有找到任何文件来说明它会如何发展或看起来像是否存在?

答案是,在实际创建实例之前,您无法分配标记。 为了标记这个,我使用了一个监听器守护进程来监视新实例并在它们启动后标记它们。

对于未来没有听众寻求解决方案的人来说:

通过在用户数据中向CLI添加标记请求,您也可以在创建实例标记后使用它。 这在EC2实例上作为许多EC2默认AMI(默认情况下也安装了CLI)的引导脚本执行。

要做到这一点(使用股票图像):

  1. 创建具有在EC2上创建标记的权限的IAM 角色
  2. 在您的spot实例请求中,指定角色。
  3. 在您的spot实例请求用户数据中,包括create tags CLI命令(对于Linux - 如果您使用的是Windows,也可以使用powershell执行等效操作)。 您将看到有一个内联命令可以从EC2元数据服务获取实例ID:

     #!/bin/bash aws ec2 create-tags --resources `wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` --tags Key=somekey1,Value=somevalue1 Key=somekey2,Value=somevalue2 

如果您使用CLI或SDK发出现场请求,则可能需要将上面的用户数据作为base64进行编码。 AWS Web控制台可以为您执行此操作。

而已!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM