หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ใช้ความลับเพื่อกําหนดค่าที่ละเอียดอ่อน เช่น โทเค็นการเข้าถึงส่วนบุคคลและคีย์ API สําหรับฟังก์ชันของคุณ อย่าเขียนค่าลับในซอร์สโค้ดหรือเปิดเผยให้ส่วนหน้าใช้งาน อ่านไฟล์เหล่านั้นขณะรันไทม์โดยโทรหาctx.getSecret()
ข้อกําหนดเบื้องต้น
- แอป Fabric ที่ฟังก์ชันถูกเริ่มต้นแล้ว สําหรับคําแนะนําการตั้งค่า ดูที่ การใช้ฟังก์ชันในแอป Fabric
- แอปนี้เคยถูกติดตั้งอย่างน้อยหนึ่งครั้งกับ
npx rayfin up.rayfin secret setและrayfin secret listกําหนดเป้าหมายไปยังรายการที่ติดตั้งอยู่และล้มเหลวเมื่อไม่มีจุดปลายทางระยะไกล - ค่าความลับที่จําเป็นสําหรับฟังก์ชันของคุณ
ตั้งค่าความลับ
จากรูทของแอป เปิดใช้งานฟีเจอร์ฟังก์ชันและตั้งค่าความลับ:
npx rayfin secret set API_KEY
คําสั่งจะบอกค่าและปกปิดข้อมูลที่คุณป้อน หากต้องการอัปเดตความลับที่มีอยู่ ให้รันคําสั่งเดิมอีกครั้ง ค่าใหม่จะมาแทนที่ค่าที่มีอยู่
Important
อย่าใส่ค่าความลับในคําสั่งหรือคอมมิตมันไปยังซอร์สโค้ดคอนโทรล
รายการความลับ
แสดงชื่อลับที่กําหนดค่าไว้:
npx rayfin secret list
คําสั่งจะแสดงชื่อลับและเวลาประทับ แต่จะไม่แสดงค่าลับ
เข้าถึงความลับจากฟังก์ชัน
โทร ctx.getSecret('NAME') เพื่อดึงความลับสําหรับการเรียกใช้งานปัจจุบัน เมธอดจะคืนค่า undefined เมื่อความลับไม่ได้ถูกกําหนดค่า ดังนั้นควรจัดการความลับเสริมอย่างชัดเจนหรือกําหนดค่าเริ่มต้นที่ไม่ใช่ความลับที่เหมาะสม
ฟังก์ชันต่อไปนี้ดึงไฟล์จากคลัง GitHub ที่เก็บข้อมูลสาธารณะไม่จําเป็นต้องใช้โทเค็นการเข้าถึงส่วนบุคคล (PAT) สําหรับที่เก็บข้อมูลส่วนตัว ฟังก์ชันจะ GITHUB_PAT เพิ่มความลับให้กับคําขอ:
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();
},
[],
);
อาร์เรย์การเชื่อมต่อว่างเปล่าบ่งชี้ว่าฟังก์ชันไม่ได้ประกาศกลุ่มเป้าหมายทรัพยากรภายนอก PAT เป็นความลับ ไม่ใช่โทเค็นทรัพยากรที่แพลตฟอร์มให้มา
กําหนดค่าความลับตามสภาพแวดล้อม
ระบุค่าลับในสภาพแวดล้อมที่ฟังก์ชันทํางาน:
-
การพัฒนาท้องถิ่น: เพิ่มค่าลับในส่วน
Valuesของrayfin/functions/local.settings.json. โฮสต์ฟังก์ชันท้องถิ่นจะอ่านค่าสภาพแวดล้อมฟังก์ชันจากไฟล์นี้ - Fabric: กําหนดค่าความลับสําหรับไอเท็มที่ปล่อยในพอร์ทัล Fabric
ใช้ชื่อรหัสลับเดียวกันในแต่ละสภาพแวดล้อม ตัวอย่างเช่น กําหนดค่าGITHUB_PATทั้งในเครื่องและใน Fabric แล้วอ่านข้อมูลในctx.getSecret('API_KEY')ทั้งสองสภาพแวดล้อม
Important
อย่า commit ค่าความลับใน rayfin/functions/local.settings.json ไฟล์อื่นใดไปยัง source control เก็บเฉพาะตัวอย่างที่ไม่ใช่ความลับหรือตัวอย่างชั่วคราวในไฟล์ที่คุณคอมมิต