Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use segredos para fornecer configurações sensíveis, como tokens de acesso pessoais e chaves de API, para suas funções. Nunca code diretamente valores secretos no código-fonte nem os exponha ao frontend. Leia-as em tempo de execução chamando ctx.getSecret().
Pré-requisitos
- Um aplicativo Fabric com funções inicializadas. Para instruções de configuração, veja Usar Funções em Apps Fabric.
- O aplicativo foi implantado pelo menos uma vez com
npx rayfin up.rayfin secret seterayfin secret listmiram no item ativo implantado e falham quando não existe um endpoint remoto. - Um valor secreto exigido pela sua função.
Definir um segredo
A partir da raiz do app, ative o recurso de funções e defina o segredo:
npx rayfin secret set API_KEY
O comando solicita o valor e oculta o valor digitado. Para atualizar um segredo existente, execute o mesmo comando novamente. O novo valor substitui o valor existente.
Important
Não inclua um valor secreto no comando nem o comprometa no controle de versão.
Listar segredos
Liste os nomes secretos configurados:
npx rayfin secret list
O comando exibe nomes secretos e carimbos de data, mas nunca exibe valores secretos.
Acesse um segredo de uma função
Ligue ctx.getSecret('NAME') para recuperar um segredo da invocação atual. O método retorna undefined quando o segredo não está configurado, então lide explicitamente com segredos opcionais ou forneça um padrão não secreto apropriado.
A função a seguir recebe um arquivo de um repositório do GitHub. Repositórios públicos não exigem 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 de conexões vazias indica que a função não declara uma audiência externa de recursos. 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 roda:
-
Desenvolvimento local: Adicionar valores secretos à
Valuesseção derayfin/functions/local.settings.json. O host local do Functions lê os valores de ambiente das funções deste arquivo. - Fabric: Configure os segredos do item implantado no portal do Fabric.
Use o mesmo nome secreto em cada ambiente. Por exemplo, configure GITHUB_PAT localmente e no Fabric, depois leia-o com ctx.getSecret('API_KEY') em ambos os ambientes.
Important
Não comprometa valores secretos em rayfin/functions/local.settings.json ou qualquer outro arquivo no controle de versão. Armazene apenas exemplos não secretos ou marcadores de lugar nos arquivos que você enviar.