小编Int*_*ist的帖子

AWS EFS vs EBS vs S3(差异和何时使用?)

根据这个问题的标题,AWS EFS,EBS和S3之间的实际差异是什么?

我对每个人的理解:

  • S3是一个可在任何地方访问的存储设施
  • EBS是一种可以安装到EC2上的设备
  • EFS是一个可以安装到EC2上的文件系统

那么为什么我会使用EBS而不是EFS?看起来他们有相同的用例但是语义差异很小?虽然EFS是在AZ之间复制的,因为EBS只是一个已安装的设备.我想我对EBS的理解是缺乏的,因此我无法区分.

为什么选择S3而不是EFS?它们都存储文件,扩展和复制.我想在S3中你必须使用SDK,因为EFS是一个文件系统,你可以从你选择的编程语言中选择标准的I/O方法来创建文件.但那是唯一真正的区别吗?

storage amazon-web-services

299
推荐指数
6
解决办法
13万
查看次数

通过CloudFormation的AWS Lambda S3存储桶通知

我正在尝试通过CloudFormation创建Lambda通知,但是收到有关ARN格式错误的错误.

我的CloudFormation错误或者它还不支持Lambda预览.

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Parameters": {
    "LambdaArn": {
      "Type": "String",
      "Default": "arn:aws:lambda:{some-region}:{some-account-id}:function:{some-fn-name}"
    }
  },
  "Resources": {
    "EventArchive": {
      "Type": "AWS::S3::Bucket",
      "Properties": {
        "NotificationConfiguration": {
          "TopicConfigurations": [
            {
              "Event": "s3:ObjectCreated:Put",
              "Topic": {
                "Ref": "LambdaArn"
              }
            }
          ]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我推动这个CloudFormation时,我收到了消息:

The ARN is not well formed
Run Code Online (Sandbox Code Playgroud)

有没有人知道这意味着什么?我知道上面的例子已被修改,所以不使用我的实际 ARN,但在我的实际代码中,我直接从GUI复制了ARN.

此外,有趣的是我能够通过AWS控制台创建通知,因此我只是假设AWS CloudFormation尚不支持此功能(即使这并不十分清楚我在阅读文档时没有想到).

amazon-web-services aws-cloudformation aws-lambda

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

如何从 Docker 容器内猛拉到托管剪贴板?

我在 docker 容器中安装了 Vim。

我想猛拉一些文本并以某种方式神奇地使其在我的主机 (macOS) 剪贴板上可用。

这甚至可能吗?

更新

所以澄清一下,这是我的完整用例......

  • docker run ... 一些带有 Vim 的容器烘焙到图像中
  • 默认的 CMD 会让我进入 bash shell
  • 我正在将一个应用程序目录从我的主机 (macOS) 安装到容器中
  • 从我运行 vim 的容器中,编写一些代码
  • 我想从 vim 中提取一些文本并将其包含在两者中:
    • docker 系统剪贴板(如果需要,我可以将其粘贴到容器外壳中)
    • 主机 (macOS) 系统剪贴板(因此我可以将其粘贴到其他主机程序中;TextEdit 或电子邮件等)

现在我不确定主机 (macOS) 必须使用 docker 生态系统提供的 VM 才能首先运行 docker(因为 macOS 不是基于 Linux 的系统,因此可以不能在没有中间虚拟机的情况下本地运行 docker 容器)。

所以我不确定将内容放入 docker 系统剪贴板的技巧是否会过滤回 VM 和实际(macOS)主机。

x11

我见过有人建议使用 X11 并将其套接字文件安装到 docker 容器中,然后使用 xclip(或 xsel)。我试过这个,但无法让 Vim 拉入适当的寄存器,以便 xclip 获取被拉出的内容。因此,随后我不确定我尝试设置和挂载 x11 是否有效:

  • brew install Caskroom/cask/xquartz
  • open -a XQuartz
  • 作为 docker run 的一部分 -v …

vim containers docker

11
推荐指数
1
解决办法
5811
查看次数

在Docker容器中运行Ruby Sinatra无法连接(通过Mac主机)或查找命令(在不同的场景中)?

我已经尝试了两种形式的Dockerfile来运行一个简单的Ruby/Sinatra应用程序,并且在这两种情况下它都会因为不同的原因而失败(我稍后会解释).

实际上我想从我的主机(使用Boot2Docker的Mac OS X)访问Sinatra Web服务器.

应用程序结构是:

.
??? Dockerfile
??? Gemfile
??? app.rb
??? config.ru
Run Code Online (Sandbox Code Playgroud)

文件的内容是:

Dockerfile

第1版......

FROM ruby
RUN mkdir -p /app
WORKDIR /app
COPY Gemfile /app/
RUN bundle install --quiet
COPY . /app
EXPOSE 5000
ENTRYPOINT ["bash"]
CMD ["bundle", "exec", "rackup", "-p", "5000"]
Run Code Online (Sandbox Code Playgroud)

第2版​​......

FROM ubuntu:latest

RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN apt-get -qqy install libreadline-dev libssl-dev zlib1g-dev build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra docker

8
推荐指数
1
解决办法
4742
查看次数

使用Ruby了解AWS DynamoDB中的属性

我似乎无法围绕DynamoDB的AWS Ruby SDK文档(或者更具体地说是DynamoDB数据模型的概念).

具体来说,我一直在阅读:http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html#!AWS/DynamoDB.html

注意:我也已经阅读了数据模型文档,但它仍然没有下沉; 我希望在Ruby中有一个恰当的例子,清除我的困惑

在下面的代码片段中,我创建了一个名为"my_books"的表,其中有一个名为"item_id"的primary_key,它是一个哈希键(不是哈希/范围组合)......

dyn = AWS::DynamoDB::Client::V20120810.new
# => #<AWS::DynamoDB::Client::V20120810>

dyn.create_table({
  :attribute_definitions => [
    { :attribute_name => "item_id", :attribute_type => "N" }
  ],
  :table_name => "my_books",
  :key_schema => [
    { :attribute_name => "item_id", :key_type => "HASH" },
  ],
  :provisioned_throughput => {
    :read_capacity_units  => 10,
    :write_capacity_units => 10
  }
})
# => {:table_description=>{:attribute_definitions=>[{:attribute_name=>"item_id", :attribute_type=>"N"}], :table_name=>"my_books", :key_schema=>[{:attribute_name=>"item_id", :key_type=>"HASH"}], :table_status=>"ACTIVE", :creation_date_time=>2014-11-24 16:59:47 +0000, :provisioned_throughput=>{:number_of_decreases_today=>0, :read_capacity_units=>10, :write_capacity_units=>10}, :table_size_bytes=>0, :item_count=>0}}

dyn.list_tables
# => {:table_names=>["my_books"]}

dyn.scan :table_name => "my_books"
# …
Run Code Online (Sandbox Code Playgroud)

ruby amazon-web-services amazon-dynamodb

7
推荐指数
1
解决办法
2567
查看次数

在Mac OS X上使用Vim的netrw复制文件已被破坏

要使用netrw在Vim中复制文件,请执行以下步骤:

  1. 选择目标目录(使用mt)
  2. 选择要复制的文件(使用mf)
  3. 继续复制(使用mc)

在netrw中使用的命令是:

mt当光标位于
mf要复制的文件的顶部时,光标位于要作为目标运行的目录的顶部
mc当光标位于目标("标记的目标")目录的顶部

如果我在示例项目中执行此操作,Vim将显示如下内容:

Copy foo.md to : bar.md
Run Code Online (Sandbox Code Playgroud)

建议它即将做我想要的,但在确认这一点后,我收到以下错误:

1 **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
Run Code Online (Sandbox Code Playgroud)

我在网上看到netrw被认为是非常错误的,因此似乎没有太多关于如何解决这个问题的文档或说明.

我应该清楚并说明我对使用NERDTree不感兴趣.

macos vim netrw

7
推荐指数
2
解决办法
1245
查看次数

如何在golang中处理HTTP超时错误和访问状态代码

我有一些用Go编写的代码(见下文),它应该"扇出"HTTP请求,然后整理/聚合细节.

我是golang的新手,所以期待我成为一个nOOb,我的知识是有限的

该程序的输出目前是这样的:

{
    "Status":"success",
    "Components":[
        {"Id":"foo","Status":200,"Body":"..."},
        {"Id":"bar","Status":200,"Body":"..."}, 
        {"Id":"baz","Status":404,"Body":"..."}, 
        ...
    ]
}
Run Code Online (Sandbox Code Playgroud)

运行的本地服务器特意慢(睡眠5秒然后返回响应).但我列出了其他网站(见下面的代码),有时也会触发错误(如果它们出错,那就没关系).

我目前遇到的问题是如何最好地处理这些错误,特别是"超时"相关的错误; 因为我不知道如何识别故障是超时还是其他错误?

目前我总是得到一揽子错误:

Get http://localhost:8080/pugs: read tcp 127.0.0.1:8080: use of closed network connection
Run Code Online (Sandbox Code Playgroud)

http://localhost:8080/pugs通常会在哪里失败的网址(希望超时!).但正如你从代码中看到的那样(下图),我不确定如何确定错误代码与超时有关,也不确定如何访问响应的状态代码(我目前只是将其设置为404但显然这是不对的 - 如果服务器出错了我会期待类似500状态代码的东西,显然我想在我发回的聚合响应中反映出来.

完整的代码如下所示.任何帮助赞赏.

    package main

    import (
            "encoding/json"
            "fmt"
            "io/ioutil"
            "net/http"
            "sync"
            "time"
    )

    type Component struct {
            Id  string `json:"id"`
            Url string `json:"url"`
    }

    type ComponentsList struct {
            Components []Component `json:"components"`
    }

    type ComponentResponse struct {
            Id     string
            Status int
            Body   string
    }

    type Result struct { …
Run Code Online (Sandbox Code Playgroud)

timeout http-status-codes go

7
推荐指数
1
解决办法
2270
查看次数

新的git diff压缩启发式不起作用

更新

由于@ torek的回答,现在已经解决了

我需要在新添加的上方添加更多行,以便Git可以向上移动diff'ed块,我的意思是:

+a
+b
+c
+
+["foo", "bar", "baz"].map do |i|
+  i
+end
+
 ["foo", "bar", "baz"].map do |i|
   i.upcase
 end
Run Code Online (Sandbox Code Playgroud)

注意:我尝试使用单个换行符而不是a\nb\nc\n它也可以使用


原始问题......

我在Mac OSX上使用Git 2.9

这是一个简化的测试用例:

$ mkdir git-highlight && cd git-highlight
$ touch foo.rb
Run Code Online (Sandbox Code Playgroud)

我添加并提交以下内容:

["foo", "bar", "baz"].map do |i|
  i.upcase
end
Run Code Online (Sandbox Code Playgroud)

现在我修改文件以具有以下内容:

["foo", "bar", "baz"].map do |i|
  i
end

["foo", "bar", "baz"].map do |i|
  i.upcase
end
Run Code Online (Sandbox Code Playgroud)

如果我要运行,git diff或者git diff --compaction-heuristic我得到以下意外输出:

diff --git a/foo.rb b/foo.rb
index 9056b22..f0d289a …
Run Code Online (Sandbox Code Playgroud)

git git-diff

6
推荐指数
2
解决办法
1993
查看次数

Clojure设置vs明显vs重复数据删除?

因此,如果我们想要一组独特的项目,我们可以使用'set'.

如果我们已经有一个我们想要重复数据删除的项集合,我们可以将它们传递给set函数,或者我们可以使用distinct或dedupe函数.

使用这些(利弊)的情况是什么?

谢谢.

clojure

6
推荐指数
1
解决办法
558
查看次数

如何使用Amazonica库在Clojure中设置S3路径样式?

我是一个Ruby开发人员转移到Clojure,我很难理解如何根据Clojure库Amazonica中使用的约定将以下Java调用转换为Clojure .

AmazonS3 client = new AmazonS3Client(credentials);
client.setS3ClientOptions(new S3ClientOptions().withPathStyleAccess(true));
Run Code Online (Sandbox Code Playgroud)

我目前的代码是:

(ns spurious-aws-sdk-helper.core
  (:use [amazonica.aws.s3]])
  (:require [amazonica.core :refer [ex->map]]))

(def credentials {:access-key "development_access"
                  :secret-key "development_secret"
                  :endpoint "s3.spurious.localhost:49154"
                  :client-config {:protocol "http"}})

(try
  (amazonica.aws.s3/set-s3client-options {:path-style-access true})
  (create-bucket credentials "testing")
  (catch Exception e
    (clojure.pprint/write (ex->map e))))
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

com.amazonaws.http.AmazonHttpClient executeHelper
INFO: Unable to execute HTTP request: testing.s3.spurious.localhost
java.net.UnknownHostException: testing.s3.spurious.localhost
Run Code Online (Sandbox Code Playgroud)

这看起来不正确,因为它将存储桶名称(testing)添加到主机名前面.我需要SDK s3.spurious.localhost:49154使用路径样式与我们的本地(假)S3服务()交谈.

例如喜欢 http://s3.spurious.localhost:49154/testing

我认为这是因为我没有正确翻译Java代码......

(amazonica.aws.s3/set-s3client-options {:path-style-access true})
Run Code Online (Sandbox Code Playgroud)

...这是传递一个映射set-s3client-options而不是它应该是什么,这是传递调用withPathStyleAccess(true)新实例的结果S3ClientOptions.但我不知道该怎么办?

任何帮助将不胜感激.

UPDATE

这是代码的最新版本(仍然不起作用)......

(ns spurious-aws-sdk-helper.core
  (:use …
Run Code Online (Sandbox Code Playgroud)

clojure amazon-web-services amazonica

5
推荐指数
1
解决办法
1098
查看次数