Cloud foundry Cloudfoundry VCAP_服务变量未提供给django的容器
我有一个停靠的Django应用程序,我想通过cloudfoundry cli实用程序将其部署在SAP云平台上。我添加了两个用户提供的服务,它们有自己的一组凭据。例如,我添加了AWSS3作为用户提供的服务,并为其提供了凭据 现在,这些凭据可以作为环境变量使用Cloud foundry Cloudfoundry VCAP_服务变量未提供给django的容器,cloud-foundry,sap-cloud-platform,Cloud Foundry,Sap Cloud Platform,我有一个停靠的Django应用程序,我想通过cloudfoundry cli实用程序将其部署在SAP云平台上。我添加了两个用户提供的服务,它们有自己的一组凭据。例如,我添加了AWSS3作为用户提供的服务,并为其提供了凭据 现在,这些凭据可以作为环境变量使用 我有.env文件,其中定义了变量,例如AWS\u ACCESS\u KEY。通常我会将字符串值传递给变量,然后由我的应用程序使用。但是,考虑到我已经通过用户提供的服务机制对其进行了配置,并且凭据已经存在,我想知道如何访问这些凭据。在Pytho
我有.env文件,其中定义了变量,例如AWS\u ACCESS\u KEY。通常我会将字符串值传递给变量,然后由我的应用程序使用。但是,考虑到我已经通过用户提供的服务机制对其进行了配置,并且凭据已经存在,我想知道如何访问这些凭据。在Python应用程序中提取服务信息有几种方法
.env
文件生成环境变量或配置文件。这可以用一个简单的方法来完成。如果将.profile
脚本置于应用程序的根目录中,则该脚本将在应用程序之前执行,但在运行时容器中执行。这允许您在最后一刻调整应用程序的配置
.profile
脚本只是一个shell脚本,在其中,您可以使用jq
或sed
等工具从VCAP\u服务
环境变量提取信息,并将该信息放在其他地方(可能是其他环境变量或.env
文件)
因为您正在推送Python应用程序,.profile
也可以执行Python脚本。Python构建包将运行并保证路径上有Python运行时供.profile
脚本使用。因此,您可以执行类似这样的操作,以执行Python脚本
.profile脚本:
python $HOME/.profile.py
#!/usr/bin/env python3
print("Hello from python .profile script")
.profile.py脚本(由这个名字组成,你可以叫它任何名字):
python $HOME/.profile.py
#!/usr/bin/env python3
print("Hello from python .profile script")
您甚至可以在脚本中导入包含在此脚本中的requirements.txt
文件中的Python库你看过吗?或者只是在应用程序中加载和解析JSON?或者您正在尝试更新
.env
文件中的此信息?您可以添加在应用程序启动之前运行的.profile
脚本。它可以访问VCAP_服务,因此脚本可以获取绑定的服务并相应地填充.env
。我正在尝试更新.env文件。.profile脚本上有文档吗?这解释得更清楚一些。通常这是一个shell脚本,因此您可以使用jq
或sed
提取一些信息并将其放入.env
文件中。您使用的是python
,因此它也将可用,因此从技术上讲,您也可以将其作为python脚本编写。由你决定。非常感谢丹尼尔。你帮了我大忙。我利用了cfenv图书馆丹尼尔。你真的帮了大忙。另一方面,您是否有机会将CloudFoundry用作SAP云平台的一部分?我没有。我在另一家与CloudFoundry相关产品的公司工作,所以我的重点主要放在这些产品上。但是经常会有重叠,所以我尽力帮助他们。再次感谢。