API-Referenz für Zugriff auf Geheimnisse¶
Sie können Java oder Python verwenden, um Anmeldeinformationen abzurufen, die in einem mit der Anweisung CREATE SECRET erstellten Geheimnis enthalten sind. Unter diesem Thema werden die Methoden zum Abrufen von Informationen aus einem Geheimnis aufgeführt. Diese sind verfügbar, wenn APIs in Snowflake enthalten ist.
Java-API für Zugriff auf Geheimnisse¶
Für Code in Java verwenden Sie die Klasse com.snowflake.snowpark_java.types.SnowflakeSecrets
.
In der folgenden Tabelle sind Methoden für den Zugriff auf Daten in einem Geheimnis aufgeführt.
Methode |
Beschreibung |
---|---|
|
Ruft die generische Token-Zeichenfolge ab, die sich im Besitz des durch |
|
Ruft das OAuth2-Zugriffstoken ab, das sich im Besitz des durch |
|
Ruft den Typ des durch |
|
Ruft den Benutzernamen und das Kennwort von dem durch |
So verwenden Sie die Klasse SnowflakeSecrets
:
Machen Sie die Snowpark-Bibliothek für Ihren Handler-Code verfügbar, indem Sie die PACKAGES-Klausel verwenden, wie in CREATE FUNCTION beschrieben.
Importieren Sie in Ihrem Handler-Code
com.snowflake.snowpark_java.types.SnowflakeSecrets
.Konstruieren Sie ein
SnowflakeSecrets
-Objekt und rufen Sie eine der oben aufgeführten Methoden auf, um auf das Geheimnis zuzugreifen.
Der Code im folgenden Beispiel ruft den Wert ab, der für die TYPE-Klausel festgelegt wurde, als das Geheimnis mit CREATE SECRET erstellt wurde. Hier ist das Geheimnis oauth_token
vom Typ 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 für Zugriff auf Geheimnisse¶
Für Code in Python verwenden Sie das Modul _snowflake
, das Python-UDFs ausgesetzt ist und in Snowflake ausgeführt wird. Die folgende Tabelle enthält _snowflake
-Funktionen für den Zugriff auf Daten in einem Geheimnis.
Funktion |
Beschreibung |
---|---|
|
Ruft die generische Token-Zeichenfolge ab, die sich im Besitz des durch |
|
Ruft das OAuth2-Zugriffstoken ab, das sich im Besitz des durch |
|
Ruft den Typ des durch |
|
Ruft den Benutzernamen und das Kennwort von dem durch |
Um das Modul _snowflake
in Ihrem Handler-Code zu verwenden, importieren Sie es wie ein anderes Modul.
Der Code im folgenden Beispiel ruft den Wert ab, der für die TYPE-Klausel festgelegt wurde, als das Geheimnis mit CREATE SECRET erstellt wurde. Hier ist das Geheimnis oauth_token
vom Typ 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
$$;
Der Code im folgenden Beispiel ruft den Benutzernamen und das Kennwort ab, die im Geheimnis enthalten sind.
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
$$;