我在使用 AWS SDK 时遇到过这个问题。目前我正在使用 golang 的 SDK,但也欢迎其他语言的解决方案!
我通过 SDK 创建了 ECS 集群
现在我需要为这个集群添加 EC2 容器。我的问题是我无法使用 Amazon ECS 代理通过配置指定集群名称:
#!/bin/bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
或类似的东西。 我只能使用 SDK。
我找到了名为 RegisterContainerInstance 的方法.
但是它有注释:
This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.
它看起来不像工作解决方案。
我需要了解如何(如果可能的话)仅使用 SDK 创建有效的 ECS 集群。
更新: 我的主要目标是我需要从我的 Docker 镜像启动指定数量的服务器。 在调查此任务时,我发现我需要:
创建ECS集群
为其分配所需的 ec2 实例数。
使用我的 Docker 镜像创建任务。
手动或作为服务在集群上运行它。
所以我:
通过 CreateCluster 创建了新集群名为“test-cluster”的方法。
通过 RegisterTaskDefinition 创建了新任务
创建了具有 ecsInstanceRole 角色和 ecs-optimized AMI 类型的新 EC2 实例,这对我所在的地区来说是正确的。 那里是问题开始的地方。
实际结果:所有新的 ec2 实例都附加到“默认”集群(AWS 创建它并将实例附加到它)。 如果我使用的是 ECS 代理,我可以使用 ECS_CLUSTER 配置环境指定集群名称。但我正在开发仅使用 SDK 的工具(没有任何使用 ECS 代理的能力)。 使用 RegisterTaskDefinition 我无法指定集群,所以我的问题是如何将新的 EC2 实例准确分配给指定的集群?
当我试图通过 RunTask 开始我的任务时方法(希望 AWS 以某种方式为我创建实例或类似的东西)我收到一个错误:
InvalidParameterException: No Container Instances were found in your cluster.
最佳答案
我其实搞不懂你问的是哪个问题。您需要向集群添加容器,还是向集群添加实例?这些是非常不同的。
这不是通过 ECS API 完成的,而是通过使用正确的 ecsInstanceRole 创建 EC2 实例的 EC2 API 完成的。查看Launching an Amazon ECS Container Instance文档以获取更多信息。
这是通过定义任务定义,然后手动或作为服务运行这些任务来完成的。查看Amazon ECS Task Definitions获取更多信息。
关于amazon-web-services - AWS ECS SDK.使用 SDK 为 ECS 集群注册新的容器实例 (EC2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51773995/
从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我目前正在使用带有Carrierwavegem的Rails3.2将文件上传到AmazonS3。现在我需要能够处理用户提交的大于5GB的文件,同时仍然使用Carrierwavegem。Carrierwave或Fog是否有任何其他gem或分支可以处理5GB以上的文件上传到S3?编辑:我不想重写一个完整的Rails上传解决方案,所以像这样的链接没有帮助:https://gist.github.com/908875. 最佳答案 我想出了如何做到这一点,并且现在可以正常工作了。在正确的config/environment文件中,添加以下内容以
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我需要从基于ruby的应用程序使用AmazonSimpleNotificationService,但不知道从哪里开始。您对从哪里开始有什么建议吗?
我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe
我正在关注Hartl的railstutorial.org并已到达11.4.4:Imageuploadinproduction.我做了什么:注册亚马逊网络服务在AmazonIdentityandAccessManagement中,我创建了一个用户。用户创建成功。在AmazonS3中,我创建了一个新存储桶。设置新存储桶的权限:权限:本教程指示“授予上一步创建的用户读写权限”。但是,在存储桶的“权限”下,未提及新用户名。我只能在每个人、经过身份验证的用户、日志传送、我和亚马逊似乎根据我的名字+数字创建的用户名之间进行选择。我已经通过选择经过身份验证的用户并选中了上传/删除和查看权限的框(而不
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:AmazonAPIlibraryforPython?我正在寻找一个AmazonAPI,它可以让我:按书名或作者查找书籍显示书籍封面获取有关每本书的信息(价格、评级、评论数、格式、页数等)Python或Ruby库都可以(我只想要最容易使用的库)。有什么建议么?我知道在SO上还有其他一些关于此的帖子,但这些API似乎很快就过时了。[几个月前我尝试了几个建议的Ruby库,但无法让它们中的任何一个工作。]
我正在尝试上传文件。一个简单的hello.txt。我正在关注文档,但无法将其上传到我的存储桶。#STARTAWSCLIENTs3=Aws::S3::Resource.newbucket=s3.bucket(BUCKET_NAME)begins3.buckets[BUCKET_NAME].objects[KEY].write(:file=>FILE_NAME)puts"Uploadingfile#{FILE_NAME}tobucket#{BUCKET_NAME}."bucket.objects.eachdo|obj|puts"#{obj.key}=>#{obj.etag}"endresc
下面是我用来从应用程序中解析CSV的代码,但我想解析位于AmazonS3存储桶中的文件。当推送到Heroku时它也需要工作。namespace:csvimportdodesc"ImportCSVDatatoInventory."task:wiwt=>:environmentdorequire'csv'csv_file_path=Rails.root.join('public','wiwt.csv.txt')CSV.foreach(csv_file_path)do|row|p=Wiwt.create!({:user_id=>row[0],:date_worn=>row[1],:inven
我正在尝试实现state_machinegem,在我的rails项目中,我安装了gem,然后我将“state”列添加到我的account_entries模型中:defchangeadd_column:account_entries,:state,:stringend然后在我的account_entries模型中,我添加了状态机初始方法,如下所示:state_machine:state,:initial=>:submitteddoend然后在我看来我显示时间进入状态:account_entry.state但是当我尝试从我的应用程序创建一个account_entry时,我得到了这个错误:p