如何在笔记本段落中的Zeppelin中访问存储的凭证?

时间:2019-07-09 00:27:11

标签: apache-zeppelin

我想在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'

1 个答案:

答案 0 :(得分:0)

在版本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')