У меня есть VPC, который я создал в консоли AWS.По сути, я хотел бы создать сценарий Python, который обозначает VPC и несколько других аргументов CLI, используя click.Но одна часть кода продолжает нарушаться, когда я создаю группу безопасности.Он жалуется, что идентификатор VPC не существует, когда он существует:
@click.command()
@click.option('--ami', help='What AWS AMI are you using?')
@click.option('--instancetype', help='AWS EC2 instance type')
@click.option('--vpc', help='VPC ID')
@click.option('--isweb',default=True,type=bool,help='Is this a web server')
@click.pass_context
def build(ctx,ami,instancetype,vpc,isweb):
""" Will build out the EC2 instance """
log.info("Building EC2...")
log.info("Collecting Information....")
log.info("AMI: " + ami)
log.info("Instance Type: " + instancetype)
log.info("VPC ID: " + vpc)
log.info("Is this a web server: " + str(isweb))
if isweb:
log.info("Spinning up Web Server")
log.info("Reading from Configuration file")
config = configparser.RawConfigParser()
config_path = os.getcwd() + '/config.txt'
config.read(config_path)
log.info("Reading from config file" + config_path)
details_dict = dict(config.items('builder'))
access_key = config.get('builder','aws_access_key_id')
secret_key = config.get('builder','aws_secret_access_key')
region = config.get('builder', 'region')
ec2 = boto3.resource('ec2', aws_access_key_id=access_key, aws_secret_access_key=secret_key, region_name=region)
if ec2:
log.info("AWS Session Created")
sec_group = ec2.create_security_group(
GroupName='webserver', Description='webserver', VpcId=vpc)
sec_group.authorize_ingress(
CidrIp='0.0.0.0/0',
IpProtocol='tcp',
FromPort=80,
ToPort=80
)
Аргумент, который я передаю, это vpc-, и он явно существует в консоли.Почему он не принимает идентификатор VPC ???
ryan@T1000:~/Desktop/ec2-builder$ python ec2-build.py build --ami="ami-0de7daa7385332688" --instancetype=t2.micro --isweb=True --vpc=vpc-0f79b10c0f471033c
2019-03-02 09:46:47,248 Building EC2...
2019-03-02 09:46:47,248 Collecting Information....
2019-03-02 09:46:47,248 AMI: ami-0de7daa7385332688
2019-03-02 09:46:47,248 Instance Type: t2.micro
2019-03-02 09:46:47,248 VPC ID: vpc-0f79b10c0f471033c
2019-03-02 09:46:47,248 Is this a web server: True
2019-03-02 09:46:47,248 Spinning up Web Server
2019-03-02 09:46:47,248 Reading from Configuration file
2019-03-02 09:46:47,249 Reading from config file/home/ryan/Desktop/ec2-builder/config.txt
2019-03-02 09:46:47,407 AWS Session Created
Traceback (most recent call last):
File "ec2-build.py", line 87, in <module>
if __name__ == "__main__": main()
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "ec2-build.py", line 59, in build
GroupName='webserver', Description='webserver', VpcId=vpc)
File "/usr/local/lib/python2.7/dist-packages/boto3/resources/factory.py", line 520, in do_action
response = action(self, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/boto3/resources/action.py", line 83, in __call__
response = getattr(parent.meta.client, operation_name)(**params)
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 661, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidVpcID.NotFound) when calling the CreateSecurityGroup operation: The vpc ID 'vpc-0f79b10c0f471033c' does not exist