首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Heroku上的Rails 5.2应用程序机密为空

基础概念

Heroku 是一个支持多种编程语言的平台即服务(PaaS),它允许开发者轻松部署和管理应用程序。Rails 是一个用 Ruby 语言编写的开源 Web 应用框架。机密(Secrets)通常指的是敏感信息,如 API 密钥、数据库密码等,这些信息不应硬编码在代码中,而应通过环境变量或其他安全方式管理。

相关优势

  1. 安全性:通过环境变量管理机密信息,可以避免敏感信息泄露。
  2. 灵活性:可以在不修改代码的情况下更改机密信息。
  3. 易于部署:Heroku 提供了简单的方式来设置和管理环境变量。

类型

Heroku 上的机密可以分为以下几类:

  1. 应用级机密:特定于某个应用的机密信息。
  2. 系统级机密:适用于整个 Heroku 帐户的机密信息。

应用场景

在 Rails 应用中,机密通常用于:

  1. 数据库连接:存储数据库密码。
  2. API 密钥:用于访问第三方服务。
  3. 会话加密:确保用户会话的安全性。

问题原因及解决方法

问题原因

Heroku 上的 Rails 5.2 应用程序机密为空可能有以下原因:

  1. 未设置环境变量:在 Heroku 上未正确设置机密环境变量。
  2. 配置错误:Rails 配置文件中未正确引用环境变量。
  3. 部署问题:部署过程中未正确传递机密信息。

解决方法

  1. 设置环境变量: 在 Heroku 上设置机密环境变量,可以使用 Heroku CLI 或通过 Heroku 控制台进行设置。
  2. 设置环境变量: 在 Heroku 上设置机密环境变量,可以使用 Heroku CLI 或通过 Heroku 控制台进行设置。
  3. 或者在 Heroku 控制台中,导航到“Settings” -> “Config Vars”,添加相应的键值对。
  4. 配置 Rails 应用: 确保在 config/secrets.yml 文件中正确引用环境变量。
  5. 配置 Rails 应用: 确保在 config/secrets.yml 文件中正确引用环境变量。
  6. 重新部署应用: 设置好环境变量后,重新部署应用以确保更改生效。
  7. 重新部署应用: 设置好环境变量后,重新部署应用以确保更改生效。

示例代码

假设你有一个 Rails 应用,需要在 config/secrets.yml 中引用一个机密环境变量 SECRET_KEY_BASE

代码语言:txt
复制
# config/secrets.yml
production:
  secret_key_base: <%= ENV['SECRET_KEY_BASE'] %>

然后在 Heroku 上设置环境变量:

代码语言:txt
复制
heroku config:set SECRET_KEY_BASE=your_secret_key_base -a your_app_name

参考链接

通过以上步骤,你应该能够解决 Heroku 上 Rails 5.2 应用程序机密为空的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Salesforce的PaaS平台Heroku简介

2011年9月15日,Heroku和Facebook(脸谱)介绍Heroku上运营的脸谱网。...4 Heroku 的资源供给和计价的设计实现有利于 Rails ,甚至可能帮助 Salesforce 改进整个 http://force.com 。...附2 Heroku架构简介 Heroku是一种提供Ruby语言服务的云计算应用平台,为客户进行网络编程提供全新体验。 Heroku构建在Amazion AWS之上的云计算应用平台。...该平台采用了Ruby on Rails 的网络开发框架,客户只需在本地计算机设置一个Ruby Gem(Ruby语言的程序包管理器)就可在Heroku云中部署和运行应用程序。...客户可以直接从浏览器中访问和编辑自己的代码,也可以添加相关语言的插件。Heroku平台在程序开发上可让你得到与本地计算机相同,甚至更好的体验。 Heroku是Rails应用最简单的部署平台。

7.3K20

主流 PaaS 平台架构:谷歌GAE、AEB、Cloud Foundry、Heroku

开发人员利用 GAE 简化了 Web 应用程序的开发和部署。下图是 GAE 上的 Web 架构简图,在这个架构中应用程序可以使用自动伸缩计算的资源,同时可集成分布式缓存、任务队列、数据存储等服务。...GAE有自己的云平台 SDK库,使应用程序能快速地部署和运行到云上。 在这个架构下应用流量可被路由到多个版本以支持 A/B 测试。...Task queues 提供了一种机制,将需要后端计算资源的任务保存到队列中继续等待,释放了前端在这些任务上的阻塞 I/O、连接,从而持续地为新用户请求提供服务。其负载均衡器支持网络的 3~7 层。...Cloud Foundry Cloud Foundry 是由 VMware 贡献的一个开源 PaaS 项目,它是一个基于Ruby on Rails 的由多个相对独立的子系统通过消息机制组成的分布式系统...Heroku 就为这些后端服务的访问定义了一套 add-ons API,从而实现了代码与某个固定服务的解耦。在 Heroku 上最流行的后端服务是 PostgreSQL 数据库。

6.5K20
  • 使用AppSync为在Dell PowerFlex上运行的应用程序提供拷贝数据管理

    通过抽象底层存储和复制技术,并通过深度应用程序集成,AppSync使应用程序所有者能够满足操作恢复和数据重新利用的复制需求。存储管理员只需关心初始设置和策略定义管理,从而形成一个敏捷、无摩擦的环境。...PowerFlex软件定义的存储解决方案为希望实现DevOps应用程序开发操作现代化的组织提供了这种转型的敏捷性,并使组织能够更快地行动并更有效地响应快速变化的业务需求。...01 AppSync架构 AppSync的架构包含三个主要组件: ●AppSync server部署在物理或虚拟的Windows服务器上。...它们提供与主机上托管的操作系统和应用程序的集成。...02 在AppSync上注册PowerFlex系统 AppSync通过使用API调用与PowerFlex Gateway通信来实现与PowerFlex系统的交互: Step 1 AppSync控制台,选择

    1.2K20

    放弃“免费套餐”,Heroku的遗产又少了一个

    Heroku 是一种平台即服务 (PaaS),是 2007 年创建的第一批云平台之一,可让开发者将 git 存储库推送到云端,然后神奇地获取在某处运行的应用程序的 URL。...实际上,这个革命性的产品,从技术上讲已经停滞不前,其产品也名存实亡,一位 Heroku 前员工在 HN 上写道:“你必须追溯到 Heroku Changelog 才能找到任何不是语言版本升级或特性删除的内容...GitHub 集成的机密。...部署一个通用的栈非常困难,那时候,Rails 需要安装一个负载均衡器,为每个服务器提供反向代理,CGI 进程,并且可以随时监控和执行所有必要的操作。...在 Cedar 栈的初期,自定义 Buildpack 就已经为用户提供了支持。目前,Heroku 之外的其他几个云计算提供商也支持这些技术,比如 Digital Ocean 和 GCP。

    5.1K40

    轻松创建本地 SSL 证书:无需进行任何配置 | 开源日报 No.301

    该项目通过 Helm 可以实现以下功能和优势: 寻找和使用作为 Helm Charts 打包的流行软件,以在 Kubernetes 中运行 将自己的应用程序分享为 Helm Charts 创建可复现的...Kubernetes 应用程序构建 智能地管理 Kubernetes 清单文件 管理 Helm 包的发布 类似于 apt/yum/homebrew 的 Kubernetes 安装和管理工具 brunodev85...应用程序的应用,使用 Wine 和 Box86/Box6 可以在 Android 设备上运行 Windows (x86_64) 应用程序 使用 Wine 和 Box86/Box64 技术 提供安装 APK...提供一个允许列表 (allowlist.conf),区分可能被误认为一次性的但实际上不是的域名。 提供贡献指南,允许社区通过提交 PR 添加新域名或请求删除现有域名,并要求在 PR 中提供验证来源。...支持多种编程语言的示例用法,包括 Python、PHP、Go、Ruby on Rails 等,以及作为 PyPI 模块的可用性。

    19610

    JVM并不是那么重量级

    它生成了一堆的PDF文件,然后将它们上传到iSign (现在已经不存在了)用于存储和共享。iSign本身就是一个经典的Rails应用,它托管在3个AMI上。...快进到2016年 我在2016年11月尝试从头开始构建Rails应用。这是我几个月来第一次在我的机器上尝试Ruby编程。...我将在Jozi.rb上展示websockets。 我的出发点是利用Rails回购的反应来获得与Rails的反应的感觉。我已经使用了几个月的重新框架,我很有信心我可以用原始的反应来完成它。...与大多数Rails应用程序一样,示例应用程序依赖于依赖图中的libv8,而它本身的大小就超过1GB。 整个运动花了几个小时。...与JVM的日常工作 我在我的的2012 MacBook Pro上运行了至少5个JVM进程,内存为8GB。我从来没有尝试过同时启动5个Rails应用程序。 为什么同时开启5个?

    1.7K50

    GitHub 前 CTO:全面微服务是最大的架构错误!网友:这不是刚改完 GitHub 吗

    服务支持应用程序 / 单体,是核心基础设施,被大量需要,为核心合规功能,可能不是应用程序团队编写的(基础设施团队维护);微服务则有几百行代码,大部分是一次性的,可能或应该是库、SDK 等。...对于为什么不太看好微服务,Warner 给出的理由如下: 一般来说,整个工程团队在一个大型应用程序中工作(想像 Rails 应用程序中的整个站点),比推理微服务将以何种方式失败要容易得多。...Warner 还指出,当涉及几十个微服务或更大规模时,企业遇到通常并非技术问题,而是组织上的挑战。...显然,微服务架构成为当时 GitHub 减轻扩展限制的选择之一。微服务潮流曾被 Heroku 大力推动,或许 Heroku 任职的经历也让 Warner 支持 GitHub 进行微服务改造。...GitHub 在单体外部将身份验证重写为一个镜像服务。GitHub 的 Rails 应用程序(单体)使用 Twirp(这是一个 gRPC 风格的服务到服务通信框架)和它通信,依赖方向是由内到外。

    1K20

    如何在Ubuntu 14.04上使用Unicorn和Nginx部署Rails应用程序

    本教程将帮助您部署Ruby 在 Rails应用程序中的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Unicorn和Nginx。...教程准备 本教程假定您将在部署应用程序的用户上安装了安装了以下软件的Ubuntu 14.04服务器(没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器...将生产密码和机密保存在应用程序代码库之外被认为是最佳实践,因为如果您使用的是分布式版本控制系统(如Git)时,它们会很容易被暴露出来。接下来我们将讨论如何使用环境变量设置数据库身份验证。...管理环境变量的一种简单方法是使用rbenv-vars插件,我们可以使用它来在运行时将密码和机密加载到我们的应用程序中。...创建生产数据库 既然您的应用程序已配置为可以与PostgreSQL数据库通信,那么让我们创建生产数据库: RAILS_ENV=production rake db:create 生成控制器 如果您跟随示例

    4.3K00

    如何在Ubuntu 14.04上使用Puma和Nginx部署Rails应用程序

    本教程将帮助您部署Ruby on Rails应用程序的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Puma和Nginx。...由于Puma不是为用户直接访问而设计的,因此我们将使用Nginx作为反向代理,以缓冲用户与Rails应用程序之间的请求和响应。...准备 本教程假定您将在部署应用程序的用户上安装了安装了以下软件的Ubuntu 14.04服务器: 使用rbenv安装Ruby on Rails PostgreSQL与Rails 我们假设您的用户名为deploy...管理环境变量的一种简单方法是使用rbenv-vars插件,我们可以使用它来在运行时将密码和机密加载到我们的应用程序中。...现在,您的应用程序配置为在启动时通过Upstart启动。这意味着即使在重新启动服务器后,您的应用程序也会启动。

    5.4K10

    构建工作负载,而非基础设施:重新定义K8s平台

    正如 Kelsey Hightower 在 2017 年所说,Kubernetes 是一个用于构建平台的平台。Kubernetes 是为运维人员设计的,而不是为开发人员设计的。...它是一套复杂的原语,与他们的主要目标不一致:构建应用程序。 平台的定义在于你是否能够在其上构建。如果你是一名 平台工程师,Kubernetes 确实是一个平台。你可以在它之上构建你需要的任何东西。...寻找 Rails 时刻 在 2019 年,Bryan Liles 在 KubeCon 上发表了主题演讲“寻找 Kubernetes 的‘Rails’ 时刻”。他大胆地指出 YAML 确实很糟糕。...换句话说,YAML 对应用程序开发人员来说是错误的抽象。 Ruby on Rails 是一个在 LAMP (Linux、Apache、MySQL 和 PHP) 成为主导堆栈的时代构建的平台。...他们准确地把握了简化应用程序部署和实现“你构建它,你运行它”理念的愿景。PCF 拥有像 Rails 一样的简单入门;不是 rails blog new,而是 cf push。

    8910

    Docker与CI持续集成CD持续部署

    ,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。...OpenShift是红帽的云开发平台即服务(PaaS)。自由和开放源码的云计算平台使开发人员能够创建、测试和运行他们的应用程序,并且可以把它们部署到云中。...OpenShift 基于一个开源生态系统为移动应用,数据库服务等,提供支持。...同时,它本身是一个基于Ruby on Rails的由多个相对独立的子系统通过消息机制组成的分布式系统,使平台在各层级都可水平扩展,既能在大型数据中心里运行,也能运行在一台桌面电脑中,二者使用相同的代码库...Heroku作为最开始的云平台之一,从2007年6月起开发,当时它仅支持Ruby,但后来增加了对Java、Node.js、Scala、Clojure、Python以及(未记录在正式文件上)PHP和Perl

    1.9K31

    使用tko-subs通过已失效的DNS记录检测和接管子域名

    检测指向CMS提供商的CNAME是否能够被接管,检测指向不存在域名的空CNAME,检测一个或多个指向域名服务器的错误NS记录。 通过使用“-takeover”参数来接管目标子域名。...工具要求&安装 首先,我们需要在本地设备上安装并配置好Go环境。...: GitHub的个人访问令牌 (创建地址:https://github.com/settings/tokens) Heroku的用户名和API密钥 Heroku应用程序名称【点击阅读原文】 下面给出的是该工具所需构建的...> -herokuapikey=heroku-api-key> -herokuappname=heroku-app-name> 如果你想要检测一个单独的域名,则可以运行下列命令: tko-subs...data:默认设置为providers-data.csv output:默认设置为output.csv takeover:默认设置为空 domain:默认设置为空,默认检测domains.txt文件中的所有域名

    1.3K20

    GitLab 12.1 发布 合并Trains的并行执行策略

    合并机密问题的请求 :公共项目中的机密问题就可以通过使用 Create confidential merge request  按钮在简化工作流中得到解决,该按钮可以在项目的私有分支中创建合并请求 Automatic...(如果不存在的话),并使用  objects/info/alternates  来减少叉的存储需求 SSH 上的 Git 项目别名:管理员可以使用新的 Project Alias API 将短项目别名映射到...改进的 ASciiDoc 格式 添加和支持了特性标志,以重新启用 Rugged 的实现,从而提高使用 NFS 的 GitLab 实例的性能 GitLab 现在为每个 Rails 请求会话共享相同的 Gitcat...实例级群集 Web 终端访问 组级群集 Web 终端访问 从 Kubernetes GitLab 托管应用程序卸载 JupyterHub 从 Kubernetes GitLab 管理的应用程序卸载 Ingress...根据观察应用程序状态所需的重要指标创建自定义仪表板 Knative 应用程序图表已更新为 v0.6 用 Prometheus 警报属性启用了对 GitLab 事件问题的注释 Geo 现在计算辅助节点上的附件

    1.3K20

    CICD:实现持续集成与持续交付的完整指南

    测试通过后,构建的产物可以被部署到测试环境。 3.2 持续交付 CI流程成功后,构建的产物可以被部署到生产环境。 部署后,监控系统监测应用程序性能和稳定性。 4....api_key: $HEROKU_API_KEY app: your-heroku-app-name 4.3 GitLab CI/CD 集成在GitLab中的CI/CD功能,支持从源代码管理到部署的全流程...CI/CD的实际应用 5.1 Web应用开发 自动化构建、测试和部署Web应用,确保高质量的交付。 5.2 微服务架构 每个微服务可以独立进行CI/CD,以实现快速部署和扩展。...6.2 自动化测试 增加自动化测试的覆盖范围,包括单元测试、集成测试和端到端测试。 6.3 持续安全 集成安全检查,确保应用程序的安全性和合规性。 7....在不断演进的软件开发生态系统中,CI/CD将继续发展,为开发者提供更多的便利和支持。

    6.7K20

    关于“Python”的核心知识点整理大全62

    dj-database-url包帮助 Django与Heroku使用的数据库进行通信,dj-static和static3包帮助Django正确地管理静态文件, 而gunicorn是一个服务器软件,能够在在线环境中支持应用程序提供的服务...有鉴于此,我们可以信心满满,深信项目部署到Heroku后,行为将与它在 本地系统上的完全相同。当你在自己的系统上开发并维护各种项目时,这将是一个巨大的优点。...,并使用它来启动应用程序。...我们还需在这个文件夹中创建一个占位文件,因为项目被推 送到Heroku时,它将不会包含原来为空的文件夹。...这里的输出表明启动了 gunicorn,其进程id为12875(见1)。处的输出表明,gunicorn在端口5000上侦听请求。

    16610

    对Deis,Heroku,Flynn的一些观察

    一句话,现在的应用程序从源代码到运行阶段太复杂,没有标准的,通用的方式。...整个过程及产出如下: 开发阶段:源代码构建阶段:发布包/可执行程序部署阶段:可运行的镜像(发布包+配置)运行阶段:进程、集群、日志、监控信息、网络 不论是Deis,Heroku,Flynn或者其他PaaS...部署到运行: 自动选择运行机器,为每个进程副本部署启动单独的容器,解决请求路由和负载均衡,并提供进程的管理——用户可以做扩缩容、查看日志、监控状态等、回滚历史的发布 为什么是这些功能?.../Procfile web: bundle exec rails server -p $PORT 后面可以通过命令行来动态扩容程序 deis ps:scale web=4 纵向配置:环境变量 运行的发布包在不同的环境下有不一样的配置...客户端的命令行工具上设置环境变量后,就直接发送给所有容器,重设这些环境变量,然后重启。

    1.1K60

    Ansible和Docker的作用和用法

    当然,你也会收获一些实践知识,那就是如何通过部署 Ansible 和 Docker 来为 Rails 应用搭建一个完整的服务器环境。 也许有人会问:你怎么不去用 Heroku?...Heroku 的基础模块是 Linux Container,而 Docker 表现出来的多功能性也是基于这种技术。事实上,Docker 的其中一个座右铭是:容器化是新虚拟化技术。...Ansible 通过 SSH 为远端主机发送命令。我保存在本地 ssh 代理上面的 SSH 密钥会通过 Ansible 提供的 SSH 会话分享到远端主机。...最后,Dockerfile 为应用指定了一个端口号,将容器内部端口号为3000的端口映射到主机(运行着 Docker 的机器)的一个随机分配的端口上。...我在2014年1月伦敦 Docker 会议上讲过这个主题,已经分享到 Speakerdeck了。

    2.2K20

    SaaS 并不是什么风口,但是有这五个大方向的机会

    用户支付再发生费用 (通常以月为单位),通过 web 浏览器使用应用程序。 2007 年,Ryan Carson 开始筹划 Future of Web Apps 大会。...如果你曾经使用过 GitHub 上的「部署到 Heroku」(Deploy to Heroku),你就知道这一类的部署操作已经变得有多么容易了。 这里也不要小觑开源软件的影响。...举个例子,Apostello 就是为教堂设计的开源软件,其首页上就有针对 Heroku 和 Digital Ocean 的一键安装。...五、在更大的平台上打造微型 SaaS 之前我说创业者单干做 SaaS 项目基本上是天方夜谭。总有一天你要招聘员工,为的是更快地打造产品,去竞争,为客户提供支持。...• Expedited SSL,他们借用的平台是 Heroku 应用商店,向开发者提供更快添加 SSL 链接至 web 应用程序的方法。

    1.3K70
    领券