这个问题已经存在,但我认为它会对SO产生更大的影响.
我创建了一个AWS Lambda @ Edge函数,以便在Cloudfront URL到达Origin之前重写它.
AWS Lambda @ Edge函数在发布时会自动复制到所有区域,因此我对每个区域都看到这一点并不感到惊讶:
这里开始出现问题:
我删除了Lambda @ Edge,因为它是一个测试,我想开始一个全新的,但复制品不会同时被删除.
当时没什么大不了的,我以为我可以创建一个新的Lambda @ Edge功能.
但你不能,因为Cloudfront触发器一次只能使用一个函数(因为副本使用它,你不能创建一个新函数).
而且,触发器也不能删除.
所以现在我无法在任何地方使用Lambda @ Edge复制品,我无法删除,也无法创建类似的复制品.
TL; DR
我很感激能得到这个
弗朗索瓦的 帮助
编辑:
我绝对认为这是一个错误,因为在我的副本页面中,主ARN的链接以404响应.
lambda amazon-web-services amazon-cloudfront aws-lambda aws-lambda-edge
我在 Gemfile 中使用环境变量时遇到问题。
我正在尝试使用 API 密钥从私有 Github 存储库加载 gem:
auth = ENV['SECRET_GIT']
gem 'foobar', git: "https://#{auth}:x-oauth-basic@github.com/Foo/Bar.git"
Run Code Online (Sandbox Code Playgroud)
但如果我是puts我的ENV['SECRET_GIT']变量,它就什么也没有。
我虽然你可以这样做,因为这些(尤其是第一个):
- https://devcenter.heroku.com/articles/bundler-configuration#gem-source-username-and-password
- https://stackoverflow .com/a/7338154/5353193
-使用 Gemfile 中的环境变量部署到 Heroku
捆绑程序版本 1.14.6
ruby 2.4.0p0
谢谢你的帮助
编辑
我正在尝试在我的本地环境中执行此操作,我想在 heroku 上执行此操作没有问题。
我在使用 Doorkeeper::TokensController 时遇到了问题。
我想在请求访问令牌之前执行一些代码(如果它已创建与否,无论如何我都想记录它)使用before_action(默认路由是POST /oauth/token/ Doorkeeper::TokensController#create。
我通过执行以下操作来遵循此处的文档:
配置/路由.rb
use_doorkeeper do
controllers tokens: 'oauth/access_tokens'
end
Run Code Online (Sandbox Code Playgroud)
应用程序/控制器/access_tokens_controller.rb
class Oauth::AccessTokensController < Doorkeeper::TokensController
before_action :log_auth, only: [:create]
def log_auth
puts "I want to log here"
end
end
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时POST /oauth/token,我收到以下错误消息:
ActionController::RoutingError(Oauth::AccessTokensController:Class 的未定义方法“before_action”):
app/controllers/oauth/access_tokens_controller.rb:2:in 'class:AccessTokensController'
app/controllers/oauth/access_tokens_controller.rb:1:in '顶部(必填)'
我究竟做错了什么?有没有办法触发 abefore_action或等效项Doorkeeper::TokensController?