小编Zer*_*Max的帖子

Rails 4关注点:将类实例变量赋予模型

对于Rails问题,我可以通过包含它们来通过模块给出我的模型类方法和实例方法.我发现没有博客条目或帖子提及我如何在我的模型中包含变量.

具体来说,我想给我的包含模型一个类实例变量@question,但我不知道在模块中将声明放在何处以便应用它.如果模型本身声明了该变量,我还希望覆盖类实例变量.

ActiveSupport::Concern模块是否真的关心变量?

module ContentAttribute
    extend ActiveSupport::Concern

    def foo
        p "hi"
    end

    module ClassMethods

        # @question = "I am a generic question." [doesn't work]

        def bar
            p "yo"
        end
    end
end 

class Video < ActiveRecord::Base
    include ContentAttribute

    # @question = "Specific question"; [should override the generic question]
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-4 activesupport-concern

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

来自执行环境的 AWS Lambda 凭证没有执行角色的权限

我正在部署一个 AWS lambda 函数(使用 nodejs 12.x),该函数在调用时执行 AWS 命令​​(“iot:attachPrincipalPolicy”)。我正在使用凭据从 lambda 执行环境变量运行此命令。

  const AWS = require('aws-sdk/global');

  const region = process.env['AWS_REGION'];
  const accessKeyId = process.env['AWS_ACCESS_KEY_ID'];
  const secretAccessKey = process.env['AWS_SECRET_ACCESS_KEY'];

  AWS.config.region = region;
  AWS.config.credentials = new AWS.Credentials(accessKeyId, secretAccessKey);

  // attachPrincipalPolicy command from the AWS SDK here
Run Code Online (Sandbox Code Playgroud)

当我在本地(使用sam local start-api)测试该函数时,它会成功运行,因为在我的 AWS CLI 中,我已经设置了ACCESS_KEY_ID管理员帐户的和 密码。

但是,当我部署该函数并调用它时,即使我对 lambda 的执行角色授予完全管理员访问权限,该命令也会导致 lambda 失败并出现客户端错误(凭据无效)。

在此处输入图片说明

在这里,我在内联策略中授予了完全权限,并且还明确添加了预定义的管理员访问策略。

我希望您从环境变量中获得的 AWS_ACCESS_KEY_ID 授予我我在 lambda 函数的执行角色中设置的所有权限,但看起来我授予执行角色的特权并未反映在这些凭证中。

我的假设错了吗?这些凭据来自哪里,我如何才能知道它们允许我做什么?

amazon-web-services node.js amazon-iam aws-lambda aws-sam

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