我正在研究AWS系统管理器。我正在使用它使用系统管理器下的分销商将我的软件推送到实例。
分发服务器创建一个包。该软件包将包含我的安装脚本,卸载脚本和我将要推送的.exe文件。整个软件包将另存为由系统管理器维护的SSM文档。
假设我有两个 AWS 账户,我的问题:
帐户- 我在其中创建包的帐户(us-east-1(
B 帐户- 正在运行的实例。(AP-东南-2
我想将"A"中的包推送到帐户"B"实例。
我必须用我的python代码来做到这一点。所以我使用了boto3。
def runcommand(self,instanceid):
try:
response = self.ssmclient.send_command(
InstanceIds=[instanceid,],
DocumentName='AWS-ConfigureAWSPackage',
TimeoutSeconds=600,
Parameters={
'action': ['Install'],
'installationType':['Uninstall and reinstall'],
'name':['arn:aws:ssm:us-east-1:accnumber:document/SSMDistributorPackage']
},
OutputS3Region='ap-southeast-2',
OutputS3BucketName='output',
OutputS3KeyPrefix='abcd',
)
print("Successfully pushed the agent....")
except Exception as e:
print("The error while running command:::::",str(e))
print("response(send_command)::::",response)
但它会抛出错误,例如无效文档:跨区域 arn 不支持。
我该如何解决这个问题?
有没有办法使所有 aws 账户都支持此软件包?
SSM 文档可以在账户之间共享。
但是,此错误不是跨账户错误。您正在将 SSM 文档从一个区域引用到另一个区域。
由于客户端和实例处于ap-southeast-2
但文档处于us-east-1
,因此您需要在ap-southeast-2
区域中创建文档。