Triển khai một công nhân Deploy a Worker ការបាត់បង់បុគ្គល
Hướng dẫn chi tiết đồng bộ từ docs Cloudflare — mỗi section có backlink tới đúng vị trí trên trang gốc. Detailed guide synced from Cloudflare docs — each section links to the matching anchor on the official page. មគ្គុទ្ទេសក៍លម្អិតធ្វើសមកាលពី docs Cloudflare — ផ្នែកនីមួយៗមានតំណទៅទីតាំងត្រូវគ្នានៅទំព័រផ្លូវការ។
← Danh mục ← Catalog ← បញ្ជីGiải thích nhanh Quick context បរិបទរហ័ស
Thuộc Developer Platform — thực hành triển khai code, API và dữ liệu trên edge/serverless. Tutorial «Triển khai Worker» giúp bạn làm quen luồng triển khai thật — phù hợp đọc trước khi mở tài liệu gốc tiếng Anh. Docs gốc chia khoảng 5 bước chính; bản tóm tắt dưới đây giúp bạn nắm khung trước khi làm theo từng lệnh.
In this tutorial, you will follow step-by-step instructions to deploy a Hello World application using Cloudflare Workers and Pulumi infrastructure as code (IaC).
ក្នុងកម្មវិធីបច្ចេកទេសនេះអ្នកនឹងធ្វើដូចម្តេចដើម្បីដំឡើងកម្មវិធី Hello World ដែលប្រើ Cloudflare Workers និងប្រព័ន្ធប្រតិបត្តិការ Pulumi ដូចជាកូដ (IaC) ។
Lưu ý Note ចំណាំ
Lưu ý trước khi làm Notes before you start ចំណាំមុនពេលចាប់ផ្តើម
- Đây là bản tóm tắt trên Orange Cloud Learning Hub — không thay thế tài liệu chính thức.
- Luôn mở liên kết «Tài liệu gốc» bên dưới khi cần lệnh CLI, snippet code và ảnh minh họa đầy đủ.
- Kiểm tra token/API và state backend trước khi chạy trên môi trường production.
- Docs Cloudflare cập nhật thường xuyên — đối chiếu ngày «Rà soát lần cuối» trên trang gốc khi triển khai production.
- This is a summary on Orange Cloud Learning Hub — it does not replace the official documentation.
- Open the Official docs link below for CLI commands, code snippets, and full screenshots.
- Verify API tokens and the state backend before running against production.
- Cloudflare docs change frequently — verify the Last reviewed date on the official page before production use.
- នេះគឺជាការបញ្ជាក់អំពី Orange Cloud Learning Hub — វាគឺជាការផ្លាស់ប្តូរនៃឯកសារផ្លូវការ។
- ចុចតំណភ្ជាប់ Docs Official នៅខាងក្រោមសម្រាប់ការបញ្ជា CLI, សៀវភៅកូដនិងរូបថតពេញលេញ។
- សូមពិនិត្យមើល API tokens និងការបង្វិលប្រព័ន្ធប្រតិបត្តិការមុនពេលធ្វើការប្រឆាំងនឹងការផលិត។
- Cloudflare បានផ្លាស់ប្តូរជាធម្មតានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅពេលវេលានៅ។
Tài liệu gốc — rà soát lần cuối: over 1 year ago Official docs — last reviewed: over 1 year ago ឯកសារផ្លូវការ — ពិនិត្យចុងក្រោយ: over 1 year ago
Overview Overview Overview
In this tutorial, you will follow step-by-step instructions to deploy a Hello World application bằng Cloudflare Workers and Pulumi infrastructure as code (IaC) to familiarize yourself with the resource management lifecycle. In particular, you will create a Worker, a Route, and a…
Read the "Overview" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «Overview» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
Trước khi bạn bắt đầu Before you begin មុនពេលដែលអ្នកចាប់ផ្តើម
Phần «Before you begin» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "Before you begin" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «មុនពេលដែលអ្នកចាប់ផ្តើម» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
- Một tài khoản Cloudflare và API Token với quyền chỉnh sửa các tài nguyên trong hướng dẫn này. Nếu bạn cần, hãy đăng ký Cloudflare account ↗ trước khi tiếp tục. Token của bạn phải có những điều sau đây:
- A Cloudflare account and API Token with permission to edit the resources in this tutorial. If you need to, sign up for a Cloudflare account ↗ before continuing. Your token must have the following:
- ទិន្នន័យ Cloudflare និង API ស្លាកជាមួយនឹងការអនុញ្ញាតឱ្យធ្វើតេស្តឧបករណ៍នៅក្នុងបច្ចុប្បន្ននេះ ប្រសិនបើអ្នកត្រូវការ, សូមចុះឈ្មោះសម្រាប់ Cloudflare account ↗ មុនពេលដំណើរការ។ គំនិតរបស់អ្នកគួរតែមានដូចខាងក្រោម:
Account-Workers Scripts-Edit quyền Zone-Workers Route-Edit quyền * Zone-DNS-Edit quyềnAccount-Workers Scripts-Edit permission Zone-Workers Route-Edit permission * Zone-DNS-Edit permissionAccount-Workers Scripts-Edit អនុញ្ញាត Zone-Workers Route-Edit អនុញ្ញាត * Zone-DNS-Edit អនុញ្ញាត- Tài khoản Pulumi Cloud Bạn có thể đăng ký cho một always-free individual tier ↗.
- Pulumi CLI được cài đặt trên máy của bạn.
- Một Pulumi-supported programming language ↗ được cấu hình. (TypeScript, JavaScript, Python, Go, .NET, Java hoặc sử dụng YAML)
- Một miền Cloudflare được quản lý. Hoàn thành Add a site tutorial để đưa tên miền hiện tại của bạn dưới Cloudflare.
- A Pulumi Cloud account. You can sign up for an always-free individual tier ↗.
- The Pulumi CLI is installed on your machine.
- A Pulumi-supported programming language ↗ configured. (TypeScript, JavaScript, Python, Go, .NET, Java, or use YAML)
- A Cloudflare-managed domain. Complete the Add a site tutorial to bring your existing domain under Cloudflare.
- កុំព្យូទ័រ Pulumi Cloud អ្នកអាចចុះឈ្មោះសម្រាប់ always-free individual tier ↗ ។
- Pulumi CLI ត្រូវបានដំឡើងនៅលើម៉ាស៊ីនរបស់អ្នក។
- ការ Pulumi-supported programming language ↗ បានកំណត់។ (TypeScript, JavaScript, Python, Go, .NET, Java ឬប្រើ YAML)
- មួយ Cloudflare-ឧបករណ៍គ្រប់គ្រង។ សូមបញ្ចប់ Add a site tutorial ដើម្បីបង្កើតអាសយដ្ឋានរបស់អ្នកនៅក្រោម Cloudflare ។
Liên kết liên quan (docs Cloudflare) Related links (Cloudflare docs) តំណពាក់ព័ន្ធ (docs Cloudflare)
1.Điều Khởi đầu dự án của bạn 1. Initialize your project 1 ។ ចាប់ផ្តើមគម្រោងរបស់អ្នក
Phần «Khởi tạo your dự án» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "1. Initialize your project" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «1 ។ ចាប់ផ្តើមគម្រោងរបស់អ្នក» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
Pulumi.yaml cần thiết. Bạn sẽ sử dụng Pulumi CLI để tạo và cấu hình một dự án mới.Pulumi.yaml file. You will use the Pulumi CLI to create and configure a new project.Pulumi.yaml ដែលត្រូវការ។ អ្នកនឹងប្រើ Pulumi CLI ដើម្បីបង្កើតនិងកំណត់គម្រោងថ្មី។A ơi Tạo Directory a. Create a directory A ។ បានបង្កើត Directory
Phần «. Create directory» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "a. Create a directory" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «A ។ បានបង្កើត Directory» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
mkdir serverless-cloudflare
cd serverless-cloudflare B . Tải về Pulumi Cloud b. Login to Pulumi Cloud B ។ លក្ខណៈពិសេសសម្រាប់ Pulumi Cloud
Phần «b. Login to Pulumi Cloud» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "b. Login to Pulumi Cloud" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «B ។ លក្ខណៈពិសេសសម្រាប់ Pulumi Cloud» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
pulumi login C . Tạo một chương trình mới c. Create a new program C ។ បង្កើតកម្មវិធីថ្មី
Phần «C. Create mới program» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "c. Create a new program" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «C ។ បង្កើតកម្មវិធីថ្មី» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
pulumi:pulumi command:pulumi:pulumi new javascript --name serverless-cloudflare --yes
# wait a few seconds while the project is initialized pulumi new typescript --name serverless-cloudflare --yes
# wait a few seconds while the project is initialized pulumi new python --name serverless-cloudflare --yes
# wait a few seconds while the project is initialized pulumi new go --name serverless-cloudflare --yes
# wait a few seconds while the project is initialized pulumi new java --name serverless-cloudflare --yes
# wait a few seconds while the project is initialized pulumi new csharp --name serverless-cloudflare --yes
# wait a few seconds while the project is initialized pulumi new yaml --name serverless-cloudflare --yes D . Tạo Stack d. Create a stack លោក D ។ បានបង្កើត Stack
Phần «D. Create stack» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "d. Create a stack" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «លោក D ។ បានបង្កើត Stack» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
dev stack.dev stack.dev ។dev stack của bạn, chạy:dev stack, run:dev stack របស់អ្នក, ធ្វើការដូចខាងក្រោម:pulumi up --yes
# wait a few seconds for the stack to be instantiated. E ơi Save your ứng dụng settings e. Save your application settings អាសយដ្ឋាន រក្សាទុកកំណត់កម្មវិធីរបស់អ្នក
Phần «E. Save your ứng dụng settings» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "e. Save your application settings" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «អាសយដ្ឋាន រក្សាទុកកំណត់កម្មវិធីរបស់អ្នក» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
- Của bạn Cloudflare account ID
- Một hợp lệ Cloudflare API token.
- một domain. Ví dụ như
example.com.
- Your Cloudflare account ID.
- A valid Cloudflare API token.
- A domain. For instance,
example.com.
- ទូរស័ព្ទរបស់អ្នក Cloudflare account ID ។
- កម្រិតខ្ពស់ Cloudflare API token
- នេះជា Domain ។ ដូចជា
example.com។
# Give your new ESC Environment a name
E=hello-world/dev-env
# Initialize the new ESC Environment
pulumi config env init --env $E --yes Creating environment hello-world/dev-env for stack dev... # Replace abc123 with your Cloudflare account ID
pulumi env set $E --plaintext pulumiConfig.accountId abc123
# Replace API_TOKEN with your Cloudflare API token
pulumi env set $E --secret pulumiConfig.cloudflare:apiToken API_TOKEN
# Replace example.com with your domain
pulumi env set $E --plaintext pulumiConfig.domain example.com Liên kết liên quan (docs Cloudflare) Related links (Cloudflare docs) តំណពាក់ព័ន្ធ (docs Cloudflare)
F Cài đặt gói Cloudflare f. Install the Cloudflare package អាសយដ្ឋាន ទាញយកកញ្ចប់ Cloudflare
Phần «F. Install Cloudflare package» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "f. Install the Cloudflare package" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «អាសយដ្ឋាន ទាញយកកញ្ចប់ Cloudflare» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
npm install @pulumi/cloudflare added 1 package ... npm install @pulumi/cloudflare added 1 package ... echo "pulumi_cloudflare>=5.38,<6.0.0" >> requirements.txt
source venv/bin/activate
pip install -r requirements.txt ...Collecting pulumi-cloudflare... go get github.com/pulumi/pulumi-cloudflare/sdk/v3/go/cloudflare go: downloading github.com/pulumi/pulumi-cloudflare ... - Mở tệp
pom.xmlcủa bạn. - Thêm sự phụ thuộc Pulumi Cloudflare bên trong phần
<dependencies>.
- Open your
pom.xmlfile. - Add the Pulumi Cloudflare dependency inside the
<dependencies>section.
- សូមបើកឯកសារ
pom.xmlរបស់អ្នក។ - បន្ថែមប្រព័ន្ធ Pulumi Cloudflare នៅក្នុងផ្នែក
<dependencies>។
<dependency>
<groupId>com.pulumi</groupId>
<artifactId>cloudflare</artifactId>
<version>5.38.0</version>
</dependency> - chạy đua:
- Run:
- ការធ្វើដំណើរ:
mvn clean install ...[INFO] BUILD SUCCESS... dotnet add package Pulumi.Cloudflare ...
info : Adding PackageReference for package 'Pulumi.Cloudflare' into project
... 2.Đối với Xác định Cloudflare tài nguyên trong mã 2. Define Cloudflare resources in code 2 ។ ការកំណត់ Cloudflare ឧបករណ៍នៅក្នុងកូដ
Phần «Define Cloudflare resources in code» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "2. Define Cloudflare resources in code" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «2 ។ ការកំណត់ Cloudflare ឧបករណ៍នៅក្នុងកូដ» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
A ơi Thêm kịch bản Workers a. Add a Workers script A ។ បន្ថែមសៀវភៅ Workers
Phần «. Add Workers script» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "a. Add a Workers script" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «A ។ បន្ថែមសៀវភៅ Workers» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
index.jsindex.jsindex.js"use strict";
const pulumi = require("@pulumi/pulumi");
const cloudflare = require("@pulumi/cloudflare");
const config = new pulumi.Config();
const accountId = config.require("accountId");
const domain = config.require("domain");
const content = `export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};`;
const worker = new cloudflare.WorkersScript("hello-world-worker", {
accountId: accountId,
name: "hello-world-worker",
content: content,
module: true, // ES6 module
}); index.tsindex.tsindex.tsimport * as pulumi from "@pulumi/pulumi";
import * as cloudflare from "@pulumi/cloudflare";
const config = new pulumi.Config();
const accountId = config.require("accountId");
const domain = config.require("domain");
const content = `export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};`;
const worker = new cloudflare.WorkersScript("hello-world-worker", {
accountId: accountId,
name: "hello-world-worker",
content: content,
module: true, // ES6 module
}); _<em>main</em>_.py_<em>main</em>_.py_<em>main</em>_.py"""Pulumi program """
import pulumi
import pulumi_cloudflare as cloudflare
CONFIG = pulumi.Config()
ACCOUNT_ID = CONFIG.get("accountId")
DOMAIN = CONFIG.require("domain")
CONTENT = """
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};
"""
worker = cloudflare.WorkersScript("hello-world-worker",
account_id=ACCOUNT_ID,
name="hello-world-worker",
content=CONTENT,
module=True # ES6 module
) main.gomain.gomain.gopackage main
import (
"github.com/pulumi/pulumi-cloudflare/sdk/v5/go/cloudflare"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
conf := config.New(ctx, "")
accountID := conf.Get("accountId")
domain := conf.Get("domain")
content := `
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};
`
worker, err := cloudflare.NewWorkersScript(ctx, "hello-world-worker", &cloudflare.WorkersScriptArgs{
AccountId: pulumi.String(accountID),
Name: pulumi.String("hello-world-worker"),
Content: pulumi.String(content),
Module: pulumi.Bool(true), // ES6 module
})
if err != nil {
return err
}
return nil
})
} src/main/java/myproject/App.javasrc/main/java/myproject/App.javasrc/main/java/myproject/App.javapackage myproject;
import com.pulumi.Pulumi;
import com.pulumi.cloudflare.WorkersScript;
import com.pulumi.cloudflare.WorkersScriptArgs;
import com.pulumi.core.Output;
public class App {
public static void main(String[] args) {
Pulumi.run(ctx -> {
var content = """
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};
""";
var accountId = ctx.config().require("accountId");
var domain = ctx.config().require("domain");
var worker = new WorkersScript("hello-world-worker", WorkersScriptArgs.builder()
.accountId(accountId)
.name("hello-world-worker")
.content(content)
.module(true)
.build());
return;
});
}
} Program.csProgram.csProgram.csusing Pulumi;
using Cloudflare = Pulumi.Cloudflare;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var accountId = config.Require("accountId");
var domain = config.Require("domain");
var content = @"
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response(""Hello World!"", options);
},
};
";
var worker = new Cloudflare.WorkersScript("hello-world-worker", new()
{
AccountId = accountId,
Name = "hello-world-worker",
Content = content,
Module = true
});
return;
}); Pulumi.yamlPulumi.yamlPulumi.yamlname: serverless-cloudflare
runtime: yaml
resources:
worker:
type: cloudflare:WorkersScript
properties:
accountId: "${accountId}"
name: "hello-world-worker"
content: |
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};
module: true B . Thêm một đường b. Add a Route B ។ បញ្ចូលដំណើរការ
Phần «B. Add Route» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "b. Add a Route" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «B ។ បញ្ចូលដំណើរការ» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
index.jsindex.jsindex.jsconst zone = cloudflare.getZone({
accountId: accountId,
name: domain,
});
const zoneId = zone.then((z) => z.zoneId);
const route = new cloudflare.WorkersRoute("hello-world-route", {
zoneId: zoneId,
pattern: "hello-world." + domain,
scriptName: worker.name,
}); index.tsindex.tsindex.tsconst zone = cloudflare.getZone({
accountId: accountId,
name: domain,
});
const zoneId = zone.then((z) => z.zoneId);
const route = new cloudflare.WorkersRoute("hello-world-route", {
zoneId: zoneId,
pattern: "hello-world." + domain,
scriptName: worker.name,
}); _<em>main</em>_.py_<em>main</em>_.py_<em>main</em>_.pyzone = cloudflare.get_zone(account_id=ACCOUNT_ID, name=DOMAIN)
zone_id = zone.zone_id
route = cloudflare.WorkersRoute("hello-world-route",
zone_id=zone_id,
pattern="hello-world." + DOMAIN,
script_name=worker.name
) main.gomain.gomain.gozone, err := cloudflare.LookupZone(ctx, &cloudflare.LookupZoneArgs{
AccountId: &accountID,
Name: &domain,
}, nil)
if err != nil {
return err
}
route, err := cloudflare.NewWorkersRoute(ctx, "hello-world-route", &cloudflare.WorkersRouteArgs{
ZoneId: pulumi.String(zone.Id),
Pattern: pulumi.String("hello-world." + domain),
ScriptName: worker.Name,
})
if err != nil {
return err
} src/main/java/myproject/App.javasrc/main/java/myproject/App.javasrc/main/java/myproject/App.javafinal var zone = CloudflareFunctions.getZone(GetZoneArgs.builder()
.accountId(accountId)
.name(domain)
.build());
var route = new WorkersRoute("hello-world-route", WorkersRouteArgs.builder()
.zoneId(zone.applyValue(getZoneResult -> getZoneResult.id()))
.pattern("hello-world." + domain)
.scriptName(worker.name())
.build()); Program.csProgram.csProgram.csvar zone = Output.Create(Cloudflare.GetZone.InvokeAsync(new()
{
AccountId = accountId,
Name = domain,
}));
var route = new Cloudflare.WorkersRoute("hello-world-route", new()
{
ZoneId = zone.Apply(z => z.Id),
Pattern = "hello-world." + domain,
ScriptName = worker.Name,
}); Pulumi.yamlPulumi.yamlPulumi.yamlruntime, hãy thêm mã sau:runtime key, add the following code:runtime បន្ថែមលេខកូដដូចខាងក្រោម:# new top-level section
variables:
zone:
fn::invoke:
function: cloudflare:getZone
arguments:
accountId: ${accountId}
name: ${domain} worker, hãy thêm mã sau:worker resource, add the following code:worker បន្ថែមលេខកូដដូចខាងក្រោម:route:
type: cloudflare:WorkersRoute
properties:
zoneId: ${zone.id}
pattern: "hello-world.${domain}"
scriptName: ${worker.name} C . Thêm một DNS Record c. Add a DNS Record C ។ បន្ថែម DNS សៀវភៅ
Phần «C. Add DNS Record» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "c. Add a DNS Record" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «C ។ បន្ថែម DNS សៀវភៅ» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
index.jsindex.jsindex.jsconst record = new cloudflare.Record("hello-world-record", {
name: route.pattern,
type: "A",
content: "192.0.2.1",
zoneId: zoneId,
proxied: true,
});
exports.url = pulumi.interpolate`https://${record.hostname}`; index.tsindex.tsindex.tsconst record = new cloudflare.Record("hello-world-record", {
name: route.pattern,
type: "A",
content: "192.0.2.1",
zoneId: zoneId,
proxied: true,
});
export const url = pulumi.interpolate`https://${record.hostname}`; _<em>main</em>_.py_<em>main</em>_.py_<em>main</em>_.pyrecord = cloudflare.Record("hello-world-record",
name=route.pattern,
type="A",
content="192.0.2.1",
zone_id=zone_id,
proxied=True
)
url = pulumi.Output.concat("https://", record.hostname)
pulumi.export('url', url) main.gomain.gomain.gorecord, err := cloudflare.NewRecord(ctx, "hello-world-record", &cloudflare.RecordArgs{
Name: route.Pattern,
Type: pulumi.String("A"),
Content: pulumi.String("192.0.2.1"),
ZoneId: pulumi.String(zone.Id),
Proxied: pulumi.Bool(true),
})
if err != nil {
return err
}
ctx.Export("url", pulumi.Sprintf("https://%s", record.Hostname)) src/main/java/myproject/App.javasrc/main/java/myproject/App.javasrc/main/java/myproject/App.javavar record = new Record("hello-world-record", RecordArgs.builder()
.name(route.pattern())
.type("A")
.content("192.0.2.1")
.zoneId(zone.applyValue(getZoneResult -> getZoneResult.id()))
.proxied(true)
.build());
ctx.export("url", Output.format("https://%s", record.hostname())); Program.csProgram.csProgram.csusing System.Collections.Generic; trong nhập khẩu của bạn.using System.Collections.Generic; in your imports.using System.Collections.Generic; នៅក្នុងការនាំចូលរបស់អ្នក។var record = new Cloudflare.Record("hello-world-record", new()
{
Name = route.Pattern,
Type = "A",
Content = "192.0.2.1",
ZoneId = zone.Apply(z => z.Id),
Proxied = true
});
return new Dictionary<string, object?>
{
["url"] = Output.Format($"https://{record.Hostname}")
}; outputs cấp cao mới.outputs section.outputs នៃកម្រិតខ្ពស់ថ្មី។record:
type: cloudflare:Record
properties:
name: ${route.pattern}
type: A
content: "192.0.2.1"
zoneId: ${zone.id}
proxied: true
outputs:
url: "https://${record.hostname}" http thay vào đó tùy thuộc vào cài đặt tên miền của bạn.http instead depending on your domain settings.http ដោយផ្អែកលើការកំណត់តំបន់របស់អ្នក។D . (Tùy chọn) Xác minh mã của bạn d. (Optional) Verify your code លោក D ។ (តម្រូវការ) ពិនិត្យឡើងវិញកូដរបស់អ្នក
Phần «d. (Optional) Verify your code» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "d. (Optional) Verify your code" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «លោក D ។ (តម្រូវការ) ពិនិត្យឡើងវិញកូដរបស់អ្នក» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
index.jsindex.jsindex.js"use strict";
const pulumi = require("@pulumi/pulumi");
const cloudflare = require("@pulumi/cloudflare");
const config = new pulumi.Config();
const accountId = config.require("accountId");
const domain = config.require("domain");
const content = `export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};`;
const worker = new cloudflare.WorkersScript("hello-world-worker", {
accountId: accountId,
name: "hello-world-worker",
content: content,
module: true, // ES6 module
});
const zone = cloudflare.getZone({
accountId: accountId,
name: domain,
});
const zoneId = zone.then((z) => z.zoneId);
const route = new cloudflare.WorkersRoute("hello-world-route", {
zoneId: zoneId,
pattern: "hello-world." + domain,
scriptName: worker.name,
});
const record = new cloudflare.Record("hello-world-record", {
name: route.pattern,
type: "A",
content: "192.0.2.1",
zoneId: zoneId,
proxied: true,
});
exports.url = pulumi.interpolate`https://${record.hostname}`; index.tsindex.tsindex.tsimport * as pulumi from "@pulumi/pulumi";
import * as cloudflare from "@pulumi/cloudflare";
const config = new pulumi.Config();
const accountId = config.require("accountId");
const domain = config.require("domain");
const content = `export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};`;
const worker = new cloudflare.WorkersScript("hello-world-worker", {
accountId: accountId,
name: "hello-world-worker",
content: content,
module: true, // ES6 module
});
const zone = cloudflare.getZone({
accountId: accountId,
name: domain,
});
const zoneId = zone.then((z) => z.zoneId);
const route = new cloudflare.WorkersRoute("hello-world-route", {
zoneId: zoneId,
pattern: "hello-world." + domain,
scriptName: worker.name,
});
const record = new cloudflare.Record("hello-world-record", {
name: route.pattern,
type: "A",
content: "192.0.2.1",
zoneId: zoneId,
proxied: true,
});
export const url = pulumi.interpolate`https://${record.hostname}`; _<em>main</em>_.py_<em>main</em>_.py_<em>main</em>_.py"""Pulumi program """
import pulumi
import pulumi_cloudflare as cloudflare
CONFIG = pulumi.Config()
ACCOUNT_ID = CONFIG.get("accountId")
DOMAIN = CONFIG.require("domain")
CONTENT = """
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};
"""
worker = cloudflare.WorkersScript("hello-world-worker",
account_id=ACCOUNT_ID,
name="hello-world-worker",
content=CONTENT,
module=True # ES6 module
)
zone = cloudflare.get_zone(account_id=ACCOUNT_ID, name=DOMAIN)
zone_id = zone.zone_id
route = cloudflare.WorkersRoute("hello-world-route",
zone_id=zone_id,
pattern="hello-world." + DOMAIN,
script_name=worker.name
)
record = cloudflare.Record("hello-world-record",
name=route.pattern,
type="A",
content="192.0.2.1",
zone_id=zone_id,
proxied=True
)
url = pulumi.Output.concat("https://", record.hostname)
pulumi.export('url', url) main.gomain.gomain.gopackage main
import (
"github.com/pulumi/pulumi-cloudflare/sdk/v5/go/cloudflare"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
conf := config.New(ctx, "")
accountID := conf.Get("accountId")
domain := conf.Get("domain")
content := `
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};
`
worker, err := cloudflare.NewWorkersScript(ctx, "hello-world-worker", &cloudflare.WorkersScriptArgs{
AccountId: pulumi.String(accountID),
Name: pulumi.String("hello-world-worker"),
Content: pulumi.String(content),
Module: pulumi.Bool(true), // ES6 module
})
if err != nil {
return err
}
zone, err := cloudflare.LookupZone(ctx, &cloudflare.LookupZoneArgs{
AccountId: &accountID,
Name: &domain,
}, nil)
if err != nil {
return err
}
route, err := cloudflare.NewWorkersRoute(ctx, "hello-world-route", &cloudflare.WorkersRouteArgs{
ZoneId: pulumi.String(zone.Id),
Pattern: pulumi.String("hello-world." + domain),
ScriptName: worker.Name,
})
if err != nil {
return err
}
record, err := cloudflare.NewRecord(ctx, "hello-world-record", &cloudflare.RecordArgs{
Name: route.Pattern,
Type: pulumi.String("A"),
Content: pulumi.String("192.0.2.1"),
ZoneId: pulumi.String(zone.Id),
Proxied: pulumi.Bool(true),
})
if err != nil {
return err
}
ctx.Export("url", pulumi.Sprintf("https://%s", record.Hostname))
return nil
})
} src/main/java/myproject/App.javasrc/main/java/myproject/App.javasrc/main/java/myproject/App.javapackage myproject;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.cloudflare.WorkersScript;
import com.pulumi.cloudflare.WorkersScriptArgs;
import com.pulumi.cloudflare.CloudflareFunctions;
import com.pulumi.cloudflare.inputs.GetZoneArgs;
import com.pulumi.cloudflare.WorkersRoute;
import com.pulumi.cloudflare.WorkersRouteArgs;
import com.pulumi.cloudflare.Record;
import com.pulumi.cloudflare.RecordArgs;
public class App {
public static void main(String[] args) {
Pulumi.run(ctx -> {
var content = """
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};
""";
var accountId = ctx.config().require("accountId");
var domain = ctx.config().require("domain");
var worker = new WorkersScript("hello-world-worker", WorkersScriptArgs.builder()
.accountId(accountId)
.name("hello-world-worker")
.content(content)
.module(true)
.build());
final var zone = CloudflareFunctions.getZone(GetZoneArgs.builder()
.accountId(accountId)
.name(domain)
.build());
var route = new WorkersRoute("hello-world-route", WorkersRouteArgs.builder()
.zoneId(zone.applyValue(getZoneResult -> getZoneResult.id()))
.pattern("hello-world." + domain)
.scriptName(worker.name())
.build());
var record = new Record("hello-world-record", RecordArgs.builder()
.name(route.pattern())
.type("A")
.content("192.0.2.1")
.zoneId(zone.applyValue(getZoneResult -> getZoneResult.id()))
.proxied(true)
.build());
ctx.export("url", Output.format("https://%s", record.hostname()));
return;
});
}
} Program.csProgram.csProgram.csusing System.Collections.Generic;
using Pulumi;
using Cloudflare = Pulumi.Cloudflare;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var accountId = config.Require("accountId");
var domain = config.Require("domain");
var content = @"
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response(""Hello World!"", options);
},
};
";
var worker = new Cloudflare.WorkersScript("hello-world-worker", new()
{
AccountId = accountId,
Name = "hello-world-worker",
Content = content,
Module = true
});
var zone = Output.Create(Cloudflare.GetZone.InvokeAsync(new()
{
AccountId = accountId,
Name = domain,
}));
var route = new Cloudflare.WorkersRoute("hello-world-route", new()
{
ZoneId = zone.Apply(z => z.Id),
Pattern = "hello-world." + domain,
ScriptName = worker.Name,
});
var record = new Cloudflare.Record("hello-world-record", new()
{
Name = route.Pattern,
Type = "A",
Content = "192.0.2.1",
ZoneId = zone.Apply(z => z.Id),
Proxied = true
});
return new Dictionary<string, object?>
{
["url"] = Output.Format($"https://{record.Hostname}")
};
}); Pulumi.yamlPulumi.yamlPulumi.yamlname: serverless-cloudflare
runtime: yaml
variables:
zone:
fn::invoke:
function: cloudflare:getZone
arguments:
accountId: ${accountId}
name: ${domain}
resources:
worker:
type: cloudflare:WorkersScript
properties:
accountId: "${accountId}"
name: "hello-world-worker"
content: |
export default {
async fetch(request) {
const options = { headers: { 'content-type': 'text/plain' } };
return new Response("Hello World!", options);
},
};
module: true
route:
type: cloudflare:WorkersRoute
properties:
zoneId: ${zone.id}
pattern: "hello-world.${domain}"
scriptName: ${worker.name}
record:
type: cloudflare:Record
properties:
name: ${route.pattern}
type: A
content: "192.0.2.1"
zoneId: ${zone.id}
proxied: true
outputs:
url: "https://${record.hostname}" 3 Cái triển khai ứng dụng của bạn 3. Deploy your application 3 ។ ទាញយកកម្មវិធីរបស់អ្នក
Phần «Triển khai your ứng dụng» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "3. Deploy your application" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «3 ។ ទាញយកកម្មវិធីរបស់អ្នក» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
pulumi up --yes wait for the dev stack to become ready Bốn Kiểm tra công nhân 4. Test the Worker 4 ។ ការធ្វើតេស្តបុគ្គលិក
Phần «Test Worker» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "4. Test the Worker" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «4 ។ ការធ្វើតេស្តបុគ្គលិក» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
url từ khối Pulumi.url output from the Pulumi stack.url ពីថ្នាំ Pulumi ។curl $(pulumi stack output url) Hello, World! 5 Làm sạch 5. Clean up 5 ។ ការសាងសង់
Phần «Dọn dẹp» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "5. Clean up" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «5 ។ ការសាងសង់» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
A ơi Xóa tài nguyên Cloudflare a. Delete the Cloudflare resources A ។ ទាញយក Cloudflare
Phần «. Delete Cloudflare resources» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "a. Delete the Cloudflare resources" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «A ។ ទាញយក Cloudflare» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
pulumi destroy B . Loại bỏ Pulumi Stack b. Remove the Pulumi stack B ។ ទាញយក Pulumi Stack
Phần «B. Remove Pulumi stack» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "b. Remove the Pulumi stack" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «B ។ ទាញយក Pulumi Stack» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
pulumi stack rm dev Bước tiếp theo Next steps ជំហានបន្ទាប់
Phần «Bước tiếp theo» — đọc hướng dẫn bên dưới, dùng liên kết docs gốc để xem ảnh minh họa và tab cấu hình đầy đủ.
Read the "Next steps" section below — open the official docs link for full screenshots and configuration tabs.
អានផ្នែក «ជំហានបន្ទាប់» ខាងក្រោម — បើកតំណ docs ផ្លូវការសម្រាប់រូបភាព និង tab កំណត់។
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"/directory/","name":"Directory"}},{"@type":"ListItem","position":2,"item":{"@id":"/pulumi/","name":"Pulumi"}},{"@type":"ListItem","position":3,"item":{"@id":"/pulumi/tutorial/","name":"Tutorials"}},{"@type":"ListItem","position":4,"item":{"@id":"/pulumi/tutorial/hello-world/","name":"Deploy a Worker"}}]} Xem bản đầy đủ trên developers.cloudflare.com (ảnh, tab cấu hình). View the full guide on developers.cloudflare.com (images, config tabs). មើលមគ្គុទ្ទេសក៍ពេញលើ developers.cloudflare.com (រូបភាព, tab កំណត់)។
Tài liệu gốc ↗ Official docs ↗ ឯកសារផ្លូវការ ↗