Tipe resource ALIYUN::OSS::Bucket digunakan untuk membuat bucket OSS.
Sintaksis
{
"Type": "ALIYUN::OSS::Bucket",
"Properties": {
"AccessControl": String,
"RefererConfiguration": Map,
"ServerSideEncryptionConfiguration": Map,
"CORSConfiguration": Map,
"Tags": Map,
"LoggingConfiguration": Map,
"LifecycleConfiguration": Map,
"StorageClass": String,
"DeletionForce": Boolean,
"Policy": Map,
"BucketName": String,
"RedundancyType": String,
"VersioningConfiguration": Map,
"ResourceGroupId": String,
"EnableOssHdfsService": Boolean,
"WebsiteConfigurationV2": Map,
"BlockPublicAccess": Boolean
}
}Properti
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
BucketName | String | Ya | Tidak | Nama bucket. | Nama harus terdiri dari 3 hingga 63 karakter. Nama harus dimulai dan diakhiri dengan huruf kecil atau angka. Nama hanya boleh berisi huruf kecil, angka, dan tanda hubung (-). Catatan Nama ini harus unik secara global. Anda dapat menggunakan AutoCompleteInput dalam AssociationProperty untuk menghasilkan string acak secara otomatis. Untuk informasi selengkapnya, lihat Bagaimana cara mengontrol panjang string acak?. |
AccessControl | String | Tidak | Ya | Izin akses untuk bucket. | Nilai yang valid:
|
CORSConfiguration | Map | Tidak | Ya | Konfigurasi Berbagi Sumber Daya Lintas Asal (CORS). | Untuk informasi lebih lanjut, lihat Properti CORSConfiguration. |
DeletionForce | Boolean | Tidak | Ya | Menentukan apakah akan memaksa penghapusan objek dalam bucket. | Nilai yang valid:
|
EnableOssHdfsService | Boolean | Tidak | Ya | Menentukan apakah akan mengaktifkan layanan OSS-HDFS. | Nilai yang valid:
|
BlockPublicAccess | Boolean | Tidak | Ya | Menentukan apakah akan memblokir akses publik ke bucket. | Nilai yang valid:
|
LifecycleConfiguration | Map | Tidak | Ya | Konfigurasi siklus hidup untuk objek dalam bucket. | Untuk informasi selengkapnya, lihat Properti LifecycleConfiguration. |
LoggingConfiguration | Map | Tidak | Tidak | Konfigurasi penyimpanan log. | Untuk informasi lebih lanjut, lihat Properti LoggingConfiguration. |
Policy | Map | Tidak | Ya | Kebijakan bucket. | Untuk informasi selengkapnya, lihat Contoh umum kebijakan bucket. |
RedundancyType | String | Tidak | Tidak | Jenis redundansi data untuk bucket. | Nilai yang valid:
|
RefererConfiguration | Map | Tidak | Ya | Konfigurasi perlindungan hotlink. | Untuk informasi lebih lanjut, lihat Properti RefererConfiguration. |
ResourceGroupId | String | Tidak | Tidak | ID grup sumber daya. | Tidak ada |
ServerSideEncryptionConfiguration | Map | Tidak | Ya | Konfigurasi enkripsi sisi server. | Untuk informasi lebih lanjut, lihat Properti ServerSideEncryptionConfiguration. |
StorageClass | String | Tidak | Tidak | Kelas penyimpanan untuk bucket. | Nilai yang valid:
|
Tags | Map | Tidak | Ya | Tag untuk bucket. Setiap tag adalah pasangan kunci-nilai. | Anda dapat mengonfigurasi hingga 20 tag. Kunci harus terdiri dari 1 hingga 64 karakter. Kunci tidak boleh dimulai dengan Nilai harus terdiri dari 0 hingga 128 karakter dan dikodekan dalam UTF-8. |
VersioningConfiguration | Map | Tidak | Ya | Kontainer yang menyimpan status pengendalian versi. | Untuk informasi selengkapnya, lihat Properti VersioningConfiguration. |
WebsiteConfigurationV2 | Map | Tidak | Tidak | Konfigurasi situs web. | Untuk informasi selengkapnya, lihat Properti WebsiteConfigurationV2. |
Sintaksis CORSConfiguration
"CORSConfiguration": {
"CORSRule": List,
"ResponseVary": Boolean
}Properti CORSConfiguration
Property name | Type | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
CORSRule | List | Tidak | Ya | Aturan CORS. | Untuk informasi lebih lanjut, lihat Properti CORSRule. |
ResponseVary | Boolean | Tidak | Ya | Menentukan apakah akan mengembalikan header | Nilai yang valid:
Catatan Anda tidak dapat mengonfigurasi bidang ini sendirian. Anda harus mengonfigurasi setidaknya satu aturan CORS agar bidang ini berlaku. |
Sintaksis CORSRule
"CORSRule": [
{
"MaxAgeSeconds": Number,
"AllowedMethod": List,
"ExposeHeader": List,
"AllowedOrigin": List,
"AllowedHeader": List
}
]Properti CORSRule
Property name | Type | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
AllowedHeader | List | Tidak | Ya | Header yang diizinkan dalam permintaan lintas asal. | Nilai yang valid:
|
AllowedMethod | List | Tidak | Ya | Metode HTTP yang diizinkan dalam permintaan lintas asal. | Nilai yang valid:
|
AllowedOrigin | List | Tidak | Ya | Asal yang diizinkan dalam permintaan lintas asal. | Tidak ada |
ExposeHeader | List | Tidak | Ya | Header respons yang dapat diakses pengguna dari aplikasi. | Tanda bintang (*) tidak diizinkan. |
MaxAgeSeconds | Number | Tidak | Ya | Waktu yang digunakan browser untuk menyimpan cache hasil permintaan OPTIONS untuk sumber daya tertentu. | Tidak ada |
Sintaksis LifecycleConfiguration
"LifecycleConfiguration": {
"Rule": List
}Properti LifecycleConfiguration
Property name | Type | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Rule | List | Ya | Tidak | Aturan siklus hidup. | Untuk informasi lebih lanjut, lihat Properti Rule. |
Sintaks aturan
"Rule": [
{
"Status": String,
"AbortMultipartUpload": Map,
"Expiration": Map,
"Prefix": String,
"ID": String,
"Filter": Map,
"Transition": List
}
]Properti Rule
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Prefix | String | Ya | Tidak | Awalan tempat aturan ini berlaku. | Hanya objek yang namanya cocok dengan awalan yang dipengaruhi oleh aturan ini. |
AbortMultipartUpload | Map | Tidak | Tidak | Pengaturan kedaluwarsa untuk unggah multi-bagian yang belum lengkap. | Untuk informasi lebih lanjut, lihat Properti AbortMultipartUpload. |
Expiration | Map | Tidak | Tidak | Pengaturan kedaluwarsa untuk objek. | Untuk informasi lebih lanjut, lihat Properti Expiration. |
ID | String | Tidak | Tidak | ID unik untuk aturan. | ID dapat terdiri dari hingga 255 karakter. Jika Anda tidak menentukan ID atau membiarkannya kosong, OSS akan menghasilkan ID unik secara otomatis. |
Status | String | Tidak | Ya | Mengaktifkan atau menonaktifkan aturan. | Nilai yang valid:
|
Filter | Map | Tidak | Tidak | Aturan pengecualian ini hanya mendukung satu kondisi. | Untuk informasi selengkapnya, lihat Properti Filter. |
Transition | List | Tidak | Tidak | Daftar tugas transisi redundansi penyimpanan. | Untuk informasi selengkapnya, lihat Properti Transition. |
Sintaks Transition
"Transition": [
{
"CreatedBeforeDate": String,
"Days": Integer,
"IsAccessTime": Boolean,
"ReturnToStdWhenVisit": Boolean,
"AllowSmallFile": Boolean,
"StorageClass": String
}
]Properti Transition
Property name | Type | Wajib | Pembaruan diizinkan | Deskripsi | Constraint |
CreatedBeforeDate | String | Tidak | Tidak | Tentukan tanggal. OSS menerapkan aturan siklus hidup ke objek yang waktu modifikasi terakhirnya lebih awal dari tanggal ini. | Tanggal harus mengikuti format ISO 8601 dan harus pukul tengah malam (00:00:00) dalam waktu UTC. |
Days | Integer | Tidak | Tidak | Tentukan berapa hari setelah objek terakhir diperbarui sebelum aturan siklus hidup berlaku. | Nilai yang valid: bilangan bulat positif, seperti 30, 90, dan 180. |
IsAccessTime | Boolean | Tidak | Tidak | Tentukan apakah aturan siklus hidup diterapkan berdasarkan waktu akses terakhir objek. |
|
ReturnToStdWhenVisit | Boolean | Tidak | Tidak | Tentukan apakah akan mengubah kelas penyimpanan objek non-standar kembali ke Standard saat diakses. | Opsi ini hanya berlaku ketika IsAccessTime diatur ke true. |
AllowSmallFile | Boolean | Tidak | Tidak | Menentukan apakah akan menjadikan waktu akses terakhir objek sebagai dasar operasi. | Ubah kelas penyimpanan menjadi IA, Archive, atau Cold Archive untuk objek yang ukurannya kurang dari 64 KB. |
StorageClass | String | Tidak | Tidak | Kelas penyimpanan tempat objek diubah. | Nilai yang valid:
|
Sintaksis Filter
"Filter":{
"Not": Map
}Properti Filter
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Not | Map | Tidak | Tidak | Aturan pengecualian. | Untuk informasi selengkapnya, lihat Bukan properti. |
Bukan sintaksis
"Not":{
"Tag": List,
"Prefix": String
}Bukan properti
Property name | Type | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Tag | List | Tidak | Tidak | Tag untuk aturan pengecualian. | Aturan pengecualian ini berlaku untuk paling banyak satu tag objek. |
Prefix | String | Tidak | Tidak | Awalan untuk aturan. | Kondisi awalan objek berikut berlaku untuk aturan pengecualian ini:
Singkatnya, aturan ini menyatakan bahwa ketika Anda mengonfigurasi aturan pengecualian, jika aturan induk menentukan awalan, awalan di node Not harus merupakan subset atau contoh spesifik dari awalan induk. Keduanya tidak boleh identik kecuali Anda mengonfigurasi tag. Desain ini memungkinkan penyaringan file atau objek yang detail halus dan fleksibel, terutama dalam skenario seperti penyimpanan cloud, pencadangan data, atau penyaringan konten. |
Sintaksis Expiration
"Expiration":{
"Days": Number,
"CreatedBeforeDate": String,
"ExpiredObjectDeleteMarker": Boolean
}Properti Expiration
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
CreatedBeforeDate | String | Tidak | Tidak | Tentukan tanggal. OSS menerapkan aturan ke objek yang waktu modifikasi terakhirnya lebih awal dari tanggal ini. | Tanggal harus mengikuti format ISO 8601 dan harus pukul tengah malam (00:00:00) dalam waktu UTC. Contoh: |
Days | Number | Tidak | Tidak | Tentukan berapa hari setelah objek terakhir dimodifikasi sebelum aturan berlaku. | OSS menghitung jumlah hari sejak waktu modifikasi terakhir objek. Ketika jumlah hari yang ditentukan telah berlalu, OSS menghapus objek tersebut. Misalnya, jika Anda mengatur jumlah hari menjadi 30, OSS menghapus objek yang tanggal modifikasi terakhirnya 1 Januari 2016 pada 31 Januari 2016. |
ExpiredObjectDeleteMarker | Boolean | Tidak | Tidak | Tentukan apakah akan menghapus penanda hapus yang kedaluwarsa secara otomatis. | Nilai yang valid:
|
Sintaksis AbortMultipartUpload
"AbortMultipartUpload": {
"CreatedBeforeDate": String,
"Days": Number
}Properti AbortMultipartUpload
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
CreatedBeforeDate | String | Tidak | Tidak | Tentukan tanggal sebelum aturan tersebut mulai berlaku. | Tanggal harus mengikuti format ISO 8601 dan harus pukul tengah malam (00:00:00) dalam waktu UTC. Contoh: |
Days | Number | Tidak | Tidak | Tentukan berapa hari setelah objek terakhir dimodifikasi sebelum aturan berlaku. | OSS menghitung jumlah hari sejak waktu modifikasi terakhir objek. Ketika jumlah hari yang ditentukan telah berlalu, OSS menghapus objek tersebut. Misalnya, jika Anda mengatur jumlah hari menjadi 30, OSS menghapus objek yang tanggal modifikasi terakhirnya 1 Januari 2016 pada 31 Januari 2016. |
Sintaksis LoggingConfiguration
"LoggingConfiguration": {
"TargetBucket": String,
"TargetPrefix": String
}Properti LoggingConfiguration
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
TargetBucket | String | Tidak | Tidak | Bucket tempat log akses disimpan. | Tidak ada |
TargetPrefix | String | Tidak | Tidak | Awalan untuk file log akses yang disimpan. | Tidak ada |
Sintaksis WebsiteConfigurationV2
"WebsiteConfiguration":{
"RoutingRules": List,
"IndexDocument": Map,
"ErrorDocument": Map
}Properti WebsiteConfigurationV2
Property name | Type | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
ErrorDocument | Map | Tidak | Tidak | Halaman kesalahan statis yang dihosting di bucket. | Tidak ada |
IndexDocument | Map | Tidak | Tidak | Halaman utama statis yang dihosting di bucket. | Tidak ada |
RoutingRules | List | Tidak | Tidak | Daftar aturan routing. | Panjang maksimum: 20. |
Sintaksis IndexDocument
"IndexDocument":{
"Suffix": String,
"Type": String,
"SupportSubDir": String
}Properti IndexDocument
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Suffix | String | Ya | Tidak | Halaman indeks default. | Setelah Anda mengonfigurasi halaman indeks default, jika Anda mengakses objek yang diakhiri dengan garis miring (/), OSS mengembalikan halaman indeks default ini. |
Type | String | Tidak | Tidak | Tentukan perilaku saat Anda mencoba mengakses objek yang tidak ada dan tidak diakhiri dengan garis miring (/) setelah Anda mengonfigurasi halaman indeks default. | Aturan ini hanya berlaku ketika SupportSubDir diatur ke true, dan berlaku setelah RoutingRule tetapi sebelum ErrorFile. Anggaplah halaman indeks default adalah index.html. Saat Anda mengakses bucket.oss-cn-hangzhou.aliyuncs.com/abc dan objek abc tidak ada, perilaku untuk nilai Type yang berbeda adalah sebagai berikut:
|
SupportSubDir | String | Tidak | Tidak | Tentukan apakah akan mengalihkan ke halaman utama default subdirektori saat Anda mengakses subdirektori tersebut. | Nilai yang valid:
|
Sintaksis RoutingRules
"RoutingRules":[{
"Redirect": Map,
"Condition": Map,
"RuleNumber": Integer
}]Properti RoutingRules
Property name | Type | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Redirect | Map | Ya | Tidak | Tentukan aksi yang akan dilakukan saat aturan cocok. | Untuk informasi selengkapnya, lihat Properti Redirect. |
Condition | Map | Ya | Tidak | Kondisi pencocokan. | Aturan ini hanya berlaku ketika semua kondisi yang ditentukan terpenuhi. Pencocokan berhasil hanya jika semua kondisi dalam kontainer ini terpenuhi. Untuk informasi selengkapnya, lihat Properti Condition. |
RuleNumber | Integer | Ya | Tidak | Nomor urutan aturan routing untuk dicocokkan dan dieksekusi. OSS mencocokkan aturan sesuai urutan nomor ini. | Jika pencocokan berhasil, OSS mengeksekusi aturan ini dan berhenti mengeksekusi aturan berikutnya. |
Sintaksis Condition
"Condition":{
"KeyPrefixEquals": String,
"HttpErrorCodeReturnedEquals": String,
"IncludeHeaders": List,
"KeySuffixEquals": String
}Properti Condition
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
KeyPrefixEquals | String | Tidak | Tidak | Awalan nama objek yang akan dicocokkan. | Tidak ada. |
HttpErrorCodeReturnedEquals | String | Tidak | Tidak | Kode status HTTP yang harus dikembalikan saat Anda mengakses objek yang ditentukan agar aturan cocok. | Bidang ini harus bernilai 404 saat aturan pengalihan menggunakan pengembalian ke sumber berbasis mirroring. |
IncludeHeaders | List | Tidak | Tidak | Aturan hanya cocok jika permintaan berisi header yang ditentukan dan nilainya sesuai dengan nilai yang ditentukan. | Anda dapat mengonfigurasi hingga 10 kondisi semacam ini. Untuk informasi selengkapnya, lihat Properti IncludeHeaders. |
KeySuffixEquals | String | Tidak | Tidak | Akhiran nama objek yang akan dicocokkan. | Tidak ada. |
Sintaksis IncludeHeaders
"IncludeHeaders": [
{
"Equals": String,
"Key": String
}
]Properti IncludeHeaders
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Equals | String | Tidak | Tidak | Nilai header. | Tidak ada |
Key | String | Ya | Tidak | Nama header. | Tidak ada |
Sintaksis RefererConfiguration
"RefererConfiguration":{
"AllowEmptyReferer": String,
"RefererList": List
}Properti RefererConfiguration
Property name | Type | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
AllowEmptyReferer | Boolean | Tidak | Tidak | Tentukan apakah akan mengizinkan permintaan dengan header Referer kosong untuk mengakses bucket. | Nilai yang valid:
|
RefererList | List | Tidak | Tidak | Daftar putih header Referer. | Tidak ada |
Sintaksis Redirect
"Redirect":{
"MirrorFollowRedirect": Boolean,
"MirrorURL": String,
"PassQueryString": Boolean,
"MirrorPassQueryString": Boolean,
"ReplaceKeyWith": String,
"Protocol": String,
"HttpRedirectCode": String,
"ReplaceKeyPrefixWith": String,
"RedirectType": String,
"MirrorHeaders": Map,
"MirrorCheckMd5": Boolean,
"EnableReplacePrefix": Boolean,
"HostName": String
}Properti Redirect
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
MirrorFollowRedirect | Boolean | Tidak | Tidak | Tentukan apakah akan melanjutkan pengalihan ke Location yang ditentukan untuk mengambil data ketika hasil permintaan pengembalian ke sumber berbasis mirroring mengembalikan kode status 3xx. | Pengaturan ini hanya berlaku ketika RedirectType diatur ke Mirror. Misalnya, saat Anda mencerminkan permintaan kembali ke server asal, server asal mengembalikan kode status 302 dengan header Location.
|
MirrorURL | String | Tidak | Tidak | URL server asal untuk pengembalian ke sumber berbasis mirroring. | Pengaturan ini hanya berlaku ketika RedirectType diatur ke Mirror. URL asal harus dimulai dengan http:// atau https:// dan diakhiri dengan garis miring (/). OSS menambahkan nama objek ke URL ini untuk membentuk URL akhir. Misalnya, jika nama objek adalah myobject dan Anda mengatur parameter ini ke http://example.com/, URL pengembalian ke asal adalah http://example.com/myobject. Jika Anda mengatur parameter ini ke http://example.com/dir1/, URL pengembalian ke asal adalah http://example.com/dir1/myobject. |
PassQueryString | Boolean | Tidak | Tidak | Tentukan apakah akan menyertakan parameter kueri saat melakukan pengalihan atau pengembalian ke sumber berbasis mirroring. | Misalnya, jika pengguna mengakses OSS dengan parameter kueri a=b&c=d dan PassQueryString diatur ke true, parameter kueri ditambahkan ke header Location untuk pengalihan 302, seperti Location: example.com?a=b&c=d. Jika jenis aturan adalah pengembalian ke sumber berbasis mirroring, parameter kueri juga disertakan dalam permintaan pengembalian ke asal. Nilai yang valid: true, false (default). |
MirrorPassQueryString | Boolean | Tidak | Tidak | Sama seperti PassQueryString, tetapi memiliki prioritas lebih tinggi daripada PassQueryString. Pengaturan ini hanya berlaku ketika RedirectType diatur ke Mirror. | Nilai default: false. |
ReplaceKeyWith | String | Tidak | Tidak | Saat Anda menggunakan aturan Redirect, nama objek diganti dengan nilai yang ditentukan oleh ReplaceKeyWith. Ini memungkinkan Anda menggunakan variabel. | Variabel yang didukung hanyalah {key}, yang merepresentasikan nama objek dalam permintaan. Misalnya, jika Anda ingin mengakses objek bernama test dan mengatur ReplaceKeyWith ke prefix/{key}, header Location mengarah ke http://example.com/prefix/test.suffix. Artinya, saat klien meminta objek asli (misalnya, test), server mengalihkan permintaan ke lokasi baru. Jalur lokasi baru dihasilkan secara dinamis berdasarkan pola yang ditentukan oleh ReplaceKeyWith. Dalam contoh ini, jalur baru menambahkan "prefix/" sebelum nama objek asli (test), menghasilkan URL pengalihan akhir "http://example.com/prefix/test.suffix". Bagian ".suffix" bersifat tetap, sedangkan "${key}" berhasil diganti dengan nama objek "test". |
Protocol | String | Tidak | Tidak | Protokol yang digunakan untuk pengalihan. | Aturan ini hanya berlaku ketika RedirectType diatur ke External atau AliCDN. Misalnya, jika Anda ingin mengakses file bernama test dan mengalihkannya ke example.com menggunakan HTTPS, header Location dalam respons HTTP harus diatur ke "https://example.com/test". Nilai yang valid: http, https. |
HttpRedirectCode | String | Tidak | Tidak | Kode status HTTP yang dikembalikan selama pengalihan. | Ini hanya berlaku ketika RedirectType diatur ke External atau AliCDN. Nilai default: 302. Nilai yang valid: 301, 302, 307. |
ReplaceKeyPrefixWith | String | Tidak | Tidak | Nilai yang menggantikan awalan nama objek dalam pengalihan. Jika awalan kosong, string ini disisipkan sebelum nama objek. | Catatan Anda hanya dapat menggunakan properti ReplaceKeyWith atau ReplaceKeyPrefixWith. Misalnya, jika nama objek adalah ABC/test.TXT, KeyPrefixEquals diatur ke ABC/, dan ReplaceKeyPrefixWith diatur ke def/, header Location mengarah ke http://example.com/def/test.txt. |
RedirectType | String | Ya | Tidak | Jenis pengalihan. | Nilai yang valid:
|
MirrorHeaders | Map | Tidak | Tidak | Header yang dicerminkan ke server asal. | Pengaturan ini hanya berlaku ketika RedirectType diatur ke Mirror. Untuk informasi selengkapnya, lihat Properti MirrorHeaders. |
MirrorCheckMd5 | Boolean | Tidak | Tidak | Tentukan apakah akan memverifikasi hash MD5 data yang diambil dari server asal. | Pengaturan ini hanya berlaku ketika RedirectType diatur ke Mirror. Saat MirrorCheckMd5 diatur ke true, jika server asal mengembalikan header Content-MD5 dalam respons, OSS memverifikasi apakah hash MD5 data yang diambil cocok dengan header tersebut. Jika tidak cocok, OSS tidak menyimpan data ke OSS. Nilai default: false. |
EnableReplacePrefix | Boolean | Tidak | Tidak | Jika diatur ke true, awalan nama objek diganti dengan nilai yang ditentukan oleh ReplaceKeyPrefixWith. Jika bidang ini tidak ditentukan atau kosong, awalan nama objek dipotong. | Catatan: Bidang ini tidak dapat diatur ke true saat ReplaceKeyWith tidak kosong. Nilai default: false. |
HostName | String | Tidak | Tidak | Nama domain untuk pengalihan. | Nama domain harus mengikuti konvensi nama domain. Misalnya, jika nama file adalah test, protokol diatur ke https, dan nama host diatur ke example.com, header Location adalah https://example.com/test. |
Sintaksis MirrorHeaders
"MirrorHeaders":{
"Remove": List,
"PassAll": Boolean,
"Sets": List,
"Pass": List
}Properti MirrorHeaders
Property name | Jenis | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Hapus | Daftar | Tidak | Tidak | Nonaktifkan penerusan header yang ditentukan ke server asal. | Ini hanya berlaku ketika RedirectType diatur ke Mirror. Setiap header dapat terdiri dari hingga 1.024 byte dan hanya boleh berisi karakter 0-9, a-z, A-Z, dan tanda hubung (-). Anda dapat menentukan hingga 10 header. |
LewatiSemua | Boolean | Tidak | Tidak | Tentukan apakah akan meneruskan semua header kecuali yang tercantum di bawah ke server asal. | Ini hanya berlaku ketika RedirectType diatur ke Mirror. Header yang dikecualikan meliputi: - content-length, authorization2, authorization, range, date, dan header umum lainnya - header yang dimulai dengan oss-, x-oss-, atau x-drs- Nilai default: false Artinya, header-header spesifik ini diteruskan ke sumber cermin secara default. Untuk mengubah perilaku ini, atur nilai ini ke true untuk mencegah header-header tersebut diteruskan. |
Himpunan | Daftar | Tidak | Tidak | Atur header ke server asal. Header ini diatur saat permintaan dikirim ke server asal, terlepas dari apakah header yang ditentukan disertakan dalam permintaan. | Fitur ini hanya berlaku ketika RedirectType diatur ke Mirror. Anda dapat mengonfigurasi hingga 10 set header. Untuk informasi selengkapnya, lihat Properti Sets. |
Lewati | Daftar | Tidak | Tidak | Teruskan header yang ditentukan ke server asal. | Ini hanya berlaku ketika RedirectType diatur ke Mirror. Setiap header dapat terdiri dari hingga 1.024 byte dan hanya boleh berisi karakter 0-9, a-z, A-Z, dan tanda hubung (-). Anda dapat menentukan hingga 10 header. |
Sintaks Sets
"Sets": [
{
"Value": String,
"Key": String
}
]Menetapkan properti
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Nilai | String | Ya | Tidak | Atur nilai header hingga maksimum 1.024 byte, tidak termasuk \r\n. | Pengaturan ini hanya berlaku ketika RedirectType diatur ke Mirror. |
Kunci | String | Ya | Tidak | Atur kunci header hingga maksimum 1.024 byte. Set karakter sama seperti untuk Pass. | Pengaturan ini hanya berlaku ketika RedirectType diatur ke Mirror. |
Sintaksis ErrorDocument
"ErrorDocument":{
"Key": String,
"HttpStatus": String
}Properti ErrorDocument
Property name | Type | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Key | String | Ya | Tidak | Halaman kesalahan default. | Jika Anda menentukan halaman kesalahan, OSS mengembalikan halaman kesalahan ini saat objek yang diminta tidak ada. |
HttpStatus | String | Tidak | Tidak | Kode status HTTP untuk halaman kesalahan. | Nilai yang valid: 200, 404 (default). |
Sintaksis ServerSideEncryptionConfiguration
"ServerSideEncryptionConfiguration":{
"KMSMasterKeyID": String,
"SSEAlgorithm": String
}Properti ServerSideEncryptionConfiguration
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
SSEAlgorithm | String | Ya | Tidak | Metode enkripsi sisi server default. | Nilai yang valid:
|
KMSMasterKeyID | String | Tidak | Tidak | ID kunci. | Ini diperlukan hanya ketika SSEAlgorithm diatur ke KMS dan Anda menggunakan kunci tertentu untuk enkripsi. |
Sintaksis VersioningConfiguration
"VersioningConfiguration":{
"Status": String
}Properti VersioningConfiguration
Property name | Tipe | Diperlukan | Pembaruan diizinkan | Deskripsi | Constraint |
Status | String | Ya | Tidak | Status versioning. | Nilai yang valid:
|
Nilai Pengembalian
Fn::GetAtt
Name: Nama bucket. Nama harus unik secara global.
DomainName: Nama domain yang digunakan untuk mengakses bucket melalui jaringan publik.
InternalDomainName: Nama domain yang digunakan untuk mengakses bucket melalui jaringan internal.
Arn: Nama Sumber Daya Alibaba Cloud (ARN).
Contoh
Skenario 1: Buat bucket OSS.
ROSTemplateFormatVersion: '2015-09-01'
Description: Creates a simple oss bucket
Parameters:
BucketName:
AssociationProperty: AutoCompleteInput
AssociationPropertyMetadata:
Length: 5
Prefix: simple-oss-bucket
CharacterClasses:
- Class: lowercase
min: 1
Type: String
Label:
en: Bucket Name
Outputs:
BucketDomainName:
Value:
Fn::GetAtt:
- MyBucket
- DomainName
Resources:
MyBucket:
Type: ALIYUN::OSS::Bucket
Properties:
AccessControl: private
BucketName:
Ref: BucketName
Metadata: {}
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Creates a simple oss bucket",
"Parameters": {
"BucketName": {
"Type": "String",
"Label": {
"en": "Bucket Name"
},
"AssociationProperty": "AutoCompleteInput",
"AssociationPropertyMetadata": {
"Length": 5 ,
"Prefix": "simple-oss-bucket",
"CharacterClasses": [
{
"Class": "lowercase",
"min": 1
}
]
}
}
},
"Metadata": {
},
"Resources": {
"MyBucket": {
"Type": "ALIYUN::OSS::Bucket",
"Properties": {
"AccessControl": "private",
"BucketName": {
"Ref": "BucketName"
}
}
}
},
"Outputs": {
"BucketDomainName": {
"Value": {
"Fn::GetAtt": [
"MyBucket",
"DomainName"
]
}
}
}
}Skenario 2: Buat bucket OSS, aktifkan akselerasi CDN, konfigurasikan resolusi nama domain, dan optimalkan strategi distribusi file untuk mendukung akses global dan aturan cache kustom.
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: Create an OSS bucket and enable CDN acceleration, configure domain name resolution, and optimize file distribution strategies to support global access and custom caching rules.
en: Buat bucket OSS dan aktifkan akselerasi CDN, konfigurasikan resolusi nama domain, dan optimalkan strategi distribusi file untuk mendukung akses global dan aturan caching kustom.
Parameters:
Scope:
Type: String
Label:
zh-cn: Acceleration area
en: Area percepatan
Description:
zh-cn: Select the acceleration area. If the acceleration region is Chinese mainland only or Global, the service domain name must have an ICP filing.
en: Pilih area percepatan. Jika wilayah akselerasi hanya Tiongkok daratan atau Global, nama domain layanan harus memiliki pendaftaran ICP.
Default: domestic
AllowedValues:
- domestic
- overseas
- global
DomainName:
Type: String
Label:
zh-cn: Accelerated domain name
en: Nama domain yang dipercepat
Description:
zh-cn: An accelerated domain name is a domain name that is added to CDN to accelerate access to the origin server. Enter a domain name under your account.
en: Nama domain yang dipercepat merujuk pada nama domain yang digunakan untuk mengakses CDN guna mempercepat situs sumber. Harap isi nama domain di bawah akun Anda.
BucketName:
Type: String
Label:
en: Nama Bucket
zh-cn: Bucket Name
Description:
en: Nama harus memiliki panjang 3 hingga 63 byte, dimulai dan diakhiri dengan huruf kecil atau angka. Nama hanya dapat berisi huruf kecil, angka, dan tanda hubung (-).<br/><b>catatan: <font color='blue'>Nama bucket harus unik secara global dalam OSS. Nama bucket tidak dapat diubah setelah bucket dibuat.</font>
zh-cn: The name must be 3 to 63 characters in length. It must start and end with a lowercase letter or digit. It can contain only lowercase letters, digits, and hyphens (-).<br/><b>Note:<font color='blue'>The bucket name must be globally unique. You cannot create a bucket with an existing name.</font>
AssociationProperty: AutoCompleteInput
AssociationPropertyMetadata:
Length: 6
Prefix: image-example-
CharacterClasses:
- Class: lowercase
min: 1
Resources:
OssBucket:
Type: ALIYUN::OSS::Bucket
DependsOn: AutoEnableOSS
Properties:
BucketName:
Ref: BucketName
DeletionForce: true
AutoEnableCDN:
Type: ALIYUN::ROS::AutoEnableService
Properties:
ServiceName: CDN
AutoEnableOSS:
Type: ALIYUN::ROS::AutoEnableService
Properties:
ServiceName: OSS
Domain:
Type: ALIYUN::CDN::Domain
Properties:
Sources:
Fn::Sub:
- '[{"content":"${content}", "type":"oss", "priority":"20", "port":80, "weight":"10"}]'
- content:
Fn::GetAtt:
- OssBucket
- DomainName
CdnType: web
Scope:
Ref: Scope
DomainName:
Ref: DomainName
DependsOn: AutoEnableCDN
DomainRecord:
Type: ALIYUN::DNS::DomainRecord
Properties:
Type: CNAME
RR:
Fn::Select:
- 0
- Fn::Split:
- .
- Ref: DomainName
Value:
Fn::GetAtt:
- Domain
- Cname
DomainName:
Fn::Join:
- .
- Fn::Select:
- '1:'
- Fn::Split:
- .
- Ref: DomainName
DependsOn: Domain
DomainConfig:
Type: ALIYUN::CDN::DomainConfig
Properties:
FunctionList:
- FunctionArgs:
- ArgName: file_type
ArgValue: jpg,png,jpeg
- ArgName: weight
ArgValue: '99'
- ArgName: ttl
ArgValue: '7776000'
FunctionName: filetype_based_ttl_set
- FunctionArgs:
- ArgName: private_oss_auth
ArgValue: 'on'
- ArgName: perm_private_oss_tbl
ArgValue: ''
FunctionName: l2_oss_key
- FunctionArgs:
- ArgName: filetype
ArgValue: jpeg
- ArgName: webp
ArgValue: 'off'
- ArgName: orient
ArgValue: 'off'
- ArgName: slim
ArgValue: '90'
- ArgName: enable
ArgValue: 'on'
FunctionName: image_transform
DomainNames:
Ref: Domain
DependsOn: DomainRecord
Outputs:
Cname:
Description: Nama Domain CNAME
Value:
Fn::GetAtt:
- Domain
- Cname
DomainName:
Description: Nama Domain
Value:
Ref: Domain
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- Scope
- DomainName
- BucketName
<br/><br/>{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": {
"zh-cn": "Buat bucket OSS dan aktifkan akselerasi CDN, konfigurasikan resolusi nama domain, serta optimalkan strategi distribusi file untuk mendukung akses global dan aturan caching khusus.",
"en": "Buat bucket OSS dan aktifkan akselerasi CDN, konfigurasikan resolusi nama domain, serta optimalkan strategi distribusi file untuk mendukung akses global dan aturan caching khusus."
},
"Parameters": {
"Scope": {
"Type": "String",
"Label": {
"zh-cn": "Area percepatan",
"en": "Area percepatan"
},
"Description": {
"zh-cn": "Pilih area percepatan. Jika wilayah akselerasi hanya di Tiongkok Daratan atau Global, nama domain layanan harus memiliki Pendaftaran ICP.",
"en": "Pilih area percepatan. Ketika wilayah akselerasi hanya di Tiongkok Daratan dan seluruh dunia, nama domain layanan harus terdaftar."
},
"Default": "domestic",
"AllowedValues": [
"domestic",
"overseas",
"global"
]
},
"DomainName": {
"Type": "String",
"Label": {
"zh-cn": "Nama domain yang dipercepat",
"en": "Nama domain yang dipercepat"
},
"Description": {
"zh-cn": "Nama domain yang dipercepat adalah nama domain yang ditambahkan ke CDN untuk mempercepat akses ke server sumber. Masukkan nama domain di bawah akun Anda.",
"en": "Nama domain yang dipercepat mengacu pada nama domain akses CDN yang digunakan untuk mempercepat situs sumber. Silakan isi nama domain di bawah akun Anda."
}
},
"BucketName": {
"Type": "String",
"Label": {
"en": "Bucket Name",
"zh-cn": "Bucket Name"
},
"Description": {
"en": "Nama harus berukuran 3 hingga 63 byte, nama harus dimulai dan diakhiri dengan huruf kecil atau angka. Nama hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).;<br/><b>catatan: <font color='blue'>Nama bucket harus unik secara global dalam OSS. Nama bucket tidak dapat diubah setelah bucket dibuat.</font>",
"zh-cn": "Nama harus berukuran 3 hingga 63 karakter. Nama harus dimulai dan diakhiri dengan huruf kecil atau angka. Nama hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).<br/><b>Catatan:<font color='blue'>Nama bucket harus unik secara global. Anda tidak dapat membuat bucket dengan nama yang sudah ada.</font>"
},
"AssociationProperty": "AutoCompleteInput",
"AssociationPropertyMetadata": {
"Length": 6,
"Prefix": "image-example-",
"CharacterClasses": [
{
"Class": "lowercase",
"min": 1
}
]
}
}
},
"Resources": {
"OssBucket": {
"Type": "ALIYUN::OSS::Bucket",
"DependsOn": "AutoEnableOSS",
"Properties": {
"BucketName": {
"Ref": "BucketName"
},
"DeletionForce": true
}
},
"AutoEnableCDN": {
"Type": "ALIYUN::ROS::AutoEnableService",
"Properties": {
"ServiceName": "CDN"
}
},
"AutoEnableOSS": {
"Type": "ALIYUN::ROS::AutoEnableService",
"Properties": {
"ServiceName": "OSS"
}
},
"Domain": {
"Type": "ALIYUN::CDN::Domain",
"Properties": {
"Sources": {
"Fn::Sub": [
"[{\"content\":\"${content}\", \"type\":\"oss\", \"priority\":\"20\", \"port\":80, \"weight\":\"10\"}]",
{
"content": {
"Fn::GetAtt": [
"OssBucket",
"DomainName"
]
}
}
]
},
"CdnType": "web",
"Scope": {
"Ref": "Scope"
},
"DomainName": {
"Ref": "DomainName"
}
},
"DependsOn": "AutoEnableCDN"
},
"DomainRecord": {
"Type": "ALIYUN::DNS::DomainRecord",
"Properties": {
"Type": "CNAME",
"RR": {
"Fn::Select": [
0,
{
"Fn::Split": [
".",
{
"Ref": "DomainName"
}
]
}
]
},
"Value": {
"Fn::GetAtt": [
"Domain",
"Cname"
]
},
"DomainName": {
"Fn::Join": [
".",
{
"Fn::Select": [
"1:",
{
"Fn::Split": [
".",
{
"Ref": "DomainName"
}
]
}
]
}
]
}
},
"DependsOn": "Domain"
},
"DomainConfig": {
"Type": "ALIYUN::CDN::DomainConfig",
"Properties": {
"FunctionList": [
{
"FunctionArgs": [
{
"ArgName": "file_type",
"ArgValue": "jpg,png,jpeg"
},
{
"ArgName": "weight",
"ArgValue": "99"
},
{
"ArgName": "ttl",
"ArgValue": "7776000"
}
],
"FunctionName": "filetype_based_ttl_set"
},
{
"FunctionArgs": [
{
"ArgName": "private_oss_auth",
"ArgValue": "on"
},
{
"ArgName": "perm_private_oss_tbl",
"ArgValue": ""
}
],
"FunctionName": "l2_oss_key"
},
{
"FunctionArgs": [
{
"ArgName": "filetype",
"ArgValue": "jpeg"
},
{
"ArgName": "webp",
"ArgValue": "off"
},
{
"ArgName": "orient",
"ArgValue": "off"
},
{
"ArgName": "slim",
"ArgValue": "90"
},
{
"ArgName": "enable",
"ArgValue": "on"
}
],
"FunctionName": "image_transform"
}
],
"DomainNames": {
"Ref": "Domain"
}
},
"DependsOn": "DomainRecord"
}
},
"Outputs": {
"Cname": {
"Description": "CNAME",
"Value": {
"Fn::GetAtt": [
"Domain",
"Cname"
]
}
},
"DomainName": {
"Description": "DomainName",
"Value": {
"Ref": "Domain"
}
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"Scope",
"DomainName",
"BucketName"
]
}
]
}
}
}<br/><br/>Skenario 3: Buat instans ECS dan bucket OSS, instal aplikasi, dan implementasikan layanan teks-ke-gambar serta peningkatan potret.
ROSTemplateFormatVersion: '2015-09-01'
Mappings: {}
Parameters:
DashScopeApiKey:
NoEcho: true
Label:
zh-cn: DashScope API-KEY
en: DashScope API-KEY
Type: String
Description:
zh-cn: Aktifkan DashScope dan dapatkan kunci API. Untuk informasi selengkapnya, lihat <a href="https://www.alibabacloud.com/help/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key" target="_blank">Aktifkan DashScope dan buat kunci API</a>.
en: 'Aktifkan DashScope dan dapatkan kunci API. Silakan merujuk ke: <a href="https://www.alibabacloud.com/help/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key" target="_blank">Aktifkan DashScope dan buat kunci API</a>.'
AssociationProperty: ALIYUN::DashScope::ApiKey
CommonName:
Default: wanxiang
Type: String
InstancePassword:
Description:
zh-cn: Kata sandi logon untuk server. Panjangnya harus 8 hingga 30 karakter dan memuat setidaknya tiga dari jenis karakter berikut: huruf kapital, huruf kecil, angka, dan karakter khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/
en: Kata sandi logon server, panjang 8-30 karakter, harus memuat tiga jenis karakter (huruf kapital, huruf kecil, angka, serta simbol khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/)
Default: Null
Type: String
Label:
zh-cn: Kata Sandi Instans
en: Kata Sandi Instans
NoEcho: true
AssociationProperty: ALIYUN::ECS::Instance::Password
ConstraintDescription:
zh-cn: Kata sandi harus terdiri dari 8 hingga 30 karakter dan memuat setidaknya tiga dari jenis karakter berikut: huruf kapital, huruf kecil, angka, dan karakter khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/
en: Panjang 8-30 karakter, harus memuat tiga jenis karakter (huruf kapital, huruf kecil, angka, serta simbol khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/)
ZoneId:
AssociationPropertyMetadata:
AutoSelectFirst: true
Default: Null
Required: true
Label:
zh-cn: Zona Ketersediaan
en: Zona Ketersediaan
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
Type: String
BucketName:
AssociationPropertyMetadata:
Length: 5
Prefix: drawing-with-tongyi-wanxiang-
CharacterClasses:
- Class: lowercase
min: 1
Description:
zh-cn: Nama harus terdiri dari 3 hingga 63 karakter. Tidak boleh diawali atau diakhiri dengan tanda hubung (-). Dapat memuat huruf kecil, angka, dan tanda hubung (-).<br/>Catatan: <font color='blue'><b>Nama bucket harus unik secara global. Anda tidak dapat membuat bucket dengan nama yang sudah ada.</font>
en: '3 hingga 63 karakter, tidak boleh diawali atau diakhiri dengan tanda hubung (-), dapat memuat huruf kecil, angka, dan tanda hubung (-);<br/>Catatan: <font color=''blue''><b>harus unik secara global, nama yang sudah ada tidak dapat dibuat ulang.</font>'
MinLength: 3
Label:
zh-cn: Nama Bucket
en: Nama Bucket
AllowedPattern: ^[a-z0-9]+[a-z0-9\-]*[a-z0-9]+$
Type: String
MaxLength: 63
AssociationProperty: AutoCompleteInput
ConstraintDescription:
zh-cn: Nama harus terdiri dari 3 hingga 63 karakter. Tidak boleh diawali atau diakhiri dengan tanda hubung (-). Dapat memuat huruf kecil, angka, dan tanda hubung (-).
en: 3 hingga 63 karakter, tidak boleh diawali atau diakhiri dengan tanda hubung (-), dapat memuat huruf kecil, angka, dan tanda hubung (-)
InstanceType:
AssociationPropertyMetadata:
SystemDiskCategory: cloud_essd
InstanceChargeType: PostPaid
ZoneId: ${ZoneId}
Default: Null
Required: true
Label:
zh-cn: Jenis Instans
en: Jenis Instans
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
Type: String
Outputs:
EcsLoginAddress:
Description:
zh-cn: Alamat logon untuk instans ECS.
en: Alamat logon ECS.
Value:
Fn::Sub: https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs®ionId=${ALIYUN::Region}&instanceId=${EcsInstance}
ExperienceAddress:
Description:
zh-cn: Alamat pengalaman.
en: Alamat pengalaman.
Value:
Fn::Sub:
- http://${PublicIp}/wanx-demo
- PublicIp:
Fn::Select:
- 0
- Fn::GetAtt:
- EcsInstance
- PublicIps
Description:
zh-cn: Buat Cloud Pribadi Virtual (VPC), instans Elastic Compute Service (ECS), dan bucket Layanan Penyimpanan Objek (OSS). Konfigurasikan grup keamanan dan izin Manajemen Akses Sumber Daya (RAM). Instal Java dan aplikasi untuk menerapkan layanan teks-ke-gambar dan penyempurnaan potret.
en: Buat Cloud Pribadi Virtual (VPC), instans Elastic Compute Service (ECS), bucket Layanan Penyimpanan Objek (OSS), konfigurasikan grup keamanan dan izin Manajemen Akses Sumber Daya (RAM), instal Java dan aplikasi, serta terapkan layanan gambar berbasis teks dan penyempurnaan potret.
Conditions: {}
Resources:
CustomPolicy:
Type: ALIYUN::RAM::ManagedPolicy
Properties:
PolicyName:
Fn::Sub: create_by_solution-${ALIYUN::StackId}
PolicyDocument:
Version: '1'
Statement:
- Action:
- oss:GetObject
- oss:PutObject
Resource:
- Fn::Sub: acs:oss:oss-${ALIYUN::Region}:${ALIYUN::TenantId}:${BucketName}/*
Effect: Allow
InstallApp:
Type: ALIYUN::ECS::RunCommand
Properties:
CommandContent:
Fn::Sub: |-
#!/bin/bash
cat << EOF >> ~/.bash_profile
export DASHSCOPE_API_KEY=${DashScopeApiKey}
export OSS_ACCESS_KEY_ID=${AccessKey.AccessKeyId}
export OSS_ACCESS_KEY_SECRET=${AccessKey.AccessKeySecret}
export WANX_DEMO_OSS_BUCKET=${BucketName}
export WANX_DEMO_OSS_ENDPOINT=https://oss-${ALIYUN::Region}.aliyuncs.com
EOF
source ~/.bash_profile
wget https://help-static-aliyun-doc.aliyuncs.com/demos/wanx-demo-0.0.1-SNAPSHOT.jar
nohup java -jar wanx-demo-0.0.1-SNAPSHOT.jar > wanx-demo.log 2>&1 &
Type: RunShellScript
Sync: true
InstanceIds:
- Ref: EcsInstance
Timeout: 3600
DependsOn:
- ModuleInstallJava.Install
AccessKey:
Type: ALIYUN::RAM::AccessKey
Properties:
UserName:
Ref: User
Bucket:
Type: ALIYUN::OSS::Bucket
Properties:
BucketName:
Ref: BucketName
DeletionForce: true
SecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupIngress:
- PortRange: 80/80
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
VpcId:
Ref: Vpc
SecurityGroupName:
Fn::Sub: ${CommonName}-sg
ModuleInstallJava.Install:
Type: ALIYUN::OOS::Execution
Properties:
SafetyCheck: Skip
Parameters:
action: install
packageName: ACS-Extension-java-1853370294850618
regionId:
Ref: ALIYUN::Region
targets:
ResourceIds:
- Ref: EcsInstance
RegionId:
Ref: ALIYUN::Region
Type: ResourceIds
parameters: Null
TemplateName: ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL
Metadata:
ALIYUN::ROS::Module:
LogicalIdHierarchy: ModuleInstallJava
TypeHierarchy: MODULE::ACS::OOS::Extension
User:
Type: ALIYUN::RAM::User
Properties:
UserName:
Fn::Sub: create_by_solution-${ALIYUN::StackId}
PolicyAttachments:
Custom:
- Ref: CustomPolicy
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
VpcName:
Fn::Sub: ${CommonName}-vpc
CidrBlock: 192.168.0.0/16
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName:
Fn::Sub: ${CommonName}-vsw
VpcId:
Ref: Vpc
CidrBlock: 192.168.0.0/24
ZoneId:
Ref: ZoneId
EcsInstance:
Type: ALIYUN::ECS::InstanceGroup
Properties:
SystemDiskCategory: cloud_essd
VpcId:
Ref: Vpc
SecurityGroupId:
Ref: SecurityGroup
ImageId: aliyun_3_9_x64_20G_alibase_
InternetMaxBandwidthOut: 5
VSwitchId:
Ref: VSwitch
Password:
Ref: InstancePassword
InstanceName:
Fn::Sub: ${CommonName}-ecs
InstanceType:
Ref: InstanceType
ZoneId:
Ref: ZoneId
MaxAmount: 1
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- DashScopeApiKey
- BucketName
- ZoneId
- InstanceType
- InstancePassword
Hidden:
- CommonName
<br/><br/>{
"ROSTemplateFormatVersion": "2015-09-01",
"Mappings": {},
"Parameters": {
"DashScopeApiKey": {
"NoEcho": true,
"Label": {
"zh-cn": "DashScope API-KEY",
"en": "DashScope API-KEY"
},
"Type": "String",
"Description": {
"zh-cn": "Aktifkan DashScope dan dapatkan kunci API. Untuk informasi selengkapnya, lihat <a href=\"https://www.alibabacloud.com/help/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key\" target=\"_blank\">Aktifkan DashScope dan buat kunci API</a>.",
"en": "Aktifkan DashScope dan dapatkan kunci API. Silakan merujuk ke: <a href=\"https://www.alibabacloud.com/help/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key\" target=\"_blank\">Aktifkan DashScope dan buat kunci API</a>."
},
"AssociationProperty": "ALIYUN::DashScope::ApiKey"
},
"CommonName": {
"Default": "wanxiang",
"Type": "String"
},
"InstancePassword": {
"Description": {
"zh-cn": "Kata sandi logon untuk server. Panjangnya harus 8 hingga 30 karakter dan memuat setidaknya tiga dari jenis karakter berikut: huruf kapital, huruf kecil, angka, dan karakter khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/",
"en": "Kata sandi logon server, panjang 8-30 karakter, harus memuat tiga dari (huruf kapital, huruf kecil, angka, serta karakter khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/)"
},
"Default": null,
"Type": "String",
"Label": {
"zh-cn": "Kata Sandi Instans",
"en": "Instance Password"
},
"NoEcho": true,
"AssociationProperty": "ALIYUN::ECS::Instance::Password",
"ConstraintDescription": {
"zh-cn": "Kata sandi harus terdiri dari 8 hingga 30 karakter dan memuat setidaknya tiga dari jenis karakter berikut: huruf kapital, huruf kecil, angka, dan karakter khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/",
"en": "Panjang 8-30 karakter, harus memuat tiga dari (huruf kapital, huruf kecil, angka, serta karakter khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/)"
}
},
"ZoneId": {
"AssociationPropertyMetadata": {
"AutoSelectFirst": true
},
"Default": null,
"Required": true,
"Label": {
"zh-cn": "Zona Ketersediaan",
"en": "Availability Zone"
},
"AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
"Type": "String"
},
"BucketName": {
"AssociationPropertyMetadata": {
"Length": 5,
"Prefix": "drawing-with-tongyi-wanxiang-",
"CharacterClasses": [
{
"Class": "lowercase",
"min": 1
}
]
},
"Description": {
"zh-cn": "Nama harus terdiri dari 3 hingga 63 karakter. Tidak boleh diawali atau diakhiri dengan tanda hubung (-). Dapat berisi huruf kecil, angka, dan tanda hubung (-).<br/>Catatan: <font color='blue'><b>Nama bucket harus unik secara global. Anda tidak dapat membuat bucket dengan nama yang sudah ada.</font>",
"en": "3 hingga 63 karakter, tidak boleh diawali atau diakhiri dengan tanda hubung (-), dapat berisi huruf kecil, angka, dan tanda hubung (-);<br/>Catatan: <font color='blue'><b>harus unik secara global, nama yang sudah ada tidak dapat dibuat kembali.</font>"
},
"MinLength": 3,
"Label": {
"zh-cn": "Nama Bucket",
"en": "Bucket Name"
},
"AllowedPattern": "^[a-z0-9]+[a-z0-9\\-]*[a-z0-9]+$",
"Type": "String",
"MaxLength": 63,
"AssociationProperty": "AutoCompleteInput",
"ConstraintDescription": {
"zh-cn": "Nama harus terdiri dari 3 hingga 63 karakter. Tidak boleh diawali atau diakhiri dengan tanda hubung (-). Dapat berisi huruf kecil, angka, dan tanda hubung (-).",
"en": "3 hingga 63 karakter, tidak boleh diawali atau diakhiri dengan tanda hubung (-), dapat berisi huruf kecil, angka, dan tanda hubung (-)"
}
},
"InstanceType": {
"AssociationPropertyMetadata": {
"SystemDiskCategory": "cloud_essd",
"InstanceChargeType": "PostPaid",
"ZoneId": "${ZoneId}"
},
"Default": null,
"Required": true,
"Label": {
"zh-cn": "Jenis Instans",
"en": "Instance Type"
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"Type": "String"
}
},
"Outputs": {
"EcsLoginAddress": {
"Description": {
"zh-cn": "Alamat logon untuk instans ECS.",
"en": "Alamat logon ECS."
},
"Value": {
"Fn::Sub": "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs®ionId=${ALIYUN::Region}&instanceId=${EcsInstance}"
}
},
"ExperienceAddress": {
"Description": {
"zh-cn": "Alamat pengalaman.",
"en": "Alamat pengalaman."
},
"Value": {
"Fn::Sub": [
"http://${PublicIp}/wanx-demo",
{
"PublicIp": {
"Fn::Select": [
0,
{
"Fn::GetAtt": [
"EcsInstance",
"PublicIps"
]
}
]
}
}
]
}
}
},
"Description": {
"zh-cn": "Buat Virtual Private Cloud (VPC), instans Elastic Compute Service (ECS), dan bucket Layanan Penyimpanan Objek (OSS). Konfigurasikan grup keamanan dan izin Resource Access Management (RAM). Instal Java dan aplikasi untuk mengimplementasikan layanan teks-ke-gambar dan peningkatan potret.",
"en": "Buat Virtual Private Cloud (VPC), instans Elastic Compute Service (ECS), bucket Layanan Penyimpanan Objek (OSS), konfigurasikan grup keamanan dan izin Resource Access Management (RAM), instal Java dan aplikasi, serta implementasikan layanan gambar berbasis teks dan peningkatan potret."
},
"Conditions": {},
"Resources": {
"CustomPolicy": {
"Type": "ALIYUN::RAM::ManagedPolicy",
"Properties": {
"PolicyName": {
"Fn::Sub": "create_by_solution-${ALIYUN::StackId}"
},
"PolicyDocument": {
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject",
"oss:PutObject"
],
"Resource": [
{
"Fn::Sub": "acs:oss:oss-${ALIYUN::Region}:${ALIYUN::TenantId}:${BucketName}/*"
}
],
"Effect": "Allow"
}
]
}
}
},
"InstallApp": {
"Type": "ALIYUN::ECS::RunCommand",
"Properties": {
"CommandContent": {
"Fn::Sub": "#!/bin/bash\n\ncat << EOF >> ~/.bash_profile\nexport DASHSCOPE_API_KEY=${DashScopeApiKey}\nexport OSS_ACCESS_KEY_ID=${AccessKey.AccessKeyId}\nexport OSS_ACCESS_KEY_SECRET=${AccessKey.AccessKeySecret}\nexport WANX_DEMO_OSS_BUCKET=${BucketName}\nexport WANX_DEMO_OSS_ENDPOINT=https://oss-${ALIYUN::Region}.aliyuncs.com\nEOF\n\nsource ~/.bash_profile \nwget https://help-static-aliyun-doc.aliyuncs.com/demos/wanx-demo-0.0.1-SNAPSHOT.jar\nnohup java -jar wanx-demo-0.0.1-SNAPSHOT.jar > wanx-demo.log 2>&1 &"
},
"Type": "RunShellScript",
"Sync": true,
"InstanceIds": [
{
"Ref": "EcsInstance"
}
],
"Timeout": 3600
},
"DependsOn": [
"ModuleInstallJava.Install"
]
},
"AccessKey": {
"Type": "ALIYUN::RAM::AccessKey",
"Properties": {
"UserName": {
"Ref": "User"
}
}
},
"Bucket": {
"Type": "ALIYUN::OSS::Bucket",
"Properties": {
"BucketName": {
"Ref": "BucketName"
},
"DeletionForce": true
}
},
"SecurityGroup": {
"Type": "ALIYUN::ECS::SecurityGroup",
"Properties": {
"SecurityGroupIngress": [
{
"PortRange": "80/80",
"SourceCidrIp": "0.0.0.0/0",
"IpProtocol": "tcp"
}
],
"VpcId": {
"Ref": "Vpc"
},
"SecurityGroupName": {
"Fn::Sub": "${CommonName}-sg"
}
}
},
"ModuleInstallJava.Install": {
"Type": "ALIYUN::OOS::Execution",
"Properties": {
"SafetyCheck": "Skip",
"Parameters": {
"action": "install",
"packageName": "ACS-Extension-java-1853370294850618",
"regionId": {
"Ref": "ALIYUN::Region"
},
"targets": {
"ResourceIds": [
{
"Ref": "EcsInstance"
}
],
"RegionId": {
"Ref": "ALIYUN::Region"
},
"Type": "ResourceIds"
},
"parameters": null
},
"TemplateName": "ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL"
},
"Metadata": {
"ALIYUN::ROS::Module": {
"LogicalIdHierarchy": "ModuleInstallJava",
"TypeHierarchy": "MODULE::ACS::OOS::Extension"
}
}
},
"User": {
"Type": "ALIYUN::RAM::User",
"Properties": {
"UserName": {
"Fn::Sub": "create_by_solution-${ALIYUN::StackId}"
},
"PolicyAttachments": {
"Custom": [
{
"Ref": "CustomPolicy"
}
]
}
}
},
"Vpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"VpcName": {
"Fn::Sub": "${CommonName}-vpc"
},
"CidrBlock": "192.168.0.0/16"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"VSwitchName": {
"Fn::Sub": "${CommonName}-vsw"
},
"VpcId": {
"Ref": "Vpc"
},
"CidrBlock": "192.168.0.0/24",
"ZoneId": {
"Ref": "ZoneId"
}
}
},
"EcsInstance": {
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"SystemDiskCategory": "cloud_essd",
"VpcId": {
"Ref": "Vpc"
},
"SecurityGroupId": {
"Ref": "SecurityGroup"
},
"ImageId": "aliyun_3_9_x64_20G_alibase_",
"InternetMaxBandwidthOut": 5,
"VSwitchId": {
"Ref": "VSwitch"
},
"Password": {
"Ref": "InstancePassword"
},
"InstanceName": {
"Fn::Sub": "${CommonName}-ecs"
},
"InstanceType": {
"Ref": "InstanceType"
},
"ZoneId": {
"Ref": "ZoneId"
},
"MaxAmount": 1
}
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"DashScopeApiKey",
"BucketName",
"ZoneId",
"InstanceType",
"InstancePassword"
]
}
],
"Hidden": [
"CommonName"
]
}
}
}<br/><br/>Untuk informasi selengkapnya, lihat Templat publik yang berisi resource ini.