[ aws . cloudformation ]
create-change-set
Описание
Создает список изменений, которые будут применены к стеку, чтобы вы могли проверить изменения перед их выполнением. Вы можете создать набор изменений для стека, который не существует, или для существующего стека. Если вы создаете набор изменений для стека, который не существует, набор изменений отображает все ресурсы, которые CloudFormation создаст. Если вы создаете набор изменений для существующего стека, CloudFormation сравнивает информацию стека с информацией, которую вы предоставляете в наборе изменений, и перечисляет различия. Используйте наборы изменений, чтобы понять, какие ресурсы CloudFormation создаст или изменит, и как он изменит ресурсы в существующем стеке, прежде чем вы создадите или обновите стек.
Чтобы создать набор изменений для стека, который не существует, для параметра ChangeSetType укажите CREATE . Чтобы создать набор изменений для существующего стека, укажите UPDATE для параметра ChangeSetType. Чтобы создать набор изменений для операции импорта, укажите IMPORT для параметра ChangeSetType. После успешного выполнения вызова CreateChangeSet CloudFormation начинает создание набора изменений. Чтобы проверить статус набора изменений или просмотреть его, используйте действие DescribeChangeSet.
Когда вы будете удовлетворены изменениями, которые внесет набор изменений, выполните набор изменений, используя действие ExecuteChangeSet. CloudFormation не внесет изменения до тех пор, пока вы не выполните набор изменений.
Чтобы создать набор изменений для всей иерархии стеков, установите IncludeNestedStacks в значение True.
См. также: AWS API Documentation
Синтаксис
create-change-set
--stack-name <value>
[--template-body <value>]
[--template-url <value>]
[--use-previous-template | --no-use-previous-template]
[--parameters <value>]
[--capabilities <value>]
[--resource-types <value>]
[--role-arn <value>]
[--rollback-configuration <value>]
[--notification-arns <value>]
[--tags <value>]
--change-set-name <value>
[--client-token <value>]
[--description <value>]
[--change-set-type <value>]
[--resources-to-import<value>]
[--include-nested-stacks | --no-include-nested-stacks]
[--on-stack-failure <value>]
[--import-existing-resources | --no-import-existing-resources]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--stack-name (строка)
--template-body (строка)
Структура, содержащая тело изменённого шаблона, с минимальной длиной 1 байт и максимальной 51 200 байт. CloudFormation генерирует набор изменений, сравнивая этот шаблон с шаблоном стека, который вы указали.
Условие: вы должны указать только TemplateBody или TemplateURL.
--template-url (строка)
URL-адрес файла, содержащего изменённый шаблон. URL-адрес должен указывать на шаблон (максимальный размер: 1 МБ), расположенный в ведре Amazon S3 или документе Systems Manager. CloudFormation генерирует набор изменений, сравнивая этот шаблон со стеком, который вы указали. Путь к ведру Amazon S3 должен начинаться с https://.
Условие: вы должны указать только TemplateBody или TemplateURL.
--use-previous-template | --no-use-previous-template (логическое)
--parameters (список)
Список структур Parameter, определяющих входные параметры для набора изменений. Дополнительную информацию см. в разделе Тип данных параметра.
(структура)
Тип данных параметра.
ParameterKey -> (строка)
ParameterValue -> (строка)
UsePreviousValue -> (логическое)
true, не указывайте значение параметра.ResolvedValue -> (строка)
Сокращённый синтаксис:
ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ...
Синтаксис JSON:
[
{
"ParameterKey": "string",
"ParameterValue": "string",
"UsePreviousValue": true|false,
"ResolvedValue": "string"
}
...
]
--capabilities (список)
В некоторых случаях необходимо явно указать, что шаблон стека содержит определенные возможности, чтобы CloudFormation смог создать стек.
-
CAPABILITY_IAMиCAPABILITY_NAMED_IAMНекоторые шаблоны стеков могут содержать ресурсы, которые могут повлиять на разрешения в вашей учетной записи Amazon Web Services, например, создавая новых пользователей IAM. Для таких стеков вы должны явно указать это, указав одну из этих возможностей. Для следующих ресурсов IAM необходимо указать либо возможностьCAPABILITY_IAM, либоCAPABILITY_NAMED_IAM.- Если у вас есть ресурсы IAM, вы можете указать любую из возможностей.
- Если у вас есть ресурсы IAM с пользовательскими именами, вы обязаны указать
CAPABILITY_NAMED_IAM. - Если вы не укажете ни одну из этих возможностей, CloudFormation вернёт ошибку
InsufficientCapabilities.
Если ваш шаблон стека содержит эти ресурсы, мы рекомендуем вам проверить все разрешения, связанные с ними, и изменить их разрешения, если это необходимо.
- AWS::IAM::AccessKey
- AWS::IAM::Group
- AWS::IAM::InstanceProfile
- AWS::IAM::ManagedPolicy
- AWS::IAM::Policy
- AWS::IAM::Role
- AWS::IAM::User
- AWS::IAM::UserToGroupAddition
Дополнительную информацию см. в разделе «Подтверждение ресурсов IAM в шаблонах CloudFormation».
-
CAPABILITY_AUTO_EXPANDНекоторые шаблоны содержат макросы. Макросы выполняют пользовательскую обработку шаблонов, это может включать простые действия, такие как операции «найти и заменить», а также расширенные преобразования целых шаблонов. По этой причине пользователи обычно создают набор изменений из обработанного шаблона, чтобы они могли просмотреть изменения, полученные от макросов, прежде чем фактически создавать стек. Если ваш шаблон стека содержит один или несколько макросов и вы хотите создать стек непосредственно из обработанного шаблона, не просматривая сначала полученные изменения в наборе изменений, вы должны подтвердить эту возможность. Это включает преобразования AWS::Include и AWS::Serverless, которые являются макросами, размещёнными в CloudFormation.
Примечание
Дополнительную информацию о макросах см. в разделе «Выполнение пользовательской обработки шаблонов CloudFormation с макросами шаблонов».
Примечание
Только один из параметровCapabilities и ResourceType может быть указан.(строка)
Синтаксис:
"string" "string" ...
Where valid values are:
CAPABILITY_IAM
CAPABILITY_NAMED_IAM
CAPABILITY_AUTO_EXPAND
--resource-types (список)
Типы ресурсов шаблона, с которыми у вас есть разрешения для работы, если вы выполните этот набор изменений, такие как AWS::EC2::Instance, AWS::EC2::* или Custom::MyCustomInstance.
Если список типов ресурсов не включает тип ресурса, который вы обновляете, обновление стека завершится с ошибкой. По умолчанию CloudFormation предоставляет разрешения на все типы ресурсов. IAM использует этот параметр для ключей условий в политиках IAM для CloudFormation. Дополнительную информацию см. в разделе «Управление доступом с помощью управления идентификацией и доступом» в руководстве пользователя CloudFormation.
Примечание
Только один из параметровCapabilities и ResourceType может быть указан.(строка)
Синтаксис:
"string" "string" ...
--role-arn (строка)
Amazon Resource Name (ARN) роли IAM, которую CloudFormation использует при выполнении набора изменений. CloudFormation использует данные учетных данных роли для совершения вызовов от вашего имени. CloudFormation использует эту роль для всех будущих операций со стеком. При условии, что у пользователей есть разрешения на работу со стеком, CloudFormation использует эту роль, даже если у пользователей нет разрешений на её передачу. Убедитесь, что роль предоставляет минимальные разрешения.
Если вы не укажете значение, CloudFormation использует роль, которая была ранее связана со стеком. Если роль недоступна, CloudFormation использует временную сессию, сгенерированную из данных учетных данных вашего пользователя.
--rollback-configuration (структура)
Триггеры отката для CloudFormation для мониторинга во время создания и обновления стеков и в течение указанного периода мониторинга после этого.
RollbackTriggers -> (список)
Триггеры для мониторинга во время создания или обновления стека.
По умолчанию CloudFormation сохраняет триггеры отката, указанные для стека, и применяет их к любым последующим операциям обновления для стека, если вы не укажете иначе. Если вы укажете триггеры отката для этого параметра, эти триггеры заменят любой предыдущий список триггеров, ранее указанный для стека. Это означает:
- Чтобы использовать триггеры отката, ранее указанные для этого стека, если они есть, не указывайте этот параметр.
- Чтобы указать новые или обновлённые триггеры отката, вы должны указать все триггеры, которые вы хотите использовать для этого стека, даже триггеры, которые вы указали ранее (например, при создании стека или во время предыдущего обновления стека). Любые триггеры, которых нет в обновлённом списке триггеров, больше не применяются к стеку.
- Чтобы удалить все текущие триггеры, укажите для этого параметра пустой список.
Если указанный триггер отсутствует, вся операция стека завершается с ошибкой и отменяется.
(структура)
Триггер отката, который CloudFormation отслеживает во время создания и обновления стеков. Если любой из указанных вами датчиков переходит в состояние ALARM во время операции стека или в течение указанного периода мониторинга после этого, CloudFormation отменяет всю операцию стека.
Arn -> (строка)
Amazon Resource Name (ARN) триггера отката.
Если указанный триггер отсутствует, вся операция стека завершается с ошибкой и отменяется.
Type -> (строка)
MonitoringTimeInMinutes -> (целое число)
Время в минутах, в течение которого CloudFormation должен отслеживать все триггеры отката после того, как операция создания или обновления стека развернёт все необходимые ресурсы.
По умолчанию 0 минут.
Если вы укажете период мониторинга, но не укажете триггеры отката, CloudFormation всё равно подождёт указанный период времени, прежде чем очистить старые ресурсы после операций обновления. Вы можете использовать этот период мониторинга для выполнения любого ручного валидирования стека и вручную отменить создание или обновление стека (например, с помощью CancelUpdateStack), если это необходимо.
Если вы укажете 0 для этого параметра, CloudFormation всё равно отслеживает указанные триггеры отката во время создания и обновления стеков. Затем, для операций обновления, он начинает удалять старые ресурсы сразу после завершения операции.
Сокращённый синтаксис:
RollbackTriggers=[{Arn=string,Type=string},{Arn=string,Type=string}],MonitoringTimeInMinutes=integer
Синтаксис JSON:
{
"RollbackTriggers": [
{
"Arn": "string",
"Type": "string"
}
...
],
"MonitoringTimeInMinutes": integer
}
--notification-arns (список)
Amazon Resource Names (ARN) тем Amazon SNS, которые CloudFormation связывает со стеком. Чтобы удалить все связанные темы уведомлений, укажите пустой список.
(строка)
Синтаксис:
"string" "string" ...
--tags (список)
Ключ-значение для связывания со стеком. CloudFormation также распространяет эти теги на ресурсы в стеке. Вы можете указать не более 50 тегов.
(структура)
Тип тега позволяет указать пару ключ-значение, которая может использоваться для хранения информации о стеке CloudFormation.
Key -> (строка)
aws:.Value -> (строка)
Сокращённый синтаксис:
Key=string,Value=string ...
Синтаксис JSON:
[
{
"Key": "string",
"Value": "string"
}
...
]
--change-set-name (строка)
Имя набора изменений. Имя должно быть уникальным среди всех наборов изменений, связанных с указанным стеком.
Имя набора изменений может содержать только буквенно-цифровые символы, регистрозависимые символы и дефисы. Оно должно начинаться с буквы и не должно превышать 128 символов.
--client-token (строка)
CreateChangeSet. Укажите этот токен, если планируете повторные запросы, чтобы CloudFormation знал, что вы не пытаетесь создать другой набор изменений с тем же именем. Вы можете повторять запросы CreateChangeSet, чтобы убедиться, что CloudFormation их успешно получил.--description (строка)
--change-set-type (строка)
Тип операции набора изменений. Чтобы создать набор изменений для нового стека, укажите CREATE. Чтобы создать набор изменений для существующего стека, укажите UPDATE. Чтобы создать набор изменений для операции импорта, укажите IMPORT.
Если вы создаёте набор изменений для нового стека, CloudFormation создаст стек с уникальным ID, но без шаблона или ресурсов. Стек будет в состоянии REVIEW_IN_PROGRESS до тех пор, пока вы не выполните набор изменений.
По умолчанию CloudFormation указывает UPDATE. Вы не можете использовать тип UPDATE для создания набора изменений для нового стека или тип CREATE для создания набора изменений для существующего стека.
Возможные значения:
CREATEUPDATEIMPORT
--resources-to-import (список)
Ресурсы для импорта в ваш стек.
(структура)
Описание целевого ресурса операции импорта.
ResourceType -> (строка)
AWS::S3::Bucket. Список поддерживаемых типов ресурсов см. в разделе Поддержка типов ресурсов для импорта и обнаружения отклонений в руководстве пользователя CloudFormation.LogicalResourceId -> (строка)
ResourceIdentifier -> (массив)
Пара ключ-значение, определяющая целевой ресурс. Ключ — это свойство идентификатора (например, BucketName для ресурсов AWS::S3::Bucket), а значение — фактическое значение свойства (например, MyS3Bucket).
key -> (строка)
value -> (строка)
Краткая синтаксическая запись:
ResourceType=string,LogicalResourceId=string,ResourceIdentifier={KeyName1=string,KeyName2=string} ...
Синтаксис JSON:
[
{
"ResourceType": "string",
"LogicalResourceId": "string",
"ResourceIdentifier": {"string": "string"
...}
}
...
]
--include-nested-stacks | --no-include-nested-stacks (логическое значение)
False. Чтобы включить вложенные наборы в набор изменений, укажите True.--on-stack-failure (строка)
DisableRollback операции API ExecuteChangeSet не должен быть указан. Он должен быть одним из этих значений:-
DELETE— Удаляет набор изменений, если создание стека завершилось ошибкой. Это допустимо только при значении параметраChangeSetType, равномCREATE. Если удаление стека завершилось ошибкой, состояние стека —DELETE_FAILED. -
DO_NOTHING— при ошибке создания стека ничего не делать. Это эквивалентно указаниюtrueдля параметраDisableRollbackоперации API ExecuteChangeSet. -
ROLLBACK— при ошибке создания стека откатить стек. Это эквивалентно указаниюfalseдля параметраDisableRollbackоперации API ExecuteChangeSet.
Для вложенных стеков, когда параметр OnStackFailure для набора изменений родительского стека установлен в значение DELETE, любая ошибка в дочернем стеке приведет к ошибке создания родительского стека и удалению всех стеков.
Возможные значения:
DO_NOTHINGROLLBACKDELETE
--import-existing-resources | --no-import-existing-resources (логическое значение)
Указывает, импортирует ли набор изменений ресурсы, которые уже существуют.
Примечание
Этот параметр может импортировать только ресурсы, имеющие пользовательские имена в шаблонах. Дополнительную информацию см. в разделе тип имени в руководстве пользователя CloudFormation. Для импорта ресурсов, которые не поддерживают пользовательские имена, такие как экземпляры EC2, используйте функцию импорта ресурсов. Дополнительную информацию см. в разделе Импорт ресурсов Amazon Web Services в стек CloudFormation с помощью функции импорта ресурсов в руководстве пользователя CloudFormation.--cli-input-json | --cli-input-yaml (строка) Читает аргументы из предоставленной JSON-строки. JSON-строка соответствует формату, предоставленному --generate-cli-skeleton. Если другие аргументы предоставлены в командной строке, эти значения переопределят значения, предоставленные в JSON. Невозможно передавать произвольные двоичные значения с помощью значения, предоставленного в JSON, так как строка будет воспринята буквально. Это не может быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса API. Если предоставлено значение без значения или значение input, выводится пример JSON-ввода, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, он выведет пример YAML-ввода, который можно использовать с --cli-input-yaml. При предоставлении значения output, он валидирует входные данные команды и возвращает пример JSON-вывода для этой команды. Сгенерированный JSON-скелет нестабилен между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.
Глобальные параметры
--debug (логическое значение)
Включить отладовую запись в журнал.
--endpoint-url (строка)
Переопределить URL по умолчанию команды заданным URL.
--no-verify-ssl (логическое значение)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет поведение проверки сертификатов SSL по умолчанию.
--no-paginate (логическое значение)
Отключить автоматическую постраничность. Если автоматическая постраничность отключена, AWS CLI сделает только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования вывода команды.
- json
- text
- таблица
- yaml
- yaml-поток
--query (строка)
Запрос JMESPath для использования при фильтрации данных ответа.
--profile (строка)
Использовать определенный профиль из файла учетных данных.
--region (строка)
Используемый регион. Переопределяет настройки конфигурации/окружения.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/выключить цветной вывод.
- вкл
- выкл
- авто
--no-sign-request (логическое значение)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.
--ca-bundle (строка)
Файл-сборка сертификата CA для использования при проверке сертификатов SSL. Переопределяет настройки конфигурации/окружения.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию — 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию — 60 секунд.
--cli-binary-format (строка)
Стиль форматирования для использования для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как base64-кодированная строка. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI версии 1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, соответствующего двоичному блоку, fileb:// всегда будет обрабатываться как двоичное и использовать содержимое файла напрямую независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (логическое значение)
Отключить вывод пейджера CLI.
--cli-auto-prompt (логическое значение)
Автоматически запрашивать параметры ввода CLI.
--no-cli-auto-prompt (логическое значение)
Отключить автоматическое запрошение параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве «Начало работы» в руководстве пользователя AWS CLI.
Если не указано иное, во всех примерах используются правила цитирования Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки терминала. См. раздел Использование кавычек со строками в руководстве пользователя AWS CLI.
Создание набора изменений
Следующий пример create-change-set создает набор изменений с возможностью CAPABILITY_IAM. Файл template.yaml — это шаблон AWS CloudFormation в текущей папке, определяющий стек, включающий ресурсы IAM.
aws cloudformation create-change-set \
--stack-name my-application \
--change-set-name my-change-set \
--template-body file://template.yaml \
--capabilities CAPABILITY_IAM
Вывод:
{
"Id": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-change-set/bc9555ba-a949-xmpl-bfb8-f41d04ec5784",
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-application/d0a825a0-e4cd-xmpl-b9fb-061c69e99204"
}
Вывод
Id -> (строка)
StackId -> (строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.