凭证

出于安全考虑,我们强烈建议您不要将任何凭证或其他机密信息提交到版本控制系统中。Kedro默认设置为:如果conf文件夹(及其子文件夹)中的文件名包含credentials,则该文件会被git自动忽略。

凭证配置可以直接在代码中单独使用,或者输入到DataCatalog中。如果您更愿意将凭证存储在环境变量中而不是文件中,可以按照高级配置章节所述,使用OmegaConfigLoader从环境变量加载凭证

如何在代码中加载凭证

凭证配置可以像其他项目配置一样,通过配置加载器类OmegaConfigLoader来加载。

from pathlib import Path

from kedro.config import OmegaConfigLoader
from kedro.framework.project import settings

# Substitute <project_root> with the [root folder for your project](https://docs.kedro.org/en/stable/tutorial/spaceflights_tutorial.html#terminology)
conf_path = str(Path(<project_root>) / settings.CONF_SOURCE)
conf_loader = OmegaConfigLoader(conf_source=conf_path)
credentials = conf_loader["credentials"]

这会从conf/baseconf/local加载文件名以credentials开头的配置文件,或者位于名称以credentials开头的文件夹中的文件。

在上面的示例中,如果没有任何配置文件匹配给定的键,调用conf_loader[key]会抛出MissingConfigException错误。但如果这对您的应用程序来说是一个有效的工作流程,您可以按以下方式处理:

from pathlib import Path

from kedro.config import OmegaConfigLoader, MissingConfigException
from kedro.framework.project import settings

conf_path = str(Path(<project_root>) / settings.CONF_SOURCE)
conf_loader = OmegaConfigLoader(conf_source=conf_path)

try:
    credentials = conf_loader["credentials"]
except MissingConfigException:
    credentials = {}

注意

kedro.framework.context.KedroContext 类采用上述方法来加载项目凭证。

如何使用AWS凭证

在使用数据集处理AWS凭证时,您无需将AWS凭证存储在项目配置文件中。相反,您可以通过环境变量AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY以及可选的AWS_SESSION_TOKEN来指定这些凭证。更多详情请参阅官方AWS文档