Не удалось создать / обновить стек в AWS
Я написал код как
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
sam-app
Sample SAM Template for sam-app
Globals:
Function:
Timeout: 300
Api:
Cors:
AllowHeaders: "'content-type, authorization'"
AllowOrigin: "'*'"
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world
Handler: app.lambda_handler
Runtime: nodejs8.10
Environment:
Variables:
PARAM1: VALUE
Events:
HelloWorld:
Type: Api
Properties:
Path: /hello
Method: get
ApiGateway:
Type: AWS::Serverless::Api
Properties:
StageName: prod
DefinitionBody:
swagger: "2.0"
info:
title:
Ref: AWS::StackName
description: My API that uses custom authorizer
version: 1.0.0
paths:
/hello:
get:
consumes: application/json
produces: application/json
Я хочу развернуть этот код в облаке как
aws cloudformation deploy --template-file output.yaml --stack-name stack1 --parameter-overrides EnvParameter=prod --capabilities CAPABILITY_IAM
Тогда это говорит
Failed to create/update the stack. Run the following command
to fetch the list of events leading up to the failure
aws cloudformation describe-stack-events --stack-name stack1
Когда я комментирую ApiGateway
код, он работает нормально. Я думаю, что ошибка может быть в нижней части кода.
ApiGateway:
Type: AWS::Serverless::Api
Properties:
StageName: prod
DefinitionBody:
swagger: "2.0"
info:
title: something
Ref: AWS::StackName
description: My API that uses custom authorizer
version: 1.0.0
paths:
/hello:
get:
consumes: application/json
produces: application/json
Пожалуйста, помогите мне решить эту проблему.
Спасибо...
2 ответа
Это может быть поздно, но проблема, которая приводила к сбою моей облачной информации, заключалась в том, что моя программная учетная запись пользователя, создающая облачную форму, не имела разрешений iam:CreateRole. Обновление политик для этого пользователя устранило проблему.
Эта ошибка может возникнуть по нескольким причинам. Лишь немногие случаи среди них могут быть
- Отсутствие правильных разрешений.
- Попытка создать ресурс, который уже присутствует в вашей учетной записи AWS.
Как устранить такие проблемы.
- Перейдите в CloudFormation > Стеки > <ваше_имя_стека>.
- Внутри этого перейдите в «События». Здесь вы можете просмотреть имя вашего ресурса и причину статуса .
- Внутри причины статуса вы можете просмотреть ошибку.
- В зависимости от ошибки попытайтесь устранить ее соответствующим образом.
Вы можете использовать следующую команду для проверки ошибок. Это зарегистрирует все детали состояния вашего ресурса.
aws cloudformation describe-stack-events --stack-name <your_stack_name>
По вышеупомянутой причине выполните следующие действия.
Отсутствие правильных разрешений.
- Обновите политики ролей IAM . Часто у нас нет правильного разрешения на создание ресурсов с помощью Cloud Formation, и в конечном итоге мы сталкиваемся с этой ошибкой.
Попытка создать ресурс, который уже присутствует в вашей учетной записи AWS.
- Это происходит, когда мы пытаемся снова создать ресурс с тем же именем. Либо удалите предыдущий ресурс вручную с помощью консоли AWS, либо попробуйте дать уникальное имя, чтобы избежать подобных ошибок.
Это было несколько причин и стратегий отладки для решения этой проблемы.