【问题标题】:How can I access stored credentials in Zeppelin within a notebook paragraph?如何在笔记本段落中访问 Zeppelin 中存储的凭据?
【发布时间】:2020-03-31 17:32:55
【问题描述】:

我想在 Zeppelin 笔记本中使用一些凭据,但是如果可能的话,我不想将凭据存储在笔记本中。我看过使用 Zeppelin 数据源凭据(关于 here 的文档);这很好地解释了如何创建/存储凭据,但我不明白如何访问它们。

对于一个具体的用例,我想存储一个秘密供我访问 REST API。如果我对凭据进行硬编码,我有一些代码可以工作,但我想避免这种情况:

%pyspark
import requests

def get_sync_data(secret, sync_data_url):
    headers = {"Authorization": f"Bearer {secret}", "Content-Type": "application/json"}
    payload = "..."
    response = requests.get(url, headers=headers, json=payload)
    response.raise_for_status()
    return response.json()

get_sync_data('my_secret', 'http://sync.url/api')

有什么方法可以在这里用我从 Zeppelin 存储的数据源凭据中获取的值替换 'my-secret'

【问题讨论】:

    标签: apache-zeppelin


    【解决方案1】:

    在 0.8.2 版本中,您可以使用凭据注入:https://zeppelin.apache.org/docs/latest/usage/interpreter/overview.html#credential-injection

    所以你的例子可能是这样的:

     %pyspark
    import requests
    
    def get_sync_data(secret, sync_data_url):
        headers = {"Authorization": f"Bearer {secret}", "Content-Type": "application/json"}
        payload = "..."
        response = requests.get(url, headers=headers, json=payload)
        response.raise_for_status()
        return response.json()
    
    get_sync_data('{password.my_secret}', 'http://sync.url/api')
    

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 2019-03-22
      • 2018-11-01
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多