Buat, perbarui, dan hapus CloudFormation tumpukan dengan dan AWS CLI PowerShell - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat, perbarui, dan hapus CloudFormation tumpukan dengan dan AWS CLI PowerShell

Contoh baris perintah berikut menunjukkan bagaimana melakukan CloudFormation tindakan individu dengan AWS CLI dan PowerShell. Contoh-contoh ini hanya mencakup tindakan yang paling umum digunakan. Untuk daftar lengkap, lihat AWS CloudFormation APIReferensi.

Batalkan pembaruan tumpukan

Gunakan cancel-update-stack perintah untuk membatalkan pembaruan tumpukan. Untuk informasi selengkapnya, lihat Batalkan pembaruan tumpukan.

CLI
AWS CLI

Untuk membatalkan pembaruan tumpukan yang sedang berlangsung

cancel-update-stackPerintah berikut membatalkan pembaruan tumpukan pada myteststack tumpukan:

aws cloudformation cancel-update-stack --stack-name myteststack
PowerShell
Alat untuk PowerShell

Contoh 1: Membatalkan pembaruan pada tumpukan yang ditentukan.

Stop-CFNUpdateStack -StackName "myStack"
  • Untuk API detailnya, lihat CancelUpdateStackdi AWS Tools for PowerShell Referensi Cmdlet.

Terus mengembalikan pembaruan

Gunakan continue-update-rollback perintah untuk melanjutkan memutar kembali pembaruan. Untuk informasi selengkapnya, lihat Terus mengembalikan pembaruan.

CLI
AWS CLI

Untuk mencoba kembali rollback pembaruan

continue-update-rollbackContoh berikut melanjutkan operasi rollback dari pembaruan tumpukan yang sebelumnya gagal.

aws cloudformation continue-update-rollback \ --stack-name my-stack

Perintah ini tidak menghasilkan output.

PowerShell
Alat untuk PowerShell

Contoh 1: Melanjutkan rollback dari tumpukan bernama, yang seharusnya dalam status 'UPDATE_ ROLLBACK _FAILED'. Jika rollback lanjutan berhasil, tumpukan akan memasuki status 'UPDATE_ ROLLBACK _COMPLETE'.

Resume-CFNUpdateRollback -StackName "myStack"

Buat tumpukan

Gunakan create-stack perintah untuk membuat tumpukan. Anda harus memberikan nama tumpukan, lokasi templat yang valid, dan parameter masukan apa pun. Nama kunci parameter peka huruf besar/kecil. Jika Anda salah mengetik nama kunci parameter, CloudFormation tidak membuat tumpukan dan melaporkan bahwa template tidak berisi parameter itu.

Secara default, describe-stacks perintah mengembalikan nilai parameter. Untuk mencegah nilai parameter sensitif seperti kata sandi dikembalikan, sertakan NoEcho properti yang disetel ke TRUE dalam CloudFormation templat Anda.

penting

Menggunakan NoEcho atribut tidak menutupi informasi apa pun yang disimpan sebagai berikut:

  • Bagian Metadata template. CloudFormation tidak mengubah, memodifikasi, atau menyunting informasi apa pun yang Anda sertakan di Metadata bagian ini. Untuk informasi selengkapnya, lihat Metadata.

  • Bagian Outputs template. Untuk informasi selengkapnya, lihat Outputs.

  • MetadataAtribut definisi sumber daya. Untuk informasi selengkapnya, lihat Metadataatribut.

Kami sangat menyarankan Anda untuk tidak menggunakan mekanisme ini untuk memasukkan informasi sensitif, seperti kata sandi atau rahasia.

penting

Daripada menyematkan informasi sensitif secara langsung di CloudFormation template Anda, kami sarankan Anda menggunakan parameter dinamis dalam template tumpukan untuk mereferensikan informasi sensitif yang disimpan dan dikelola di luar CloudFormation, seperti di AWS Systems Manager Parameter Store atau AWS Secrets Manager.

Untuk informasi lebih lanjut, lihat praktik Jangan menanamkan kredensial dalam templat Anda terbaik.

Contoh berikut menunjukkan cara membuat tumpukan baru dengan nama, template, dan parameter input yang ditentukan.

CLI
AWS CLI

Untuk membuat AWS CloudFormation tumpukan

create-stacksPerintah berikut membuat tumpukan dengan nama myteststack menggunakan sampletemplate.json template:

aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=KeyPairName,ParameterValue=TestKey ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2

Output:

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }

Untuk informasi selengkapnya, lihat Tumpukan di Panduan AWS CloudFormation Pengguna.

  • Untuk API detailnya, lihat CreateStackdi Referensi AWS CLI Perintah.

PowerShell
Alat untuk PowerShell

Contoh 1: Membuat tumpukan baru dengan nama yang ditentukan. Template diurai dari konten yang disediakan dengan parameter kustomisasi ('PK1' dan 'PK2' mewakili nama parameter yang dideklarasikan dalam konten template, 'PV1' dan 'PV2' mewakili nilai untuk parameter tersebut. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'. Jika pembuatan tumpukan gagal, itu tidak akan digulung kembali.

New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) ` -DisableRollback $true

Contoh 2: Membuat tumpukan baru dengan nama yang ditentukan. Template diurai dari konten yang disediakan dengan parameter kustomisasi ('PK1' dan 'PK2' mewakili nama parameter yang dideklarasikan dalam konten template, 'PV1' dan 'PV2' mewakili nilai untuk parameter tersebut. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'. Jika pembuatan tumpukan gagal, itu akan digulung kembali.

$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p1.ParameterKey = "PK1" $p1.ParameterValue = "PV1" $p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p2.ParameterKey = "PK2" $p2.ParameterValue = "PV2" New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( $p1, $p2 ) ` -OnFailure "ROLLBACK"

Contoh 3: Membuat tumpukan baru dengan nama yang ditentukan. Template diperoleh dari Amazon S3 URL dengan parameter kustomisasi ('PK1' mewakili nama parameter yang dideklarasikan dalam konten template, 'PV1' mewakili nilai untuk parameter. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'. Jika pembuatan tumpukan gagal, itu akan digulung kembali (sama seperti menentukan - DisableRollback $false).

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Contoh 4: Membuat tumpukan baru dengan nama yang ditentukan. Template diperoleh dari Amazon S3 URL dengan parameter kustomisasi ('PK1' mewakili nama parameter yang dideklarasikan dalam konten template, 'PV1' mewakili nilai untuk parameter. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'. Jika pembuatan tumpukan gagal, itu akan digulung kembali (sama seperti menentukan - DisableRollback $false). Pemberitahuan yang ditentukan AENs akan menerima acara terkait tumpukan yang dipublikasikan.

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )
  • Untuk API detailnya, lihat CreateStackdi AWS Tools for PowerShell Referensi Cmdlet.

Atau, Anda dapat menentukan AWS Systems Manager lokasi file template.

AWS CLI

create-stackPerintah berikut membuat tumpukan dengan nama myteststack menggunakan AWS Systems Manager dokumen untuk templateURL.

aws cloudformation create-stack --stack-name myteststack \ --template-url "ssm-doc://arn:aws:ssm:us-east-1:123456789012:document/documentName"

Output:

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }

Buat tumpukan yang mencakup transformasi

Gunakan deploy perintah untuk membuat tumpukan yang mencakup transformasi.

Untuk membuat tumpukan dari template yang menyertakan transformasi, Anda harus menggunakan set perubahan. Alih-alih membuat set perubahan dan kemudian memulainya, gunakan deploy perintah untuk menggabungkan langkah-langkah ini menjadi satu perintah.

AWS CLI

deployPerintah berikut membuat tumpukan dengan nama, template, dan parameter input yang ditentukan.

aws cloudformation deploy --stack-name myteststack \ --template /path_to_template/my-template.json \ --parameter-overrides Key1=Value1 Key2=Value2

Hapus tumpukan

Gunakan delete-stack perintah untuk menghapus tumpukan. Untuk informasi selengkapnya, lihat Hapus tumpukan dari CloudFormation konsol.

CLI
AWS CLI

Untuk menghapus tumpukan

delete-stackContoh berikut menghapus tumpukan yang ditentukan.

aws cloudformation delete-stack \ --stack-name my-stack

Perintah ini tidak menghasilkan output.

  • Untuk API detailnya, lihat DeleteStackdi Referensi AWS CLI Perintah.

PowerShell
Alat untuk PowerShell

Contoh 1: Menghapus tumpukan yang ditentukan.

Remove-CFNStack -StackName "myStack"
  • Untuk API detailnya, lihat DeleteStackdi AWS Tools for PowerShell Referensi Cmdlet.

Jika penghapusan gagal dan mengembalikan DELETE_FAILED status, Anda dapat memilih untuk menghapus tumpukan dengan paksa menggunakan opsi. --deletion-mode Ini adalah nilai-nilai berikut yang dapat digunakan dengandeletion-mode:

  • STANDARD: Menghapus tumpukan secara normal. Ini adalah mode penghapusan default.

  • FORCE_DELETE_STACK: Menghapus tumpukan dan melewatkan semua sumber daya yang gagal dihapus.

AWS CLI

delete-stackCommand force berikut menghapus myteststack tumpukan menggunakan FORCE_DELETE_STACK nilai dengan deletion-mode parameter:

aws cloudformation delete-stack --stack-name myteststack \ --deletion-mode FORCE_DELETE_STACK

Perintah ini tidak menghasilkan output.

Setelah menggunakanFORCE_DELETE_STACK, Anda dapat menggunakan list-stack-resources perintah untuk membuat daftar sumber daya yang dilewati selama proses penghapusan tumpukan. Sumber daya yang dipertahankan akan menampilkan SKIPPED status DELETE _. Untuk informasi selengkapnya, lihat Daftar sumber daya tumpukan.

Jelaskan peristiwa tumpukan

Gunakan describe-stack-events perintah untuk menggambarkan peristiwa tumpukan. Untuk informasi selengkapnya, lihat Pantau kemajuan tumpukan.

CLI
AWS CLI

Untuk menggambarkan peristiwa tumpukan

describe-stack-eventsContoh berikut menampilkan 2 peristiwa terbaru untuk tumpukan tertentu.

aws cloudformation describe-stack-events \ --stack-name my-stack \ --max-items 2 { "StackEvents": [ { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4e1516d0-e4d6-xmpl-b94f-0a51958a168c", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.556Z", "ResourceStatus": "UPDATE_COMPLETE" }, { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4dd3c810-e4d6-xmpl-bade-0aaf8b31ab7a", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.127Z", "ResourceStatus": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" } ], "NextToken": "eyJOZXh0VG9XMPLiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" }
PowerShell
Alat untuk PowerShell

Contoh 1: Mengembalikan semua peristiwa terkait tumpukan untuk tumpukan tertentu.

Get-CFNStackEvent -StackName "myStack"

Contoh 2: Mengembalikan semua peristiwa terkait tumpukan untuk tumpukan tertentu menggunakan paging manual mulai dari token yang ditentukan. Token awal untuk halaman berikutnya diambil setelah setiap panggilan dengan $null menunjukkan tidak ada lagi peristiwa yang tersisa untuk diambil.

$nextToken = $null do { Get-CFNStack -StackName "myStack" -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)

Jelaskan sumber daya tumpukan

CLI
AWS CLI

Untuk mendapatkan informasi tentang sumber daya tumpukan

describe-stack-resourceContoh berikut menampilkan rincian untuk sumber daya bernama MyFunction dalam tumpukan tertentu.

aws cloudformation describe-stack-resource \ --stack-name MyStack \ --logical-resource-id MyFunction

Output:

{ "StackResourceDetail": { "StackName": "MyStack", "StackId": "arn:aws:cloudformation:us-east-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "MyFunction", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "Metadata": "{}", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } }
PowerShell
Alat untuk PowerShell

Contoh 1: Mengembalikan deskripsi sumber daya yang diidentifikasi dalam template yang terkait dengan tumpukan yang ditentukan oleh ID logis yDBInstance “M”.

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"

Jelaskan sumber daya tumpukan

CLI
AWS CLI

Untuk mendapatkan informasi tentang sumber daya tumpukan

describe-stack-resourcesContoh berikut menampilkan rincian untuk sumber daya dalam tumpukan tertentu.

aws cloudformation describe-stack-resources \ --stack-name my-stack

Output:

{ "StackResources": [ { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "Timestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "Timestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }
PowerShell
Alat untuk PowerShell

Contoh 1: Mengembalikan deskripsi AWS sumber daya hingga 100 sumber daya yang terkait dengan tumpukan yang ditentukan. Untuk mendapatkan rincian semua sumber daya yang terkait dengan tumpukan gunakan Get-CFNStackResourceSummary, yang juga mendukung paging manual hasil.

Get-CFNStackResourceList -StackName "myStack"

Contoh 2: Mengembalikan deskripsi EC2 instance Amazon yang diidentifikasi dalam template yang terkait dengan tumpukan yang ditentukan oleh ID logis “Ec2Instance”.

Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"

Contoh 3: Mengembalikan deskripsi hingga 100 sumber daya yang terkait dengan tumpukan yang berisi instance Amazon yang diidentifikasi oleh ID EC2 instance “i-123456". Untuk mendapatkan rincian semua sumber daya yang terkait dengan tumpukan gunakan Get-CFNStackResourceSummary, yang juga mendukung paging manual hasil.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Contoh 4: Mengembalikan deskripsi EC2 instance Amazon yang diidentifikasi oleh ID logis “Ec2Instance” dalam template untuk tumpukan. Tumpukan diidentifikasi menggunakan ID sumber daya fisik dari sumber daya yang dikandungnya, dalam hal ini juga instance Amazon dengan ID EC2 instance “i-123456". Sumber daya fisik yang berbeda juga dapat digunakan untuk mengidentifikasi tumpukan tergantung pada konten template, misalnya bucket Amazon S3.

Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"

Jelaskan tumpukan

CLI
AWS CLI

Untuk menggambarkan AWS CloudFormation tumpukan

describe-stacksPerintah berikut menunjukkan informasi ringkasan untuk myteststack tumpukan:

aws cloudformation describe-stacks --stack-name myteststack

Output:

{ "Stacks": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Tags": [], "Outputs": [ { "Description": "Name of S3 bucket to hold website content", "OutputKey": "BucketName", "OutputValue": "myteststack-s3bucket-jssofi1zie2w" } ], "StackStatusReason": null, "CreationTime": "2013-08-23T01:02:15.422Z", "Capabilities": [], "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE", "DisableRollback": false } ] }

Untuk informasi selengkapnya, lihat Tumpukan di Panduan AWS CloudFormation Pengguna.

  • Untuk API detailnya, lihat DescribeStacksdi Referensi AWS CLI Perintah.

Go
SDKuntuk Go V2
catatan

Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS.

// StackOutputs defines a map of outputs from a specific stack. type StackOutputs map[string]string type CloudFormationActions struct { CfnClient *cloudformation.Client } // GetOutputs gets the outputs from a CloudFormation stack and puts them into a structured format. func (actor CloudFormationActions) GetOutputs(stackName string) StackOutputs { output, err := actor.CfnClient.DescribeStacks(context.TODO(), &cloudformation.DescribeStacksInput{ StackName: aws.String(stackName), }) if err != nil || len(output.Stacks) == 0 { log.Panicf("Couldn't find a CloudFormation stack named %v. Here's why: %v\n", stackName, err) } stackOutputs := StackOutputs{} for _, out := range output.Stacks[0].Outputs { stackOutputs[*out.OutputKey] = *out.OutputValue } return stackOutputs }
  • Untuk API detailnya, lihat DescribeStacksdi AWS SDK for Go APIReferensi.

PowerShell
Alat untuk PowerShell

Contoh 1: Mengembalikan koleksi instance Stack yang menjelaskan semua tumpukan pengguna.

Get-CFNStack

Contoh 2: Mengembalikan instance Stack yang menjelaskan tumpukan yang ditentukan

Get-CFNStack -StackName "myStack"

Contoh 3: Mengembalikan koleksi instance Stack yang menjelaskan semua tumpukan pengguna menggunakan paging manual. Token awal untuk halaman berikutnya diambil setelah setiap panggilan dengan $null menunjukkan tidak ada detail lebih lanjut yang tersisa untuk diambil.

$nextToken = $null do { Get-CFNStack -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Untuk API detailnya, lihat DescribeStacksdi AWS Tools for PowerShell Referensi Cmdlet.

Dapatkan template

CLI
AWS CLI

Untuk melihat badan template untuk AWS CloudFormation tumpukan

get-templatePerintah berikut menunjukkan template untuk myteststack tumpukan:

aws cloudformation get-template --stack-name myteststack

Output:

{ "TemplateBody": { "AWSTemplateFormatVersion": "2010-09-09", "Outputs": { "BucketName": { "Description": "Name of S3 bucket to hold website content", "Value": { "Ref": "S3Bucket" } } }, "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead" } } } } }
  • Untuk API detailnya, lihat GetTemplatedi Referensi AWS CLI Perintah.

PowerShell
Alat untuk PowerShell

Contoh 1: Mengembalikan template yang terkait dengan tumpukan tertentu.

Get-CFNTemplate -StackName "myStack"
  • Untuk API detailnya, lihat GetTemplatedi AWS Tools for PowerShell Referensi Cmdlet.

Daftar sumber daya tumpukan

CLI
AWS CLI

Untuk membuat daftar sumber daya dalam tumpukan

Perintah berikut menampilkan daftar sumber daya dalam tumpukan yang ditentukan.

aws cloudformation list-stack-resources \ --stack-name my-stack

Output:

{ "StackResourceSummaries": [ { "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "LastUpdatedTimestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "LastUpdatedTimestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }
PowerShell
Alat untuk PowerShell

Contoh 1: Mengembalikan deskripsi dari semua sumber daya yang terkait dengan tumpukan tertentu.

Get-CFNStackResourceSummary -StackName "myStack"

Contoh 2: Mengembalikan deskripsi semua sumber daya yang terkait dengan tumpukan tertentu menggunakan paging manual hasil. Token awal untuk halaman berikutnya diambil setelah setiap panggilan dengan $null menunjukkan tidak ada detail lebih lanjut yang tersisa untuk diambil.

$nextToken = $null do { Get-CFNStackResourceSummary -StackName "myStack" -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Untuk API detailnya, lihat ListStackResourcesdi AWS Tools for PowerShell Referensi Cmdlet.

Daftar tumpukan

Gunakan list-stacks perintah untuk membuat daftar tumpukan. Untuk daftar hanya tumpukan dengan kode status yang ditentukan, sertakan --stack-status-filter opsi. Anda dapat menentukan satu atau lebih kode status tumpukan untuk --stack-status-filter opsi tersebut. Untuk informasi selengkapnya, lihat Kode status tumpukan.

CLI
AWS CLI

Untuk daftar AWS CloudFormation tumpukan

list-stacksPerintah berikut menunjukkan ringkasan semua tumpukan yang memiliki statusCREATE_COMPLETE:

aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE

Output:

[ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "TemplateDescription": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "StackStatusReason": null, "CreationTime": "2013-08-26T03:27:10.190Z", "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE" } ]
  • Untuk API detailnya, lihat ListStacksdi Referensi AWS CLI Perintah.

PowerShell
Alat untuk PowerShell

Contoh 1: Mengembalikan informasi ringkasan untuk semua tumpukan.

Get-CFNStackSummary

Contoh 2: Mengembalikan informasi ringkasan untuk semua tumpukan yang sedang dibuat.

Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"

Contoh 3: Mengembalikan informasi ringkasan untuk semua tumpukan yang sedang dibuat atau diperbarui.

Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")

Contoh 4: Mengembalikan informasi ringkasan untuk semua tumpukan yang saat ini sedang dibuat atau diperbarui menggunakan paging manual hasil. Token awal untuk halaman berikutnya diambil setelah setiap panggilan dengan $null menunjukkan tidak ada detail lebih lanjut yang tersisa untuk diambil.

$nextToken = $null do { Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS") -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Untuk API detailnya, lihat ListStacksdi AWS Tools for PowerShell Referensi Cmdlet.

Perbarui tumpukan

Gunakan update-stack perintah untuk memperbarui tumpukan. Untuk informasi selengkapnya, lihat Perbarui tumpukan secara langsung.

CLI
AWS CLI

Untuk memperbarui AWS CloudFormation tumpukan

update-stackPerintah berikut memperbarui template dan parameter input untuk mystack tumpukan:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2

update-stackPerintah berikut memperbarui hanya nilai SubnetIDs parameter untuk mystack tumpukan. Jika Anda tidak menentukan nilai parameter, nilai default yang ditentukan dalam template digunakan:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2

update-stackPerintah berikut menambahkan dua topik notifikasi mystack tumpukan ke tumpukan:

aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1" "arn:aws:sns:us-east-1:123456789012:mytopic2"

Untuk informasi selengkapnya, lihat AWS CloudFormation tumpukan pembaruan di Panduan AWS CloudFormation Pengguna.

  • Untuk API detailnya, lihat UpdateStackdi Referensi AWS CLI Perintah.

PowerShell
Alat untuk PowerShell

Contoh 1: Memperbarui tumpukan 'myStack' dengan template dan parameter kustomisasi yang ditentukan. 'PK1' mewakili nama parameter yang dideklarasikan dalam template dan 'PV1' mewakili nilainya. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'.

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Contoh 2: Memperbarui tumpukan 'myStack' dengan template dan parameter kustomisasi yang ditentukan. 'PK1' dan 'PK2' mewakili nama parameter yang dideklarasikan dalam templat, 'PV1' dan 'PV2' mewakili nilai yang diminta. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'.

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Contoh 3: Memperbarui tumpukan 'myStack' dengan template dan parameter kustomisasi yang ditentukan. 'PK1' mewakili nama parameter yang dideklarasikan dalam template dan 'PV2' mewakili nilainya. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'.

Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }

Contoh 4: Memperbarui tumpukan 'myStack' dengan templat yang ditentukan, diperoleh dari Amazon S3, dan parameter penyesuaian. 'PK1' dan 'PK2' mewakili nama parameter yang dideklarasikan dalam templat, 'PV1' dan 'PV2' mewakili nilai yang diminta. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'.

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Contoh 5: Memperbarui tumpukan myStack '', yang diasumsikan dalam contoh ini berisi IAM sumber daya, dengan templat yang ditentukan, diperoleh dari Amazon S3, dan parameter penyesuaian. 'PK1' dan 'PK2' mewakili nama parameter yang dideklarasikan dalam templat, 'PV1' dan 'PV2' mewakili nilai yang diminta. Parameter kustomisasi juga dapat ditentukan menggunakan 'Kunci' dan 'Nilai' alih-alih 'ParameterKey' dan 'ParameterValue'. Tumpukan yang berisi IAM sumber daya mengharuskan Anda untuk menentukan parameter -Capabilities IAM "CAPABILITY_" jika tidak pembaruan akan gagal dengan kesalahan InsufficientCapabilities ''.

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) ` -Capabilities "CAPABILITY_IAM"
  • Untuk API detailnya, lihat UpdateStackdi AWS Tools for PowerShell Referensi Cmdlet.

Validasi template Anda

Gunakan validate-template perintah untuk memeriksa file template Anda untuk kesalahan sintaks.

Selama validasi, periksa CloudFormation terlebih dahulu apakah template tersebut validJSON. Jika tidak, CloudFormation periksa apakah template tersebut validYAML. Jika kedua pemeriksaan gagal, CloudFormation mengembalikan kesalahan validasi template.

CLI
AWS CLI

Untuk memvalidasi template AWS CloudFormation

validate-templatePerintah berikut memvalidasi sampletemplate.json template:

aws cloudformation validate-template --template-body file://sampletemplate.json

Output:

{ "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters": [], "Capabilities": [] }

Untuk informasi selengkapnya, lihat Bekerja dengan AWS CloudFormation Template di Panduan AWS CloudFormation Pengguna.

PowerShell
Alat untuk PowerShell

Contoh 1: Memvalidasi konten template yang ditentukan. Output merinci kemampuan, deskripsi, dan parameter template.

Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"

Contoh 2: Memvalidasi template tertentu yang diakses melalui Amazon URL S3. Output merinci kemampuan, deskripsi, dan parameter template.

Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template
  • Untuk API detailnya, lihat ValidateTemplatedi AWS Tools for PowerShell Referensi Cmdlet.

Berikut ini adalah contoh respon yang menghasilkan kesalahan validasi.

{ "ResponseMetadata": { "RequestId": "4ae33ec0-1988-11e3-818b-e15a6df955cd" }, "Errors": [ { "Message": "Template format error: JSON not well-formed. (line 11, column 8)", "Code": "ValidationError", "Type": "Sender" } ], "Capabilities": [], "Parameters": [] } A client error (ValidationError) occurred: Template format error: JSON not well-formed. (line 11, column 8)
catatan

validate-templatePerintah ini dirancang untuk memeriksa hanya sintaks template Anda. Itu tidak memastikan bahwa nilai properti yang telah Anda tentukan untuk sumber daya valid untuk sumber daya tersebut. Juga tidak menentukan jumlah sumber daya yang akan ada saat tumpukan dibuat.

Untuk memeriksa validitas operasional, Anda perlu mencoba membuat tumpukan. Tidak ada kotak pasir atau area pengujian untuk AWS CloudFormation tumpukan, jadi Anda dikenakan biaya untuk sumber daya yang Anda buat selama pengujian.

Ketersediaan contoh

Tidak dapat menemukan apa yang Anda butuhkan? Minta contoh baru dengan menggunakan tautan Berikan umpan balik di bagian bawah halaman ini.