小编Eri*_*ond的帖子

EC2自动缩放不会在服务器上放置名称(标记)

我在EC2上创建了一个自动缩放组,它工作得很好.服务器根据负载向上和向下扩展.我想在管理方面获得更多信息,并且想知道是否有办法让自动缩放组动态地将名称添加到它启动的实例中.我指的是使用key = Name和value = autogeneratedid添加标签.

例如,如果我有一个名为test-group的自动缩放组,则服务器将使用以下名称启动:

test-group-1
test-group-2
test-group-3
...
Run Code Online (Sandbox Code Playgroud)

我想在EC2管理控制台中找到它们进行枚举,但是现在它们只是显示为"空"名称(Tag key = Name未在实例上明确设置).

有任何想法吗?

amazon-ec2 amazon-web-services autoscaling

14
推荐指数
1
解决办法
7173
查看次数

基于Amazon Prefix的S3策略不起作用(AWS,IAM,STS,Ruby)

我正在构建一个使用亚马逊安全令牌服务的应用程序来创建临时用户来访问S3存储桶上的子目录.用户由具有对存储桶的完全读/写访问权限的IAM用户创建(以及创建用户所需的权限).

我创建的用户与会话过期完美配合等等,但我在制定正确的策略时遇到问题,以允许基于前缀的密钥列表.我希望最终用户拥有的权限是:

  1. 读取某些已定义前缀的对象
  2. 将对象写入相同的已定义前缀
  3. 列出驻留在已定义前缀中的所有对象

我设法读取和写入工作,但无论如何我尝试列表访问不能正常工作.这是我最接近时使用的Ruby代码:

AWS::STS::Policy.new do |policy|
  policy.allow(
    actions: ["s3:GetObject*", "s3:PutObject*", "s3:DeleteObject*"],
    resources: "arn:aws:s3:::#{ENV['PROJECT_BUCKET']}/#{folder_path}/*"
  )

  policy.allow(
    actions: ["s3:*"],
    resources: ["arn:aws:s3:::#{ENV['PROJECT_BUCKET']}/*", "arn:aws:s3:::#{ENV['PROJECT_BUCKET']}"]
  ).where(:s3_prefix).like("#{folder_path}/*")
end
Run Code Online (Sandbox Code Playgroud)

如果我记得,这让我可以阅读和写作,但不能列出.由于我还处于开发阶段,我已将代码更改为:

AWS::STS::Policy.new do |policy|
  # FIXME: This is way too permissive, but it's not working to be more specific.
  policy.allow(
    actions: ["s3:*"],
    resources: ["arn:aws:s3:::#{ENV['PROJECT_BUCKET']}/*", "arn:aws:s3:::#{ENV['PROJECT_BUCKET']}"]
  )
end
Run Code Online (Sandbox Code Playgroud)

这可以100%正常工作,显而易见的问题是没有任何东西限制在一个前缀,这将允许用户破坏彼此的工作.

我的政策中我做错了什么?

ruby amazon-s3 amazon-web-services amazon-iam

12
推荐指数
2
解决办法
3121
查看次数

通过PHP获取Amazon EC2实例ID

我正在寻找创建一个PHP脚本,它将回显Amazon EC2实例的唯一ID.有人知道怎么做吗?

通过命令行找到方法:http://af-design.com/blog/2010/07/27/testing-your-aws-elastic-load-balancer/

我可以使用PHP w/CURL提交查询吗?

php curl get amazon-ec2

4
推荐指数
1
解决办法
4606
查看次数

AWS Lambda获取上下文消息

我正在使用AWS控制台的测试功能:

console.log('Loading event');

exports.handler = function(event, context) {
    console.log('value1 = ' + event.key1);
    console.log('value2 = ' + event.key2);
    console.log('value3 = ' + event.key3);
    context.done(null, 'Hello World');  // SUCCESS with message
};
Run Code Online (Sandbox Code Playgroud)

并在nodejs中调用它,如下所示:

var params = {
  FunctionName: 'MY_FUNCTION_NAME', /* required */
  InvokeArgs: JSON.stringify({
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  })
};

lambda.invokeAsync(params, function(err, data) {
  if (err) {
    // an error occurred
    console.log(err, err.stack);
    return cb(err);
  }
  // successful response
  console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

一切正常:

//Console Output
{ Status: 202 }
Run Code Online (Sandbox Code Playgroud)

但我期待从context.done(null,'Message')收到消息...... …

amazon-web-services node.js aws-lambda

3
推荐指数
1
解决办法
2904
查看次数

如何在同一EC2实例上创建另一个AMI

我在AWS EC2上执行以下操作:

  1. 启动一个EBS支持的EC2实例i-1
  2. 定制它并创建一个AMI,让我们说它是AMI-1
  3. 在我对i-1实例进行进一步更改后,我再次在该实例上创建一个新的AMI
  4. 我跳,我现在会得到AMI-1和AMI-2两个图像.
  5. 但似乎只创建了AMI-2,原来的AMI-1现在消失了.而属于AMI-1的快照仍然存在.真奇怪.

基本上我想知道:

  1. 那么在EC2上定制AMI的正常行为是什么?
  2. 如果有办法让我在同一个实例上创建多个AMI?
  3. 创建AMI-2后,是否会影响基于AMI-1的运行实例?

提前致谢.我无法从谷歌或EC2文件中弄清楚.

amazon-ec2

2
推荐指数
1
解决办法
1353
查看次数