本頁面說明如何使用 Cloud Run 的磁碟區掛接功能,將 Cloud Storage 值區掛接為儲存空間磁碟區。
將值區掛接為 Cloud Run 中的磁碟區,即可將值區內容呈現為容器檔案系統中的檔案。將值區掛載為磁碟區後,您可以使用程式設計語言的檔案系統作業和程式庫,而不是使用 Google API 用戶端程式庫,將值區視為本機檔案系統的目錄來存取。
您可以將磁碟區掛載為唯讀,也可以為磁碟區指定掛載選項。
記憶體需求
Cloud Storage 磁碟區掛載作業會使用 Cloud Run 容器記憶體執行下列活動:對於所有 Cloud Storage FUSE 快取,Cloud Run 會使用統計快取設定,預設的存留時間 (TTL) 為 60 秒。統計快取的預設大小上限為 32 MB,類型快取的預設大小上限為 4 MB。
讀取時,Cloud Storage FUSE 也會使用狀態和類型快取以外的記憶體,例如每個要讀取的檔案和 goroutine 的 1 MiB 陣列。
寫入 Cloud Storage 時,整個檔案會先在 Cloud Run 記憶體中暫存,然後再寫入 Cloud Storage。
限制
由於 Cloud Run 會使用 Cloud Storage FUSE 掛接這個磁碟機,因此在將 Cloud Storage 值區掛接為磁碟機時,請留意下列幾點:
- Cloud Storage FUSE 不會為同一個檔案的多個寫入作業 (檔案鎖定) 提供並行作業控制功能。如果有多個寫入作業嘗試替換檔案,則最後一次寫入會成功,所有之前的寫入均會遺失。
- Cloud Storage FUSE 並非完全符合 POSIX 規範的檔案系統。詳情請參閱 Cloud Storage FUSE 說明文件。
不允許的路徑
Cloud Run 不允許您在 /dev
、/proc
和 /sys
或其子目錄中掛接磁碟區。
事前準備
您需要一個 Cloud Storage 值區,才能將其掛接為磁碟區。
如要確保 Cloud Storage 的讀取/寫入效能最佳化,請參閱「最佳化 Cloud Storage FUSE 網路頻寬效能」。
必要的角色
如要取得設定 Cloud Storage 掛載磁區所需的權限,請要求管理員授予您下列 IAM 角色:
-
Cloud Run 服務中的 Cloud Run 開發人員 (
roles/run.developer
) -
服務身分中的「服務帳戶使用者」 (
roles/iam.serviceAccountUser
)
如要取得 服務身分存取檔案和 Cloud Storage 值區所需的權限,請要求管理員授予服務身分以下 IAM 角色:
- 儲存空間管理員 (
roles/storage.admin
)
如要進一步瞭解 Cloud Storage 的角色和權限,請參閱 Cloud Storage 的 IAM。
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果您的 Cloud Run 服務會與Google Cloud API 互動 (例如 Cloud 用戶端程式庫),請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱部署權限和管理存取權。
掛接 Cloud Storage 磁碟區
您可以在不同的掛載路徑中掛載多個儲存桶。您也可以使用相同或不同的掛載路徑,將磁碟區掛接至多個容器。
如果您使用多個容器,請先指定磁碟區,再指定每個容器的磁碟區掛接。
磁碟區掛載作業需要第二代執行環境。如果未明確設定執行環境,Cloud Run 會自動為服務選取第二代執行環境。
控制台
前往 Google Cloud 控制台的 Cloud Run:
從選單中選取「Services」(服務),然後按一下「Deploy container」(部署容器),即可設定新的服務。如果您要設定現有服務,請按一下該服務,然後點選「編輯並部署新修訂版本」。
如果您要設定新服務,請填寫初始服務設定頁面,然後按一下「容器、磁碟區、網路與安全性」展開服務設定頁面。
按一下「Volumes」分頁標籤。
- 按一下「新增音量」。
- 在「Volume type」下拉式選單中,選取 Cloud Storage bucket 做為音量類型。
- 在「音量名稱」欄位中,輸入要使用的音量名稱。
- 瀏覽並選取要用於磁碟區的 Cloud Storage 值區,或視需要建立新的值區。
- 如要將資料集設為唯讀,請選取「唯讀」核取方塊。
- 按一下 [完成]。
- 按一下「Container」分頁標籤:
- 按一下「Volume Mounts」分頁標籤。
- 按一下「掛接磁碟區」。
- 從選單中選取儲存空間磁碟區。
- 指定要掛接磁碟區的路徑。
- 然後按一下 [完成]。
按一下 [Create] (建立) 或 [Deploy] (部署)。
gcloud
如要新增磁碟區並掛載,請按照下列步驟操作:
gcloud run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
取代:
- SERVICE 改為您的服務名稱。
- MOUNT_PATH 與掛接磁碟區的相對路徑,例如
/mnt/my-volume
。 - VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將磁碟區對應至磁碟區掛載點。
- BUCKET_NAME 改成 Cloud Storage 值區名稱。
如要將磁碟區掛接為唯讀磁碟區,請按照下列步驟操作:
--add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
如果您使用多個容器,請先指定磁碟區,再指定每個容器的磁碟區掛載:
gcloud run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \ --container CONTAINER_1 \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH \ --container CONTAINER_2 \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH2
YAML
如果您要建立新服務,請略過這個步驟。如果您要更新現有服務,請下載其 YAML 設定:
gcloud run services describe SERVICE --format export > service.yaml
視需要更新。
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/execution-environment: gen2 spec: containers: - image: IMAGE_URL volumeMounts: - name: VOLUME_NAME mountPath: MOUNT_PATH volumes: - name: VOLUME_NAME csi: driver: gcsfuse.run.googleapis.com readOnly: IS_READ_ONLY volumeAttributes: bucketName: BUCKET_NAME
取代
- IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MOUNT_PATH 與掛接磁碟區的相對路徑,例如
/mnt/my-volume
。 - VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將磁碟區對應至磁碟區掛載點。
- IS_READ_ONLY 搭配
True
可將資料夾設為唯讀,搭配False
則可允許寫入。 - BUCKET_NAME 與 Cloud Storage 值區名稱。
- IMAGE_URL 與容器映像檔的參照,例如
使用下列指令建立或更新服務:
gcloud run services replace service.yaml
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
將下列內容新增至 Terraform 設定中的google_cloud_run_v2_service
資源: resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
gcs {
bucket = google_storage_bucket.default.name
read_only = IS_READ_ONLY
}
}
}
}
resource "google_storage_bucket" "default" {
name = "BUCKET_NAME"
location = "REGION"
}
取代:
- SERVICE 改為 Cloud Run 服務名稱。
- 將 REGION 替換為 Google Cloud 區域。
- IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將音量對應至音量掛載點。
- MOUNT_PATH 與掛載音量所在的相對路徑,例如
/mnt/my-volume
。 - IS_READ_ONLY 搭配
True
可將音量設定為唯讀,或搭配False
可允許寫入。 - BUCKET_NAME 與 Cloud Storage 值區名稱。
讀取及寫入磁碟映像檔
如果您使用 Cloud Run 掛載磁碟功能,您可以使用程式設計語言中的相同程式庫存取已掛載的磁碟,就像在本機檔案系統上讀取及寫入檔案一樣。
如果您使用的是預期資料會儲存在本機檔案系統的現有容器,並使用一般檔案系統作業存取資料,這個選項就特別實用。
以下程式碼片段假設已將 mountPath
設為 /mnt/my-volume
的磁碟機掛載。
NodeJS
使用檔案系統模組建立新檔案,或在磁碟區 /mnt/my-volume
中附加現有檔案:
var fs = require('fs'); fs.appendFileSync('/mnt/my-volume/sample-logfile.txt', 'Hello logs!', { flag: 'a+' });
Python
寫入儲存在磁碟區 /mnt/my-volume
中的檔案:
f = open("/mnt/my-volume/sample-logfile.txt", "a")
Go
使用 os
套件,在磁碟區 /mnt/my-volume
中建立新檔案
f, err := os.Create("/mnt/my-volume/sample-logfile.txt")
Java
使用 Java.io.File
類別在 /mnt/my-volume
磁碟機中建立記錄檔:
import java.io.File; File f = new File("/mnt/my-volume/sample-logfile.txt");
使用掛接選項設定磁碟區
您可以選擇使用掛載選項,設定掛載點的各種屬性。可用的掛接選項可讓您設定快取設定、掛接特定目錄、啟用偵錯記錄等行為。
指定掛載選項
您可以使用 Google Cloud CLI、YAML 或 Terraform 指定掛載選項。
gcloud
如要新增磁碟區並使用掛接選項掛接磁碟區,請按照下列步驟操作:
gcloud beta run services update SERVICE \ --execution-environment gen2 \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="OPTION_1=VALUE_1;OPTION_N=VALUE_N" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
取代:
- SERVICE 改為您的服務名稱。
- VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將磁碟區對應至磁碟區掛載點。
- BUCKET_NAME 改成 Cloud Storage 值區名稱。
- OPTION_1 與第一個掛載選項。請注意,您可以指定任意數量的掛載選項,每個掛載選項和值組合之間以分號分隔。
- VALUE_1 與第一個掛載選項的所需設定。
- OPTION_N 與第二個掛載選項。
- VALUE_N 與第二個掛載選項的設定。
- MOUNT_PATH 與掛接磁碟區的相對路徑,例如
/cache
。
YAML
如果您要建立新服務,請略過這個步驟。如果您要更新現有服務,請下載其 YAML 設定:
gcloud run services describe SERVICE --format export > service.yaml
視需要更新。
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: run.googleapis.com/execution-environment: gen2 spec: containers: - image: IMAGE_URL volumeMounts: - name: VOLUME_NAME mountPath: MOUNT_PATH volumes: - name: VOLUME_NAME csi: driver: gcsfuse.run.googleapis.com readOnly: IS_READ_ONLY volumeAttributes: bucketName: BUCKET_NAME mountOptions: OPTION_1=VALUE_1,OPTION_N=VALUE_N
取代
- IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MOUNT_PATH 與掛接磁碟區的相對路徑,例如
/cache
。 - VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將磁碟區對應至磁碟區掛載點。
- IS_READ_ONLY 搭配
True
可將資料夾設為唯讀,搭配False
則可允許寫入。 - BUCKET_NAME 與 Cloud Storage 值區名稱。
- OPTION_1 與第一個掛載選項。請注意,您可以視需要指定任意數量的掛載選項,每個掛載選項和值組合都以半形逗號分隔。
- VALUE_1 與第一個掛載選項的所需設定。
- OPTION_N 與第二個掛載選項。
- VALUE_N 與第二個掛載選項的設定。
- IMAGE_URL 與容器映像檔的參照,例如
使用下列指令建立或更新服務:
gcloud run services replace service.yaml
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
將下列內容新增至 Terraform 設定中的google_cloud_run_v2_service
資源: resource "google_cloud_run_v2_service" "default" {
provider = google-beta
name = "SERVICE"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
gcs {
bucket = google_storage_bucket.default.name
read_only = IS_READ_ONLY
mount_options = ["OPTION_1=VALUE_1", "OPTION_N=VALUE_N", "OPTION_O"]
}
}
}
}
取代:
- SERVICE 改為 Cloud Run 服務名稱。
- 將 REGION 替換為 Google Cloud 區域。
- IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將音量對應至音量掛載點。
- MOUNT_PATH 與掛載音量所在的相對路徑,例如
/mnt/my-volume
。 - IS_READ_ONLY 搭配
True
可將音量設定為唯讀,或搭配False
可允許寫入。 - BUCKET_NAME 與 Cloud Storage 值區名稱。
- OPTION_1 與第一個掛載選項。請注意,您可以視需要指定任意數量的掛載選項,每個掛載選項和值組合都以半形逗號分隔。
- VALUE_1 與第一個掛載選項的所需設定。
- OPTION_N 與第二個掛載選項 (如有)。
- VALUE_N 與第二個掛載選項的設定。
- OPTION_O 與第三個掛載選項 (如適用)。部分掛載選項沒有值。
常用的掛載選項
掛載選項通常用於設定快取設定、只掛載 Cloud Storage 值區中的特定目錄、設定磁碟區的擁有權 (uid
、gid
)、關閉隱含目錄,或指定偵錯記錄層級。
設定快取設定
您可以設定快取相關的掛載選項,變更磁碟區的快取設定。下表列出這些設定,以及預設的 Cloud Run 值:
快取設定 | 說明 | 預設 |
---|---|---|
metadata-cache-ttl-secs |
快取中繼資料項目的存留時間 (以秒為單位)。例如,metadata-cache-ttl-secs=120s 。如要使用最新的檔案,請指定 0 值。如要一律使用快取版本,請指定 -1 值。詳情請參閱「設定快取撤銷功能」。 |
60 |
stat-cache-max-size-mb |
統計快取可使用的最大大小 (以 MiB 為單位)。統計快取一律會保留在記憶體中,這會影響記憶體用量。如果工作負載涉及的檔案數量上限為 20,000 個,請指定 32 的值。如果工作負載超過 20,000 個檔案,請以 10 的值為單位,每增加 6,000 個檔案就增加大小,其中統計快取會使用每個檔案平均 1,500 MiB 的記憶體。如要讓統計快取視需要使用記憶體,也就是不設定限制,請指定 -1 的值。如要停用統計資料快取,請指定 0 值。 |
32 |
type-cache-max-size-mb |
類型快取可使用的目錄大小上限 (以 MiB 為單位)。類型快取一律會保留在記憶體中,這會影響記憶體用量。 如果要掛載的儲存桶中單一目錄內的檔案數量上限為 20,000 個以下,請指定 4 的值。如果您要掛載的單一目錄中含有超過 20,000 個檔案,請將值增加 1 ,每增加 5,000 個檔案就增加 1 ,也就是每個檔案平均約 200 個位元組。如要讓類型快取使用所需的記憶體,也就是不指定上限,請指定 -1 值。如要停用類型快取,請指定 0 值。 |
4 |
下列 Google Cloud CLI 指令會將 metadata-cache-ttl-secs
設為 120 秒,並將統計資料和類型快取容量分別增加至 52
和 7
MiB:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="metadata-cache-ttl-secs=120;stat-cache-max-size-mb=52;type-cache-max-size-mb=7" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
啟用偵錯記錄功能
根據預設,Cloud Storage FUSE 會記錄嚴重性為 Info
的事件。您可以使用下列任一記錄嚴重性掛接選項變更記錄設定:
trace
debug
info
warning
error
- 如要關閉所有記錄,請指定
off
值。
這些嚴重性等級依嚴重程度由低至高排序。指定嚴重性等級後,Cloud Storage FUSE 會針對嚴重性等級等於或高於指定嚴重性的事件產生記錄檔。舉例來說,如果您指定 warning
層級,Cloud Storage FUSE 就會產生警告和錯誤記錄。
將記錄嚴重性設為 info
以上的層級可能會影響效能並產生大量記錄資料,因此建議您只在必要時才這麼做。
下列指令列會啟用偵錯記錄:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="log-severity=debug" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
停用隱含的目錄
為了讓 Cloud Storage 更像標準檔案系統,Cloud Run 會在掛接 Cloud Storage 值區時,預設啟用隱含目錄。您可以使用 implicit-dirs
掛載選項關閉隱含目錄。停用隱含目錄可改善效能和成本,但會影響相容性。
隱含目錄功能可讓 Cloud Run 辨識現有的 Cloud Storage 檔案,這些檔案的檔案名稱會模仿目錄結構,例如 /mydir/myfile.txt
。如果停用隱含目錄,Cloud Run 就無法列出或讀取這類檔案。
關閉隱含目錄可減少對 Cloud Storage 的請求次數,進而改善應用程式效能和成本。如需進一步瞭解,請參閱 Cloud Storage FUSE 的「檔案和目錄」說明文件。
下列指令列會停用隱含目錄:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="implicit-dirs=false" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
在 Cloud Storage 值區中掛載特定目錄
根據預設,Cloud Run 會掛載整個 Cloud Storage 值區,讓 Cloud Run 服務存取所有內容。在某些情況下,您可能只想掛接特定目錄。舉例來說,如果值區包含大量檔案,掛載特定目錄就能提升效能。
另一個例子是為了隔離目的,您需要讓不同的服務存取儲存空間值區中的不同目錄。
下列指令列會指定要掛載的目錄:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="only-dir=images" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
設定音量 UID
和 GID
使用 uid
和 gid
掛載選項,變更磁碟區的使用者 ID 和群組 ID。如果您想將檔案的擁有權設為特定使用者或群組,以便與一或多個執行中的容器身分相符,這項功能就很實用。根據預設,磁碟區由 root 擁有。
下列指令列會設定 uid
和 gid
:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="uid=UID;gid=GID" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
設定其他掛載選項
以下是 Cloud Run 支援的所有掛載選項完整清單。
目錄
implicit-dirs
only-dir
rename-dir-limit
偵錯
debug_fuse_errors
debug_fuse
debug_gcs
debug-invariants
debug_mutex
快取
stat-cache-capacity
stat-cache-ttl
type-cache-ttl
enable-nonexistent-type-cache
權限
uid
gid
file-mode
dir-mode
其他
billing-project
client-protocol
experimental-enable-json-read
experimental-opentelemetry-collector-address
http-client-timeout
limit-bytes-per-sec
limit-ops-per-sec
max-conns-per-host
max-idle-conns-per-host
max-retry-sleep
-o
retry-multiplier
sequential-read-size-mb
stackdriver-export-interval
如需支援的掛載選項完整說明文件,請參閱 Cloud Storage FUSE 指令列掛載選項。
查看磁碟區掛接設定
控制台
在 Google Cloud 控制台中,前往「Cloud Run」服務頁面:
在服務清單中按一下您有興趣的服務,開啟「Service details」(服務詳細資料) 頁面。
按一下「Volumes」分頁標籤。
在磁碟區詳細資料頁面中找出「磁碟區掛接」設定。
gcloud
使用下列指令:
gcloud run services describe SERVICE_NAME
在傳回的設定中找出「磁碟區掛接」設定。
改善 Cloud Storage FUSE 網路頻寬效能
為提升讀取和寫入效能,請使用直接虛擬私有雲將 Cloud Run 服務連線至虛擬私有雲網路,並將所有輸出流量轉送至虛擬私有雲網路。您可以使用下列任一選項執行此操作:
- 啟用 Private Google Access,並務必將
vpc-egress
參數設為all-traffic
。 - 請參考網路最佳做法頁面中的範例 2「Google API 的內部流量」一節,採用其中一個選項。
容器啟動時間和 Cloud Storage FUSE 掛載
使用 Cloud Storage FUSE 可能會稍微增加 Cloud Run 容器的冷啟動時間,因為系統會先掛載卷,再啟動容器。只有在 Cloud Storage FUSE 成功掛載時,容器才會啟動。
請注意,Cloud Storage FUSE 必須先與 Cloud Storage 建立連線,才能成功掛載磁碟區。任何網路延遲都可能影響容器啟動時間。相應地,如果連線嘗試失敗,Cloud Storage FUSE 就會無法掛載,Cloud Run 服務也會無法啟動。此外,如果 Cloud Storage FUSE 掛載時間超過 30 秒,Cloud Run 服務就會啟動失敗,因為 Cloud Run 執行所有掛載作業的總時限為 30 秒。
Cloud Storage FUSE 效能特徵
如果您定義兩個磁區,且每個磁區都指向不同的值區,系統就會啟動兩個 Cloud Storage FUSE 程序。掛載和處理程序會同時發生。
使用 Cloud Storage FUSE 的作業會受到網路頻寬的影響,因為 Cloud Storage FUSE 會使用 Cloud Storage API 與 Cloud Storage 通訊。如果網路頻寬偏低,某些作業 (例如列出資料夾內容) 可能會變慢。同樣地,讀取大型檔案也需要時間,因為這也會受到網路頻寬的限制。
當您寫入值區時,Cloud Storage FUSE 會在記憶體中完整排程物件。也就是說,寫入大型檔案時,會受到容器執行個體可用的記憶體量限制 (容器記憶體上限為 32 GiB)。
只有在您執行 close
或 fsync
時,寫入作業才會刷新至值區:系統會將完整物件上傳/重新上傳至值區。物件會完全重新上傳至值區的唯一例外狀況,是當檔案大小為 2 MiB 或更大時,且檔案含有附加內容。
詳情請參閱下列資源:
清除及移除磁碟區和磁碟區掛接
您可以清除所有磁區和磁區掛載點,也可以移除個別磁區和磁區掛載點。
清除所有磁碟區和磁碟區掛載
如要清除單一容器服務中的所有磁碟區和磁碟區掛載,請執行下列指令:
gcloud run services update SERVICE \ --clear-volumes --clear-volume-mounts
如果您有多個容器,請按照 sidecars CLI 慣例清除磁碟區和磁碟區掛載:
gcloud run services update SERVICE \ --container=container1 \ --clear-volumes -–clear-volume-mounts \ --container=container2 \ --clear-volumes \ -–clear-volume-mounts
移除個別磁碟區和磁碟區掛載
如要移除磁碟區,您也必須移除使用該磁碟區的所有磁碟區掛接點。
如要移除個別磁碟區或磁碟區掛接,請使用 remove-volume
和 remove-volume-mount
旗標:
gcloud run services update SERVICE \ --remove-volume VOLUME_NAME \ --container=container1 \ --remove-volume-mount MOUNT_PATH \ --container=container2 \ --remove-volume-mount MOUNT_PATH