2017-01-07 43 views
5

Nie mogę dowiedzieć się, jak uruchomić instancję EC2 w Boto3 z określoną rolą IAM.Jak używać Boto3 do uruchamiania instancji EC2 z rolą IAM?

Oto kod sampe, jak udało mi się z powodzeniem utworzyć instancję tej pory:

import boto3 
ec2 = boto3.resource('ec2', region_name='us-west-2') 
ec2.create_instances(ImageId='ami-1e299d7e', InstanceType='t2.micro',\ 
MinCount=1, MaxCount=1, SecurityGroupIds=['Mysecuritygroup'], KeyName='mykeyname') 

Odpowiedz

7
IamInstanceProfile={ 
    'Arn': 'string', 
    'Name': 'string' 
} 

Jeśli nazwa profilu jest ExampleInstanceProfile i ARN jest arn:aws:iam::123456789012:instance-profile/ExampleInstanceProfile

ec2.create_instances(ImageId='ami-1e299d7e', 
        InstanceType='t2.micro', 
        MinCount=1, MaxCount=1, 
        SecurityGroupIds=['Mysecuritygroup'], 
        KeyName='mykeyname', 
        IamInstanceProfile={ 
          'Arn': 'arn:aws:iam::123456789012:instanceprofile/ExampleInstanceProfile' 
          'Name': 'ExampleInstanceProfile' 
        }) 
+1

To działało, dziękuję! Tylko jedna uwaga, ale jest napisane: 'Parametr" iamInstanceProfile.name "nie może być używany w połączeniu z" iamInstanceProfile.arn "' – Gerk

2

Tylko dodatek do wspaniałej odpowiedzi przez helloV (nie mogę komentować z powodu ograniczeń reputacji). Napotkano ten sam komunikat o błędzie "Parametr" iamInstanceProfile.name "nie może być używany w połączeniu z" iamInstanceProfile.arn "". Zatem dozwolony jest tylko jeden klucz. I eksperymentował z obu i przy użyciu

IamInstanceProfile = { 'name': 'ExampleInstanceProfile' }

pracuje dla mnie, ale nie przy użyciu

IamInstanceProfile = { 'Arn': "Arn AWS: IAM :: 123456789012: instanceprofile/ExampleInstanceProfile” }

używam wersji 1.4.4 boto3