Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use segredos para fornecer configurações sensíveis, como tokens de acesso pessoais e chaves API, às suas funções. Nunca codifiquem diretamente os valores secretos no código-fonte nem os exponham ao frontend. Leia-os em tempo de execução chamando ctx.getSecret().
Pré-requisitos
- Uma aplicação Fabric com funções inicializadas. Para instruções de configuração, consulte Usar Funções em Aplicações Fabric.
- A aplicação foi implementada pelo menos uma vez com
npx rayfin up.rayfin secret seterayfin secret listvisam o item ativo implementado e falham quando não existe um endpoint remoto. - Um valor secreto exigido pela tua função.
Defina um segredo
A partir da raiz da aplicação, ativa a funcionalidade de funções e define o segredo:
npx rayfin secret set API_KEY
O comando solicita o valor e oculta os caracteres introduzidos. Para atualizar um segredo existente, execute novamente o mesmo comando. O novo valor substitui o valor existente.
Importante
Não incluas um valor secreto no comando nem o guardes no controlo de versões.
Listar segredos
Liste os nomes secretos configurados:
npx rayfin secret list
O comando mostra nomes secretos e carimbos temporais, mas nunca mostra valores secretos.
Aceder a um segredo a partir de uma função
Chame ctx.getSecret('NAME') para obter um segredo para a invocação atual. O método retorna undefined quando o segredo não está configurado, por isso trata explicitamente dos segredos opcionais ou fornece um padrão não secreto apropriado.
A função seguinte obtém um ficheiro de um repositório do GitHub. Os repositórios públicos não requerem um token de acesso pessoal (PAT). Para repositórios privados, a função adiciona o GITHUB_PAT segredo ao pedido:
import {
UserDataFunctions,
type RayfinContext,
} from '@microsoft/fabric-user-data-functions';
const udf = new UserDataFunctions();
udf.func(
'getGitHubFile',
async (
owner: string,
repo: string,
path: string,
ref: string,
ctx: RayfinContext,
): Promise<string> => {
const pat = ctx.getSecret('GITHUB_PAT');
const headers: Record<string, string> = {
Accept: 'application/vnd.github.raw+json',
'User-Agent': 'rayfin-app',
};
if (pat) {
headers.Authorization = `Bearer ${pat}`;
}
const encodedPath = path
.split('/')
.map(encodeURIComponent)
.join('/');
const url =
`https://api.github.com/repos/${encodeURIComponent(owner)}/` +
`${encodeURIComponent(repo)}/contents/${encodedPath}` +
`?ref=${encodeURIComponent(ref || 'main')}`;
const response = await fetch(url, { headers });
if (!response.ok) {
throw new Error(`GitHub ${response.status}: ${await response.text()}`);
}
return response.text();
},
[],
);
O array vazio de ligações indica que a função não declara um destinatário de recurso externo. Um PAT é um segredo, não um token de recurso fornecido pela plataforma.
Configurar segredos por ambiente
Forneça valores secretos no ambiente onde a função é executada:
-
Desenvolvimento local: Adicionar valores secretos à
Valuessecção derayfin/functions/local.settings.json. O host local do Functions lê os valores de ambiente da função a partir deste ficheiro. - Fabric: Configurar segredos para o item implementado no portal Fabric.
Usa o mesmo nome secreto em cada ambiente. Por exemplo, configure GITHUB_PAT localmente e no Fabric, e leia-o com ctx.getSecret('API_KEY') em ambos os ambientes.
Importante
Não comprometas valores secretos em rayfin/functions/local.settings.json ou qualquer outro ficheiro no controlo de versão. Guarda apenas exemplos não secretos ou marcadores de lugar nos ficheiros que enviares.