Environment Variables
You can provide environment variables to Azle canisters by specifying their names in your dfx.json
file and then using the process.env
object in Azle. Be aware that the environment variables that you specify in your dfx.json
file will be included in plain text in your canister's Wasm binary.
dfx.json
Modify your dfx.json
file with the env
property to specify which environment variables you would like included in your Azle canister's binary. In this case, CANISTER1_PRINCIPAL
and CANISTER2_PRINCIPAL
will be included:
{
"canisters": {
"canister1": {
"type": "azle",
"main": "src/canister1/index.ts",
"declarations": {
"output": "test/dfx_generated/canister1",
"node_compatibility": true
},
"custom": {
"experimental": true,
"candid_gen": "http",
"env": ["CANISTER1_PRINCIPAL", "CANISTER2_PRINCIPAL"]
}
}
}
}
process.env
You can access the specified environment variables in Azle like so:
import { Canister, query, text } from 'azle/experimental';
export default Canister({
canister1PrincipalEnvVar: query([], text, () => {
return (
process.env.CANISTER1_PRINCIPAL ??
'process.env.CANISTER1_PRINCIPAL is undefined'
);
}),
canister2PrincipalEnvVar: query([], text, () => {
return (
process.env.CANISTER2_PRINCIPAL ??
'process.env.CANISTER2_PRINCIPAL is undefined'
);
})
});