我刚刚开始使用 AWS 服务,更具体地说是云形成我正在遵循一些 AWS 教程,到目前为止一切顺利,但有一件事让我很困惑:一旦我生成模板,如下所示:
AWSTemplateFormatVersion: 2010-09-09
Resources:
Ec2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType:
Ref: InstanceTypeParameter1
ImageId: ami-07d02ee1eeb0c996c
Parameters:
InstanceTypeParameter1:
Type: String
Default: t2.micro
AllowedValues:
- t2.micro
- m1.small
- m1.large
Description: Choose the ec2 instance type
myKeyPair:
Description: Amazon EC2 Key Pair
Type: "AWS::EC2::KeyPair::KeyName"
上传模板后,点击下一个,我可以选择Amazon EC2 密钥对正如你在图片中看到的:
然后我转到 EC2 控制台,查看 CloudFromation 刚刚创建的实例,但无法使用 SSH 协议登录。正如您在图像
我想登录由 CloudFormation 创建的 EC2 实例,我认为使用 myKeyPair 参数:
myKeyPair:
Description: Amazon EC2 Key Pair
Type: "AWS::EC2::KeyPair::KeyName"
本来可以产生魔力,但实际上却没有。那么:我该怎么做呢?
答案1
好吧,我找到了解决办法:
如前所述,在 .yaml 中参数你需要要求用户选择一个钥匙与以下一起使用:
Parameters:
.........
myKeyPair:
Description: Amazon EC2 Key Pair
Type: "AWS::EC2::KeyPair::KeyName"
事实上,当我创建 Stack 时,网页提示要求我选择一个已保存的键:
但我没有把收集到的钥匙在里面参数部分资源部分...我需要做的只是在特性部分内部资源, 如下:
Parameters:
.........
myKeyPair:
Description: Amazon EC2 Key Pair
Type: "AWS::EC2::KeyPair::KeyName"
Resources:
.......
EC2Instance:
Type: AWS::EC2::Instance
Properties:
................
KeyName:
Ref: KeyName
................
这招成功了!!!