小编com*_*day的帖子

允许使用 AWS CDK 从一个安全组进入另一个安全组

如何使用 AWS CDK 将两个安全组连接在一起?

这是允许 IPv4 流量通过端口 443 进入的示例

ec2SecurityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(443), 'Test rule', false)
Run Code Online (Sandbox Code Playgroud)

这来自文档:

public addIngressRule(peer: IPeer, connection: Port, description?: string, remoteRule?: boolean): void
Run Code Online (Sandbox Code Playgroud)

这是我能想到的最好的方法(其中 'elbSecurityGroup' 是另一个安全组):

const p = Peer.anyIpv4()
p.connections.allowFrom(elbSecurityGroup.connections, Port.tcp(443))
ec2SecurityGroup.addIngressRule(p, Port.tcp(443), 'Test rule', false)
Run Code Online (Sandbox Code Playgroud)

但这真的没有任何意义。必须有更好的方法来初始化 Peer。打字稿说

类“Peer”的构造函数受保护并且只能在类声明中访问。

如果我尝试:

const p = new Peer()
Run Code Online (Sandbox Code Playgroud)

typescript aws-cdk

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

从 Lambda 调用 RunTask 时出现 Amazon ECS 服务不可用异常

我可以从 AWS 控制台和 AWS CLI 在集群上运行任务,但是当我尝试从 Lambda 运行相同的任务/集群组合时,我收到以下错误:

"errorMessage": "Service Unavailable. Please try again later. (Service:     AmazonECS; Status Code: 500; Error Code: ServerException; Request ID: b02100bb-0ac4-11e7-84df-a552ac171feb)",
"errorType": "com.amazonaws.services.ecs.model.ServerException",
Run Code Online (Sandbox Code Playgroud)

我可以使用 Lambda 成功注册一个新任务,还可以使用 Lambda 中的任务创建一个新服务。

我怎样才能进一步了解这个错误?

amazon-ec2 amazon-web-services aws-lambda

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

是否可以通过 Cloudfront 对 API Gateway 进行 IAM 身份验证?

是否可以通过 Cloudfront 对 API 网关端点使用 IAM 角色身份验证?

这是一个基本用例:

  • /api -> API 网关
  • /* -> S3 HTML/Javascript

我已经能够在没有身份验证的情况下工作类似于以下设置:https : //www.codeengine.com/articles/process-form-aws-api-gateway-lambda/

API Gateway前面怎么加CloudFront

特别要注意的是不要转发来自 Cloudfront 的 HOST 标头...

当我在 API 中启用 IAM 身份验证时,我收到以下响应:

选项:200

帖子:403

{"message":"我们计算的请求签名与您提供的签名不匹配。请检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。\n\n此请求的规范字符串应该是\n 'POST\n/test/create\n\naccept:application/json\ncontent-type:application/json\nhost:*****.execute-api.ap-****-2.amazonaws.com\ NX-AMZ-日期:20170328T044253Z \ n \ naccept;内容类型,主机X-AMZ-日期\ na57656a9def890d9de2b637789f7e5917f4b2823765ae0122087d08f89a97380' \ n \ n此字符串到注册应该已经\ n'AWS4-HMAC-SHA256 \ n20170328T044253Z \ n20170328 /ap-southeast-2/execute-api/aws4_request\ncae7fd6b4cabd593ad2ec6ce7091c94dc8cba306e81da95d567873eea8f981a5'\n"}

规范字符串中的主机是 API 网关的主机...

amazon-web-services aws-api-gateway

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

带有 APR 的 Tomcat 仍然说 aprConnector 是假的

这是 server.xml 中的连接器:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150"
               SSLEnabled="true"
               scheme="https"
               compression="off"
               connectionTimeout="1190"
               address="0.0.0.0"
               >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="/etc/ssl/certs/private.key"
                         certificateFile="/etc/ssl/certs/public.pem"
                          />
        </SSLHostConfig>
</Connector>
Run Code Online (Sandbox Code Playgroud)

此连接器的目标是通过 HTTP2 和 APR 以及 HTTPS 提高速度。

我们使用操作系统包 tomcat-native 安装了 tomcat native。

启动时的日志输出:

信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用 APR 版本 [1.6.3] 加载基于 APR 的 Apache Tomcat 本机库 [1.2.16]。

信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR 功能:IPv6 [true]、sendfile [true]、接受过滤器 [false]、随机 [true]。

INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL 配置:useAprConnector [false],useOpenSSL [true]

一切看起来都很棒,除了useAprConnector [false]

那么APR真的在做什么吗?

我在相关文档中找不到任何内容:

https://tomcat.apache.org/tomcat-8.0-doc/config/http.html#SSL_Support

https://tomcat.apache.org/tomcat-8.0-doc/apr.html

java https tomcat apr

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

JSON Path 使用 JSON Path 从父对象和子对象中提取特定字段/数组

给定一个 JSON 对象,例如:

"book": [
            {
                "category": "reference",
                "author": "Nigel Rees",
                "book_id": "214515",
                "title": "Sayings of the Century",
                "price": 8.95,
                "reviews": [
                {
                  "rating": 2,
                  "reviewer": "Amazon",
                  "weight": 0
                },
                {
                ...
                }
            ]
        },
        {
        ...
        }
Run Code Online (Sandbox Code Playgroud)

是否可以选择 book_id 以及该书的部分或全部评论?

结果可能看起来像这样:

[
    {
    "book_id": "...",
    "reviews": [
        ...
    ]
    },
    {
        ...
    }
]
Run Code Online (Sandbox Code Playgroud)

我一直在使用 Jayway jsonpath: https: //github.com/json-path/JsonPath

在处理数组(例如“评论”)然后以编程方式加入时,以下方法不适合:

   List ids = JsonPath.read(json, "$.store.books[*].book_id");
   List reviews =  JsonPath.read(json, "$.store.books[*].reviews[*]");
Run Code Online (Sandbox Code Playgroud)

java json jsonpath

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