小编Moj*_*ojo的帖子

AWS CLI S3调用HeadObject操作时发生客户端错误(403):禁止

我正在尝试设置Amazon Linux AMI(ami-f0091d91)并且有一个脚本运行复制命令以从S3存储桶复制.

 aws --debug s3 cp s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.noarch.rpm .
Run Code Online (Sandbox Code Playgroud)

此脚本在我的本地计算机上运行良好,但在Amazon Image上出现以下错误失败:

2016-03-22 01:07:47,110 - MainThread - botocore.auth - DEBUG - StringToSign:
HEAD


Tue, 22 Mar 2016 01:07:47 GMT
x-amz-security-token:AQoDYXdzEPr//////////wEa4ANtcDKVDItVq8Z5OKms8wpQ3MS4dxLtxVq6Om1aWDhLmZhL2zdqiasNBV4nQtVqwyPsRVyxl1Urq1BBCnZzDdl4blSklm6dvu+3efjwjhudk7AKaCEHWlTd/VR3cksSNMFTcI9aIUUwzGW8lD9y8MVpKzDkpxzNB7ZJbr9HQNu8uF/st0f45+ABLm8X4FsBPCl2I3wKqvwV/s2VioP/tJf7RGQK3FC079oxw3mOid5sEi28o0Qp4h/Vy9xEHQ28YQNHXOBafHi0vt7vZpOtOfCJBzXvKbk4zRXbLMamnWVe3V0dArncbNEgL1aAi1ooSQ8+Xps8ufFnqDp7HsquAj50p459XnPedv90uFFd6YnwiVkng9nNTAF+2Jo73+eKTt955Us25Chxvk72nAQsAZlt6NpfR+fF/Qs7jjMGSF6ucjkKbm0x5aCqCw6YknsoE1Rtn8Qz9tFxTmUzyCTNd7uRaxbswm7oHOdsM/Q69otjzqSIztlwgUh2M53LzgChQYx5RjYlrjcyAolRguJjpSq3LwZ5NEacm/W17bDOdaZL3y1977rSJrCxb7lmnHCOER5W0tsF9+XUGW1LMX69EWgFYdn5QNqFk6mcJsZWrR9dkehaQwjLPcv/29QcM+b5u/0goazCtwU=
/aws-codedeploy-us-west-2/latest/codedeploy-agent.noarch.rpm
2016-03-22 01:07:47,111 - MainThread - botocore.endpoint - DEBUG - Sending http request: <PreparedRequest [HEAD]>
2016-03-22 01:07:47,111 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): aws-codedeploy-us-west-2.s3.amazonaws.com
2016-03-22 01:07:47,151 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "HEAD /latest/codedeploy-agent.noarch.rpm HTTP/1.1" 403 0
2016-03-22 01:07:47,151 - MainThread - botocore.parsers - …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services aws-cli

44
推荐指数
14
解决办法
11万
查看次数

Playframework:发现类型不匹配 scala.concurrent.Future[play.api.mvc.Result] 必需:play.api.mvc.Result

我在 PlayFramework 的控制器中有以下代码:

  def auth = Action.async(parse.json) { request =>
    {

      val authRequest = request.body.validate[AuthRequest]
      authRequest.fold(
        errors => Future(BadRequest),
        auth => {
          credentialsManager.checkEmailPassword(auth.email, auth.password).map {

            case Some(credential: Credentials) => {

              sessionManager.createSession(credential.authAccountId).map { //Throws an error
                case Some(authResponse: AuthResponse) => Ok(Json.toJson(authResponse))
                case None => InternalServerError

              }

            }

            case (None) => Unauthorized
          }

        })
    }
  }
Run Code Online (Sandbox Code Playgroud)

我在上面带有错误注释的行收到以下错误:

Type Mismatch:
[error]  found   : scala.concurrent.Future[play.api.mvc.Result]
[error]  required: play.api.mvc.Result
[error]               sessionManager.createSession(credential.authAccountId).map {
Run Code Online (Sandbox Code Playgroud)

那里的 createSession 调用返回 aFuture[Option[Object]]但我不知道如何解决这个问题。

任何帮助将不胜感激。

scala playframework-2.5

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

AWS Cloud Formation Elastic Load Balancing帐户ID

我正在尝试创建一个具有云形成的模板,该模板设置一个负载均衡器,将日志写入S3存储桶.我想限制只PutObject访问负载均衡器帐户或服务,而不是给所有人(例如*)提供完全访问权限:

{
  "Resources": {
    "LoggingBucketPolicy": {
      "Type": "AWS::S3::BucketPolicy",
      "Properties": {
        "Bucket": {
          "Ref": "LoggingBucket"
        },
        "PolicyDocument": {
          "Action": [
            "s3:PutObject"
          ],
          "Effect": "Allow",
          "Resource": {
            "Fn::Join": [
              "",
              [
                "arn:aws:s3:::",
                {
                  "Ref": "LoggingBucket"
                },
                "/*"
              ]
            ]
          },
          "Principal": {
            "Ref": "ElasticLoadBalancingAccountID" //How do I set this dynamically?
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

文档提供了各个地区的ELB实例的帐户ID.但是,我正在创建的模板具有可用区参数,用户可以在其中选择可用区来部署堆栈.所以我理想的做法是ref在我的存储桶策略中有一些变量,它根据可用区获取负载均衡器的帐户ID.

我还查看了官方文档中的示例,但确实使用的一个示例Ref并没有真正定义变量.

我该如何实现这一目标?

编辑:我的意思是可用区而不是区域.输入参数为用户提供区域中可用区域的下拉.

amazon-s3 amazon-web-services aws-cloudformation

5
推荐指数
2
解决办法
1773
查看次数

如何在AWS Cloudfront上启用websockets

我有一个在AWS EC2 Autoscale集群上运行的Akka HTTP服务器.此EC2自动扩展群集前面有一个ELB应用程序负载平衡器.除了ELB之外,我们还有一个云端分布,设置为提供静态文件.

我们面临的问题是,从浏览器到后端的所有websocket连接请求都会因HTTP 400 Expected UpgradeToWebsocket header错误而失败.

经过进一步调查,我们发现客户端能够直接连接到负载均衡器,但是通过云端的任何连接请求都会失败.最后,我在AWS Cloudfront文档中看到了这个页面,其中说cloudfront删除了任何"升级"标头,这可能是客户端无法连接的原因.

若要解决此问题,我启用了所有"标头转发"选项(禁用缓存),但它仍然无法正常工作.此外,我找不到任何选择性禁用云端缓存或完全绕过某些URL的云端的选项.

如何解决此问题并确保websockets通过云端工作?或者这只是不支持?

amazon-web-services websocket amazon-cloudfront amazon-elb akka-http

5
推荐指数
2
解决办法
8265
查看次数

Scala/Akka语法

我是Scala和Akka的新手,并且一直在关注教程.我遇到了以下内容,并想知道这个语法到底意味着什么?

import akka.actor.Props

val props1 = Props[MyActor] //Not sure what this means???
val props2 = Props(new ActorWithArgs("arg")) // careful, see below
val props3 = Props(classOf[ActorWithArgs], "arg")
Run Code Online (Sandbox Code Playgroud)

我不确定该评论的内容//Not sure what this means是什么?它似乎是一个通用的特性,它提供了参数化类型.如果我查看源代码,akka.actor.Props则定义为Object扩展特征 AbstractProps.但是,AbstractProps未定义类型参数ie AbstractProps[T].有人可以解释一下这条线是如何工作的,它的作用是什么?

scala akka

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

Phantom vs Quill for Playframework(Scala)和Cassandra

我目前正在考虑使用Cassandra作为PlayFramework项目中的数据库.我正在寻找一个反应性的驱动程序,似乎我的选择仅限于Phantom和Quill.我对nosql数据库的经验仅限于MongoDB,之前我没有使用任何Quill或Phantom.

看看这里比较,似乎最终可能会在Phantom中编写更多代码.此外,使用DSL来描述模型似乎是违反直觉的(来自沉重的休眠/ JPA背景) - 但这可能只是我.

我想知道是否有人可以提供实用的建议/用例,其中一个人会优于另一个人以及每个人需要注意的事项?

cassandra phantom-dsl playframework-2.5

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

Akka HTTP代码/结构模式

我刚刚开始使用Akka Http(和Scala),并且想知道是否有任何明确定义的模式来构造Akka代码.特别是,我正在寻找动态组合/聚合路由的结构模式.特别是,我正在寻找类似于下面的伪代码的解决方案:

trait MyActor extends Actor {
  val myRouter: ActorRef = context.actorOf(FromConfig.props(Props[MyWorker]), "Worker")
val myRoute = .... //route definition for this trait
}



trait MySecondActor extends Actor {
  val mySecondRouter: ActorRef = context.actorOf(FromConfig.props(Props[MySecondWorker]), "SecondWorker")
    val myRoute = .... //route definition for this trait
}
Run Code Online (Sandbox Code Playgroud)

然后,在我的主服务器中混合使用特征来自动获取actor和路由:

class HttpServer extends SomeTrait with MyActor with MySecondActor {
.....
.....
 }
Run Code Online (Sandbox Code Playgroud)

上述模式存在一些明显的问题,包括:

  1. 所有特征都继承自Actor,然后混合到同一个类中 - 不确定最终行为是什么.
  2. HttpServer类本身成为一个actor,无法实例化 new HttpServer()
  3. 路线没有连接.

我正在寻找的是一种模式:

  1. 允许我在各种包中分离路由逻辑,并且最好将它与相应的actor捆绑在一起.
  2. 使路由动态且可发现,而不是在引导时指定它们.

我在StackOverflow上遇到了以下两个,但是想知道是否有更好的方法和明确定义的模式:

  1. 具有多个路由配置的akka​​-http(这不是真正的动态)

  2. 如何使用特征聚合akka-http路由?(使用反射的旧问题)

谢谢!

scala akka akka-cluster akka-http

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

Laravel 没有获取环境变量

我正在尝试使用 Apache 和 Laravel 在 docker 容器中运行 PHP 应用程序。我的 dockerfile 如下所示:

\n\n
#Create a minimalistic docker container for deploying PHP/Laravel applications\nFROM php:7-apache\nENV APACHE_DOCUMENT_ROOT /var/www/html/public\nRUN a2enmod rewrite \nRUN a2enmod setenvif\nRUN sed -ri -e \'s!/var/www/html!${APACHE_DOCUMENT_ROOT}!g\' /etc/apache2/sites-available/*.conf\nRUN sed -ri -e \'s!AllowOverride None!AllowOverride All!g\' /etc/apache2/apache2.conf\nRUN sed -ri -e \'s!/var/www/!${APACHE_DOCUMENT_ROOT}!g\' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf\nRUN sed -i \'10i \\\n        SetEnvIf X-Forwarded-Proto "https" HTTPS=on \\\n        RewriteEngine on \\\n        RewriteCond %{HTTPS} !=on \\\n        RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC] \\\n        RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] \\n\' /etc/apache2/sites-available/*.conf\nRUN mv $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini\nRUN apt-get update && …
Run Code Online (Sandbox Code Playgroud)

php laravel

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

如何从SVG中的形状中剪切文本?

我有一个SVG文件,如下所示:

在此输入图像描述

有没有办法让文字透明?也就是说,而不是填充颜色,我想要切出图层并显示背景中的内容(SVG的内容,即SVG下面的任何内容).换句话说,使路径和文本的交集是透明的?

SVG文件的内容:

<svg width="36.087" height="34.314" viewBox="0 0 36.087 34.313999" x="1190.56" y="753.5780000000001">
    <path fill="#63a95c" d="M36.087 13.107l-13.305-.66L18.047 0l-4.742 12.446L0 13.106l10.377 8.352L6.89 34.314l11.157-7.285 11.14 7.284-3.475-12.856" fill-rule="evenodd"/>
    <text font-size="10px" x="10.498" y="23.484" fill="#ffffff" fill-opacity="1" font-family="OpenSans-Bold">8.5</text>
</svg>
Run Code Online (Sandbox Code Playgroud)

我尝试更改文本元素的透明度,但这只会影响文本.SVG内部的文本是动态填充的,因此我无法"预处理"SVG文件.是否有一种方法可能使用偶数填充或类似的东西来创建交叉的"排除"?是否可以使用其中一个SVG JS库,如snap.svg或svg.js?

编辑: 最终的SVG应如下所示:

在此输入图像描述

上面发布的SVG代码用于星号和文本.最终的SVG应该具有通过文本显示的背景颜色,同时保留星形的外形.

javascript svg css3 svg.js snap.svg

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

AWS托管策略与策略

有人可以向我解释在云形成背景下AWS策略和AWS托管策略之间的区别吗?

更具体地说,我尝试定义一个自动缩放模板,其中:

  1. 自动缩放配置中的每个实例都分配有一个具有策略的IAM实例角色。
  2. 当用户尝试访问这些实例时,将对用户应用相同的策略。

我试图将重复减少到最低程度,看来我可以通过与角色和用户组链接的策略来实现。然后可以通过实例配置文件将该角色与EC2实例相关联,并且可以将用户添加到为其分配了策略的组。

为什么以及在什么情况下会使用ManagedPolicy?

谢谢您的帮助。

编辑似乎无论如何都Role需要一份政策文件。因此,即使有单独的政策也无济于事?还是我错过了什么?

amazon-web-services aws-cloudformation

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

AWS Cloud Formation S3存储桶名称已存在

我正在尝试使用以下云形成模板创建一个存储桶:

{
  "Resources": {
    "LoggingBucket": {
      "Type": "AWS::S3::Bucket",
      "Properties": {
        "BucketName": {
          "Fn::Join": [
            "/",
            [
              {
                "Ref": "AWS::Region"
              },
              {
                "Ref": "Environment"
              },
              "backend-logs"
            ]
          ]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,它在创建堆栈时会出现以下错误:

us-east-1/development/backend-logs already exists
Run Code Online (Sandbox Code Playgroud)

这似乎是错误是有点误导-如果我改变了/.,它的工作原理.

我还检查了文档,虽然它似乎/是一个无效的字符,但它似乎/可能与他们自己的内部命名架构或其他东西发生冲突.

我纠正还是错过了什么?

amazon-web-services aws-cloudformation

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

Laravel Nova:替换主路由并作为默认应用程序运行

我正在使用 Laravel Nova 并考虑在我的应用程序中使用它。我想知道是否有一种方法可以使 Nova 成为我点击 URL 时加载的默认应用程序,即myapplication.test/nova,我希望当我点击 时加载 nova 仪表板,而不是导航到myapplication.test。如何将 Laravelhome路线设置为“nova”仪表板?

更新 1:我遇到了这个https://github.com/laravel/nova-issues/issues/174但是,似乎不起作用。

laravel laravel-nova

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

Scala:将 Map[String, String] 转换为 String 的惯用方法

我有一个地图,其中包含一些HTTP将发送到 API 的参数。

val sortedParameters: SortedMap[String, String] = SortedMap(
        "oauth_nonce" -> nonce,
        "oauth_callback" -> callbackURL,
        "oauth_signature_method" -> signatureMethod,
        "oauth_consumer_key" -> consumerKey
      )
Run Code Online (Sandbox Code Playgroud)

上述参数必须进行 URL 编码并以表单key1=value1&key2=value2等形式连接。在 Scala 中实现此目的的最佳惯用方法是什么?

scala

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