分配标签和 public 例如通过亚马逊
assign tag and public for instance via amazonica
我正在使用 amazonica 创建一个 ami,然后在它准备就绪时从 ami 启动一个实例。
我在使用 amazonica 时遇到的问题是,除了自述文件中的内容外,它几乎没有任何文档(我能找到)。准备好的东西很少,涵盖的东西也很少。
我目前可以成功查看 运行 个实例,获取最新/所需的实例,从中创建一个 AMI,等待它准备就绪,然后启动该实例。
只是,(run-instance)
方法接受了我不知道的参数。查看 java api doc 我已经通过一些试验和错误找到了大部分参数,但我仍然需要设置更多的东西。
在哪里可以找到要传递给该函数的参数?
目前,我有:
(run-instances :image-id ami-id
:min-count 1
:max-count 1
:instance-type "t2.small"
:key-name "api-key-pair"
:sercurity-groups ["sg-1a2b3c4d"]
;:vpc-id "vpc-a1b2c3d4"
:subnet-id "subnet-a1b2c3d4"
:monitoring true
:ebs-optimized false
:tag [{:value instance-name
:key "Name"}])
这设置了大部分内容。但我不知道如何设置:
- tag - 我想设置一个标签
name: "prod-1.0"
安全组。我试过上面那个,这个:
:security-groups [{:group-id "sg-1a2b3c4d"
:group-name "SG_STRICT"}]
但是没用。实例有默认组,或者,我得到一个奇怪的错误,如
...AmazonServiceException: The specified instance type can only be used in a VPC. A subnet ID or network interface ID is required to carry out the request
或
....s.AmazonServiceException: The security group '{:group-id "sg-1a2b3c4d", :group-name "SG_STRICT"}' does not exist
我已经浏览了整个文档页面几次,找不到任何其他合理的选项/关键字来传递。
我也想用自动分配-public-ip 选项启动实例。
不幸的是,来源并没有透露太多关于 amazonica 的信息,正如文档所说,它大量使用反射并且测试不是很详尽。
请问如何设置安全组和标签?
对于组,自述文件中的示例使用名称 :groups
而不是安全组,我认为您不需要同时指定 ID 和名称,只需名称就足够了。我不这样做是因为在实践中我总是创建一个 ASG 和启动配置,然后将其放入 LB。 amazonica 的示例如下所示:
:groups [{:group-name "cx", :group-id "sg-38f45150"}],
当 specifying it in a launch configuration 看起来像这样:
:security-groups ["Email-prod" "marker.production"]
使用 amazonica 的最佳资源是 AWS rest API 文档,您在创建实例时找不到参数,因为它在 it's own call 中。首先开始创建实例,然后从该响应中获取实例 ID 后再次调用以标记实例。
(ec2/create-tags
{:resources ["i-cb2AAA3a"]
:tags [{:key "hello"
:value "world"}]})
阅读这些文档的一些技巧:
- 非驼峰命名为非驼峰命名
- 具有迭代数字的参数,例如:
&Tag.1.Key=webserver
&Tag.1.Value=
&Tag.2.Key=stack
&Tag.2.Value=Production
可以写成数组
- (截至今天)AWS 网络界面中存在一个错误,除非您单击 "edit tags" 按钮,否则您将无法看到您的新标签,因此看起来您的呼叫可能无法正常工作,除非您仔细检查。 AWS 有许多 此类错误。通过 Web 界面信任 API。
我正在使用 amazonica 创建一个 ami,然后在它准备就绪时从 ami 启动一个实例。
我在使用 amazonica 时遇到的问题是,除了自述文件中的内容外,它几乎没有任何文档(我能找到)。准备好的东西很少,涵盖的东西也很少。
我目前可以成功查看 运行 个实例,获取最新/所需的实例,从中创建一个 AMI,等待它准备就绪,然后启动该实例。
只是,(run-instance)
方法接受了我不知道的参数。查看 java api doc 我已经通过一些试验和错误找到了大部分参数,但我仍然需要设置更多的东西。
在哪里可以找到要传递给该函数的参数?
目前,我有:
(run-instances :image-id ami-id
:min-count 1
:max-count 1
:instance-type "t2.small"
:key-name "api-key-pair"
:sercurity-groups ["sg-1a2b3c4d"]
;:vpc-id "vpc-a1b2c3d4"
:subnet-id "subnet-a1b2c3d4"
:monitoring true
:ebs-optimized false
:tag [{:value instance-name
:key "Name"}])
这设置了大部分内容。但我不知道如何设置:
- tag - 我想设置一个标签
name: "prod-1.0"
安全组。我试过上面那个,这个:
:security-groups [{:group-id "sg-1a2b3c4d" :group-name "SG_STRICT"}]
但是没用。实例有默认组,或者,我得到一个奇怪的错误,如
...AmazonServiceException: The specified instance type can only be used in a VPC. A subnet ID or network interface ID is required to carry out the request
或
....s.AmazonServiceException: The security group '{:group-id "sg-1a2b3c4d", :group-name "SG_STRICT"}' does not exist
我已经浏览了整个文档页面几次,找不到任何其他合理的选项/关键字来传递。
我也想用自动分配-public-ip 选项启动实例。
不幸的是,来源并没有透露太多关于 amazonica 的信息,正如文档所说,它大量使用反射并且测试不是很详尽。
请问如何设置安全组和标签?
对于组,自述文件中的示例使用名称 :groups
而不是安全组,我认为您不需要同时指定 ID 和名称,只需名称就足够了。我不这样做是因为在实践中我总是创建一个 ASG 和启动配置,然后将其放入 LB。 amazonica 的示例如下所示:
:groups [{:group-name "cx", :group-id "sg-38f45150"}],
当 specifying it in a launch configuration 看起来像这样:
:security-groups ["Email-prod" "marker.production"]
使用 amazonica 的最佳资源是 AWS rest API 文档,您在创建实例时找不到参数,因为它在 it's own call 中。首先开始创建实例,然后从该响应中获取实例 ID 后再次调用以标记实例。
(ec2/create-tags
{:resources ["i-cb2AAA3a"]
:tags [{:key "hello"
:value "world"}]})
阅读这些文档的一些技巧:
- 非驼峰命名为非驼峰命名
- 具有迭代数字的参数,例如:
&Tag.1.Key=webserver &Tag.1.Value= &Tag.2.Key=stack &Tag.2.Value=Production
可以写成数组 - (截至今天)AWS 网络界面中存在一个错误,除非您单击 "edit tags" 按钮,否则您将无法看到您的新标签,因此看起来您的呼叫可能无法正常工作,除非您仔细检查。 AWS 有许多 此类错误。通过 Web 界面信任 API。