访问密钥的 API 参考¶
可以使用 Java 或 Python 检索使用 CREATE SECRET 语句创建的密钥中包含的凭据。本主题列出了从密钥中获取信息的方法。这些都可以从 Snowflake 中包含的 APIs 中获得。
用于密钥访问的 Java API¶
对于 Java 代码,请使用 com.snowflake.snowpark_java.types.SnowflakeSecrets
类。
下表列出了访问密钥中数据的方法。
方法 |
描述 |
---|---|
|
获取 |
|
获取 |
|
获取 |
|
从 |
要使用 SnowflakeSecrets
类,请执行以下操作:
如 CREATE FUNCTION 中所述,使用 PACKAGES 子句使 Snowpark 库对处理程序代码可用。
在处理程序代码中,导入
com.snowflake.snowpark_java.types.SnowflakeSecrets
。构造
SnowflakeSecrets
对象,并调用上面列出的方法之一来访问密钥。
以下示例中的代码在使用 CREATE SECRET 创建密钥时检索 TYPE 子句的值集。其中,oauth_token
密钥的类型是 OAUTH2。
CREATE OR REPLACE FUNCTION get_secret_type()
RETURNS STRING
LANGUAGE JAVA
HANDLER = 'SecretTest.getSecretType'
EXTERNAL_ACCESS_INTEGRATIONS = (external_access_integration)
PACKAGES = ('com.snowflake:snowpark:latest')
SECRETS = ('cred' = oauth_token )
AS
$$
import com.snowflake.snowpark_java.types.SnowflakeSecrets;
public class SecretTest {
public static String getSecretType() {
SnowflakeSecrets sfSecrets = SnowflakeSecrets.newInstance();
String secretType = sfSecrets.getSecretType("cred");
return secretType;
}
}
$$;
用于密钥访问的 Python API¶
对于 Python 代码,请使用向在 Snowflake 中执行的 Python UDFs 公开的 _snowflake
模块。下表列出了用于访问密钥数据的 _snowflake
函数。
函数 |
描述 |
---|---|
|
获取 |
|
获取 |
|
获取 |
|
从 |
要在处理程序代码中使用 _snowflake
模块,请像导入其他模块一样导入该模块。
以下示例中的代码在使用 CREATE SECRET 创建密钥时检索 TYPE 子句的值集。其中,oauth_token
密钥的类型是 OAUTH2。
CREATE OR REPLACE FUNCTION get_secret_type()
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = 3.8
HANDLER = 'get_secret'
EXTERNAL_ACCESS_INTEGRATIONS = (external_access_integration)
SECRETS = ('cred' = oauth_token )
AS
$$
import _snowflake
def get_secret():
secret_type = _snowflake.get_secret_type('cred')
return secret_type
$$;
以下示例中的代码将检索密钥持有的用户名和密码。
CREATE OR REPLACE FUNCTION get_secret_username_password()
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = 3.8
HANDLER = 'get_secret_username_password'
EXTERNAL_ACCESS_INTEGRATIONS = (external_access_integration)
SECRETS = ('cred' = credentials_secret )
AS
$$
import _snowflake
def get_secret_username_password():
username_password_object = _snowflake.get_username_password('cred');
username_password_dictionary = {}
username_password_dictionary["Username"] = username_password_object.username
username_password_dictionary["Password"] = username_password_object.password
return username_password_dictionary
$$;