部署
部署是一个容器,用于存储与部署的无服务器应用程序相关的资产、环境变量、编译器选项等数据。
创建部署
编译器选项
通过与部署创建请求一起发送的 POST
主体的 compilerOptions
键可以覆盖通常在
这里的 deno.json
中配置的选项。 编译器选项将决定应用程序的 TypeScript 代码将如何被处理。
如果提供了 null
,Deploy 将尝试在部署的资产中查找 deno.json
或
deno.jsonc
。如果提供了一个空对象 {}
,Deploy 将使用默认的 TypeScript 配置。
部署资产
与部署相关的资产是驱动部署行为并处理传入请求的代码和静态文件。在发送到此端点的
POST
请求的 JSON 主体中, 您将包含一个包含表示特定资产的文件路径的键的
assets
属性。
因此,例如 - 存储在部署目录下的文件 server/main.ts
将使用该路径作为资产的键。
资产有一个与之关联的 kind
属性,可以是以下之一:
file
- 与部署相关的实际文件symlink
- 到部署中另一个文件的符号链接
文件资产还具有一个 content
属性,正如您可能想象的那样,这是文件的实际内容。
这些资产还有一个 encoding
属性,指示内容是以 utf-8
(纯文本)还是以
base64 编码内容编码的。
为了避免重新上传很少更改的文件,您还可以指定一个 gitSha1
属性,它是指先前为指定资产上传的内容的 SHA-1
哈希。
以下是可用于设置部署的 assets
的示例。
{
"assets": {
"main.ts": {
"kind": "file",
"content": "Deno.serve((req: Request) => new Response(\"Hello World\"));",
"encoding": "utf-8"
},
"images/cat1.png": {
"kind": "file",
"content": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk",
"encoding": "base64"
},
"images/cat2.png": {
"kind": "file",
"gitSha1": "5c4f8729e5c30a91a890e24d7285e89f418c637b"
},
"symlink.png": {
"kind": "symlink",
"target": "images/cat1.png"
}
}
}